Skip to content

Commit

Permalink
De-compact async with tuple on 3.8-
Browse files Browse the repository at this point in the history
Turns out can't use the nicer syntax before python 3.9 (even though it
doesn't seem documented anywhere?).

Relates to #207
  • Loading branch information
goodboy committed Apr 28, 2021
1 parent 2498a49 commit 8e4965e
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 26 deletions.
46 changes: 24 additions & 22 deletions tests/test_discovery.py
Original file line number Diff line number Diff line change
Expand Up @@ -268,28 +268,30 @@ async def close_chans_before_nursery(
portal2 = await tn.start_actor(
'consumer2', enable_modules=[__name__])

async with (
portal1.open_stream_from(stream_forever) as agen1,
portal2.open_stream_from(stream_forever) as agen2,
):
async with trio.open_nursery() as n:
n.start_soon(streamer, agen1)
n.start_soon(cancel, use_signal, .5)
try:
await streamer(agen2)
finally:
# Kill the root nursery thus resulting in
# normal arbiter channel ops to fail during
# teardown. It doesn't seem like this is
# reliably triggered by an external SIGINT.
# tractor.current_actor()._root_nursery.cancel_scope.cancel()

# XXX: THIS IS THE KEY THING that happens
# **before** exiting the actor nursery block

# also kill off channels cuz why not
await agen1.aclose()
await agen2.aclose()
# TODO: compact this back as was in last commit once
# 3.9+, see https://github.com/goodboy/tractor/issues/207
async with portal1.open_stream_from(stream_forever) as agen1:
async with portal2.open_stream_from(
stream_forever
) as agen2:
async with trio.open_nursery() as n:
n.start_soon(streamer, agen1)
n.start_soon(cancel, use_signal, .5)
try:
await streamer(agen2)
finally:
# Kill the root nursery thus resulting in
# normal arbiter channel ops to fail during
# teardown. It doesn't seem like this is
# reliably triggered by an external SIGINT.
# tractor.current_actor()._root_nursery.cancel_scope.cancel()

# XXX: THIS IS THE KEY THING that happens
# **before** exiting the actor nursery block

# also kill off channels cuz why not
await agen1.aclose()
await agen2.aclose()
finally:
with trio.CancelScope(shield=True):
await trio.sleep(1)
Expand Down
7 changes: 3 additions & 4 deletions tests/test_pubsub.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,14 +60,13 @@ def pred(i):
def pred(i):
return isinstance(i, int)

# TODO: https://github.com/goodboy/tractor/issues/207
async with tractor.find_actor(pub_actor_name) as portal:
async with (
portal.open_stream_from(
async with portal.open_stream_from(
pubber,
topics=which,
seed=seed,
) as stream
):
) as stream:
task_status.started(stream)
times = 10
count = 0
Expand Down

0 comments on commit 8e4965e

Please sign in to comment.