[Python-Dev] PEP 567 v2

Yury Selivanov yselivanov.ml at gmail.com
Thu Dec 28 10:36:37 EST 2017


On Thu, Dec 28, 2017 at 5:28 AM, Chris Jerdonek
<chris.jerdonek at gmail.com> wrote:
> I have a couple basic questions around how this API could be used in
> practice. Both of my questions are for the Python API as applied to Tasks in
> asyncio.
>
> 1) Would this API support looking up the value of a context variable for
> **another** Task? For example, if you're managing multiple tasks using
> asyncio.wait() and there is an exception in some task, you might want to
> examine and report the value of a context variable for that task.

No, unless that another Task explicitly shares the value or captures
its context and shares it.  Same as with threading.local.

>
> 2) Would an appropriate use of this API be to assign a unique task id to
> each task? Or can that be handled more simply? I'm wondering because I
> recently thought this would be useful, and it doesn't seem like asyncio
> means for one to subclass Task (though I could be wrong).

The API should be used to share one ID between a Task and tasks it
creates. You can use it to store individual Task IDs, but a
combination of a WeakKeyDictionary and Task.current_task() seems to be
a better/easier option.

Yury


More information about the Python-Dev mailing list