[Async-sig] new library: sniffio – Sniff out which async library your code is running under

Guido van Rossum guido at python.org
Thu Aug 16 03:31:38 EDT 2018


Neat!

On Thu, Aug 16, 2018 at 9:02 AM Nathaniel Smith <njs at pobox.com> wrote:

> Hi all,
>
> A number of people are working on packages that support multiple async
> backends (e.g., asyncio + trio, or trio + curio, or trio + twisted,
> ...). So then the question arises... how can I figure out which async
> library my user is actually using?
>
> Answer: install sniffio, and then call
> sniffio.current_async_library(), and it tells you.
>
> Well, right now it only works for trio and asyncio, but if you
> maintain an async library and you want to make it easier for packages
> to detect you, then it's easy to add support – see the manual. We
> considered various clever things, but ultimately decided that the best
> approach was to use a ContextVar and make it the coroutine runner's
> responsibility to advertise which async flavor it uses. In particular,
> this approach works even for hybrid programs that are using multiple
> coroutine runners in the same loop, like a Twisted program with
> asyncio-flavored and twisted-flavored coroutines in the same thread,
> or a Trio program using trio-asyncio to run both asyncio-flavored and
> trio-flavored coroutines in the same thread.
>
> Github: https://github.com/python-trio/sniffio
> Manual: https://sniffio.readthedocs.io/
> PyPI: https://pypi.org/p/sniffio
>
> -n
>
> --
> Nathaniel J. Smith -- https://vorpus.org
> _______________________________________________
> Async-sig mailing list
> Async-sig at python.org
> https://mail.python.org/mailman/listinfo/async-sig
> Code of Conduct: https://www.python.org/psf/codeofconduct/
>
-- 
--Guido (mobile)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/async-sig/attachments/20180816/b348c7e6/attachment.html>


More information about the Async-sig mailing list