-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgj.py
52 lines (39 loc) · 1.11 KB
/
gj.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
from rx.subjects import Subject
from dumper import Dumper
left = Subject()
right = Subject()
left_duration_selectors = {}
right_duration_selectors = {}
def left_duration_selector(v):
s = Subject()
left_duration_selectors[v] = s
return s
def right_duration_selector(v):
s = Subject()
right_duration_selectors[v] = s
return s
def result_selector(left_v, r_obs):
#right_values = []
#r_obs.subscribe(lambda v: right_values.append(v))
return left_v, r_obs
def result_dumper(pair):
pair[1].subscribe(Dumper('result left=%s' % pair[0]))
left \
.group_join(right,
left_duration_selector,
right_duration_selector,
result_selector) \
.subscribe(result_dumper)
in_ = input('')
while in_ != 'exit':
parts = in_.split()
if parts[0] == 'l':
left.on_next(parts[1])
if parts[0] == 'r':
right.on_next(parts[1])
if parts[0] == 'lds':
left_duration_selectors[parts[1]].on_completed()
if parts[0] == 'rds':
right_duration_selectors[parts[1]].on_completed()
in_ = input('')
left.on_completed()