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/