Skip to content

Commit eb9bc66

Browse files
committed
Support multiple active UIs.
1 parent d9611e0 commit eb9bc66

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

pyzen/core.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ def reloader(q, func, args, kwargs):
7474

7575
def main(ui_override, func, *args, **kwargs):
7676
p = None
77-
ui = load_ui(ui_override)
77+
uis = list(load_ui(ui_override))
7878
try:
7979
while True:
8080
q = Queue()
@@ -84,7 +84,7 @@ def main(ui_override, func, *args, **kwargs):
8484
while True:
8585
try:
8686
cmd = q.get(True, _SLEEP_TIME)
87-
if ui is not None:
87+
for ui in uis:
8888
ui.handle(**cmd)
8989
except Empty:
9090
# Timed out, check if we need to restart
@@ -94,7 +94,7 @@ def main(ui_override, func, *args, **kwargs):
9494
else:
9595
return p.exitcode # Any other return code should be considered real
9696
finally:
97-
if ui is not None:
97+
for ui in uis:
9898
ui.shutdown()
9999
if p is not None:
100100
p.terminate()

pyzen/ui/base.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,13 @@ def shutdown(self):
5757

5858
def load_ui(override):
5959
if override:
60+
if isinstance(override, basestring):
61+
override = set(override.split(','))
6062
for ui in PyZenUIMeta.uis:
61-
if ui.name == override:
62-
return ui()
63+
if ui.name in override:
64+
yield ui()
6365
else:
6466
for ui in PyZenUIMeta.uis:
6567
if ui.enabled():
66-
return ui()
68+
yield ui()
6769

0 commit comments

Comments
 (0)