Neat!

On Thu, Aug 16, 2018 at 9:02 AM Nathaniel Smith <n...@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@python.org
> https://mail.python.org/mailman/listinfo/async-sig
> Code of Conduct: https://www.python.org/psf/codeofconduct/
>
-- 
--Guido (mobile)
_______________________________________________
Async-sig mailing list
Async-sig@python.org
https://mail.python.org/mailman/listinfo/async-sig
Code of Conduct: https://www.python.org/psf/codeofconduct/

Reply via email to