Swap `open_channel_from()` to yield `(chan, first)`
Deliver `(LinkedTaskChannel, Any)` instead of the prior `(first, chan)` order from `open_channel_from()` to match the type annotation and be consistent with `trio.open_*_channel()` style where the channel obj comes first. - flip `yield first, chan` -> `yield chan, first` - update type annotation + docstring to match - swap all unpack sites in tests and examples (this patch was generated in some part by [`claude-code`][claude-code-gh]) [claude-code-gh]: https://github.com/anthropics/claude-codens_aware
parent
e89fe03da7
commit
b3ce5ab4f6
|
|
@ -59,7 +59,7 @@ async def trio_ctx(
|
|||
to_asyncio.open_channel_from(
|
||||
bp_then_error,
|
||||
# raise_after_bp=not bp_before_started,
|
||||
) as (first, chan),
|
||||
) as (chan, first),
|
||||
|
||||
trio.open_nursery() as tn,
|
||||
):
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ async def trio_to_aio_echo_server(
|
|||
# message.
|
||||
async with tractor.to_asyncio.open_channel_from(
|
||||
aio_echo_server,
|
||||
) as (first, chan):
|
||||
) as (chan, first):
|
||||
|
||||
assert first == 'start'
|
||||
await ctx.started(first)
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ async def wrapper_mngr(
|
|||
else:
|
||||
async with tractor.to_asyncio.open_channel_from(
|
||||
aio_streamer,
|
||||
) as (first, from_aio):
|
||||
) as (from_aio, first):
|
||||
assert not first
|
||||
|
||||
# cache it so next task uses broadcast receiver
|
||||
|
|
|
|||
|
|
@ -237,7 +237,7 @@ async def trio_ctx(
|
|||
trio.open_nursery() as tn,
|
||||
tractor.to_asyncio.open_channel_from(
|
||||
sleep_and_err,
|
||||
) as (first, chan),
|
||||
) as (chan, first),
|
||||
):
|
||||
|
||||
assert first == 'start'
|
||||
|
|
@ -474,7 +474,7 @@ async def stream_from_aio(
|
|||
trio_exit_early
|
||||
))
|
||||
|
||||
) as (first, chan):
|
||||
) as (chan, first):
|
||||
|
||||
assert first is True
|
||||
|
||||
|
|
@ -768,8 +768,8 @@ async def trio_to_aio_echo_server(
|
|||
async with to_asyncio.open_channel_from(
|
||||
aio_echo_server,
|
||||
) as (
|
||||
first, # value from `chan.started_nowait()` above
|
||||
chan,
|
||||
first, # value from `chan.started_nowait()` above
|
||||
):
|
||||
assert first == 'start'
|
||||
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ def test_infected_root_actor(
|
|||
),
|
||||
to_asyncio.open_channel_from(
|
||||
aio_echo_server,
|
||||
) as (first, chan),
|
||||
) as (chan, first),
|
||||
):
|
||||
assert first == 'start'
|
||||
|
||||
|
|
@ -173,7 +173,7 @@ def test_trio_prestarted_task_bubbles(
|
|||
sync_and_err,
|
||||
ev=aio_ev,
|
||||
)
|
||||
) as (first, chan),
|
||||
) as (chan, first),
|
||||
):
|
||||
|
||||
for i in range(5):
|
||||
|
|
|
|||
|
|
@ -1299,15 +1299,15 @@ async def open_channel_from(
|
|||
**target_kwargs,
|
||||
|
||||
) -> AsyncIterator[
|
||||
tuple[Any, LinkedTaskChannel]
|
||||
tuple[LinkedTaskChannel, Any]
|
||||
]:
|
||||
'''
|
||||
Start an `asyncio.Task` as `target()` and open an
|
||||
inter-loop (linked) channel for streaming between
|
||||
it and the current `trio.Task`.
|
||||
|
||||
A pair `(Any, chan: LinkedTaskChannel)` is delivered
|
||||
to the caller where the 1st element is the value
|
||||
A pair `(chan: LinkedTaskChannel, Any)` is delivered
|
||||
to the caller where the 2nd element is the value
|
||||
provided by the `asyncio.Task`'s unblocking call
|
||||
to `chan.started_nowait()`.
|
||||
|
||||
|
|
@ -1333,8 +1333,7 @@ async def open_channel_from(
|
|||
first = await chan.receive()
|
||||
|
||||
# deliver stream handle upward
|
||||
yield first, chan
|
||||
# ^TODO! swap these!!
|
||||
yield chan, first
|
||||
except trio.Cancelled as taskc:
|
||||
if cs.cancel_called:
|
||||
if isinstance(chan._trio_to_raise, AsyncioCancelled):
|
||||
|
|
|
|||
Loading…
Reference in New Issue