From 55211b9b196bad937b4974d52788936e34bb6e9b Mon Sep 17 00:00:00 2001 From: onyx-and-iris Date: Sat, 5 Aug 2023 14:06:39 +0100 Subject: [PATCH] replace generator function with factory function --- vban_cmd/vban.py | 40 ++++++++++++++++------------------------ 1 file changed, 16 insertions(+), 24 deletions(-) diff --git a/vban_cmd/vban.py b/vban_cmd/vban.py index d980408..2112931 100644 --- a/vban_cmd/vban.py +++ b/vban_cmd/vban.py @@ -172,32 +172,24 @@ class VbanMidiOutstream(VbanOutstream): def _make_stream_pair(remote, kind): num_instream, num_outstream, num_midi, num_text = kind.vban - def _generate_streams(i, dir): - """generator function for creating instream/outstream tuples""" - if dir == "in": - if i < num_instream: - yield VbanAudioInstream - elif i < num_instream + num_midi: - yield VbanMidiInstream - else: - yield VbanTextInstream - else: - if i < num_outstream: - yield VbanAudioOutstream - else: - yield VbanMidiOutstream + def _make_cls(i, dir): + match dir: + case "in": + if i < num_instream: + return VbanAudioInstream(remote, i) + elif i < num_instream + num_midi: + return VbanMidiInstream(remote, i) + else: + return VbanTextInstream(remote, i) + case "out": + if i < num_outstream: + return VbanAudioOutstream(remote, i) + else: + return VbanMidiOutstream(remote, i) return ( - tuple( - cls(remote, i) - for i in range(num_instream + num_midi + num_text) - for cls in _generate_streams(i, "in") - ), - tuple( - cls(remote, i) - for i in range(num_outstream + num_midi) - for cls in _generate_streams(i, "out") - ), + tuple(_make_cls(i, "in") for i in range(num_instream + num_midi + num_text)), + tuple(_make_cls(i, "out") for i in range(num_outstream + num_midi)), )