Skip to content

Commit 704dada

Browse files
committed
extend example to show how to use remote iterator/generator properties feature
1 parent 92f9eb7 commit 704dada

File tree

3 files changed

+14
-0
lines changed

3 files changed

+14
-0
lines changed

docs/source/clientcode.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,8 @@ because the remote generator has been discarded in the meantime.
356356
Lingering can be disabled completely by setting the value to 0, then all remote generators from a proxy will
357357
immediately be discarded in the server if the proxy gets disconnected or closed.
358358

359+
Remote properties can also be iterators or generators.
360+
359361
There are several examples that use the remote iterator feature. Have a look at the
360362
`streaming <https://github.com/irmen/Pyro5/tree/master/examples/streaming>`_ ,
361363
`stockquotes <https://github.com/irmen/Pyro5/tree/master/examples/stockquotes>`_ or the

examples/streaming/client.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,7 @@
1717
print("\nslow generator:")
1818
for number in p.slow_generator():
1919
print(number)
20+
print("\nproperty iterator:")
21+
print(list(p.prop_iter))
22+
print("\nproperty generator:")
23+
print(list(p.prop_generator))

examples/streaming/server.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,14 @@ def fibonacci(self):
3535
yield a
3636
a, b = b, a + b
3737

38+
@property
39+
def prop_iter(self):
40+
return iter([1,2,3,4,5,6,7,8,9,10])
41+
42+
@property
43+
def prop_generator(self):
44+
return (x for x in range(10))
45+
3846

3947
serve({
4048
Streamer: "example.streamer"

0 commit comments

Comments
 (0)