From e89fe03da7ae129acadae23b8d28b4b33b920ddb Mon Sep 17 00:00:00 2001 From: goodboy Date: Wed, 11 Mar 2026 23:11:30 -0400 Subject: [PATCH] Fix `LinkedTaskChannel` docstrings from GH bot review Address valid findings from copilot's PR #413 review (https://github.com/goodboy/tractor/pull/413 #pullrequestreview-3925876037): - `.get()` docstring referenced non-existent `._from_trio` attr, correct to `._to_aio`. - `.send()` docstring falsely claimed error-raising on missing `from_trio` arg; reword to describe the actual `.put_nowait()` enqueue behaviour. - `.open_channel_from()` return type annotation had `tuple[LinkedTaskChannel, Any]` but `yield` order is `(first, chan)`; fix annotation + docstring to match actual `tuple[Any, LinkedTaskChannel]`. (this patch was generated in some part by [`claude-code`][claude-code-gh]) [claude-code-gh]: https://github.com/anthropics/claude-code --- tractor/to_asyncio.py | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/tractor/to_asyncio.py b/tractor/to_asyncio.py index 09f0781c..3769bdd0 100644 --- a/tractor/to_asyncio.py +++ b/tractor/to_asyncio.py @@ -272,18 +272,16 @@ class LinkedTaskChannel( ''' Receive a value `asyncio.Task` <- `trio.Task`. - This is equiv to `await self._from_trio.get()`. + This is equiv to `await self._to_aio.get()`. ''' return await self._to_aio.get() async def send(self, item: Any) -> None: ''' - Send a value through `trio.Task` -> `asyncio.Task` - presuming - it defines a `from_trio` argument or makes calls - to `chan.get()` , if it does not - this method will raise an error. + Send a value `trio.Task` -> `asyncio.Task` + by enqueuing `item` onto the internal + `asyncio.Queue` via `put_nowait()`. ''' self._to_aio.put_nowait(item) @@ -1301,16 +1299,17 @@ async def open_channel_from( **target_kwargs, ) -> AsyncIterator[ - tuple[LinkedTaskChannel, Any] + tuple[Any, LinkedTaskChannel] ]: ''' - Start an `asyncio.Task` as `target()` and open an inter-loop - (linked) channel for streaming between it and the current - `trio.Task`. + Start an `asyncio.Task` as `target()` and open an + inter-loop (linked) channel for streaming between + it and the current `trio.Task`. - 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()`. + A pair `(Any, chan: LinkedTaskChannel)` is delivered + to the caller where the 1st element is the value + provided by the `asyncio.Task`'s unblocking call + to `chan.started_nowait()`. ''' chan: LinkedTaskChannel = _run_asyncio_task(