Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/python-trio/sniffio
Sniff out which async library your code is running under
https://github.com/python-trio/sniffio
async asyncio python trio
Last synced: about 1 month ago
JSON representation
Sniff out which async library your code is running under
- Host: GitHub
- URL: https://github.com/python-trio/sniffio
- Owner: python-trio
- License: other
- Created: 2018-07-28T07:35:29.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-02-25T23:24:15.000Z (7 months ago)
- Last Synced: 2024-04-13T23:52:48.500Z (5 months ago)
- Topics: async, asyncio, python, trio
- Language: Python
- Homepage: https://sniffio.readthedocs.io
- Size: 80.1 KB
- Stars: 112
- Watchers: 9
- Forks: 21
- Open Issues: 11
-
Metadata Files:
- Readme: README.rst
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
.. image:: https://img.shields.io/badge/chat-join%20now-blue.svg
:target: https://gitter.im/python-trio/general
:alt: Join chatroom.. image:: https://img.shields.io/badge/docs-read%20now-blue.svg
:target: https://sniffio.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status.. image:: https://img.shields.io/pypi/v/sniffio.svg
:target: https://pypi.org/project/sniffio
:alt: Latest PyPi version
.. image:: https://img.shields.io/conda/vn/conda-forge/sniffio.svg
:target: https://anaconda.org/conda-forge/sniffio
:alt: Latest conda-forge version.. image:: https://travis-ci.org/python-trio/sniffio.svg?branch=master
:target: https://travis-ci.org/python-trio/sniffio
:alt: Automated test status.. image:: https://codecov.io/gh/python-trio/sniffio/branch/master/graph/badge.svg
:target: https://codecov.io/gh/python-trio/sniffio
:alt: Test coverage=================================================================
sniffio: Sniff out which async library your code is running under
=================================================================You're writing a library. You've decided to be ambitious, and support
multiple async I/O packages, like `Trio
`__, and `asyncio
`__, and ... You've
written a bunch of clever code to handle all the differences. But...
how do you know *which* piece of clever code to run?This is a tiny package whose only purpose is to let you detect which
async library your code is running under.* Documentation: https://sniffio.readthedocs.io
* Bug tracker and source code: https://github.com/python-trio/sniffio
* License: MIT or Apache License 2.0, your choice
* Contributor guide: https://trio.readthedocs.io/en/latest/contributing.html
* Code of conduct: Contributors are requested to follow our `code of
conduct
`_
in all project spaces.This library is maintained by the Trio project, as a service to the
async Python community as a whole.Quickstart
----------.. code-block:: python3
from sniffio import current_async_library
import trio
import asyncioasync def print_library():
library = current_async_library()
print("This is:", library)# Prints "This is trio"
trio.run(print_library)# Prints "This is asyncio"
asyncio.run(print_library())For more details, including how to add support to new async libraries,
`please peruse our fine manual `__.