jpayne@69: Metadata-Version: 2.1 jpayne@69: Name: anyio jpayne@69: Version: 4.5.2 jpayne@69: Summary: High level compatibility layer for multiple asynchronous event loop implementations jpayne@69: Author-email: Alex Grönholm jpayne@69: License: MIT jpayne@69: Project-URL: Documentation, https://anyio.readthedocs.io/en/latest/ jpayne@69: Project-URL: Changelog, https://anyio.readthedocs.io/en/stable/versionhistory.html jpayne@69: Project-URL: Source code, https://github.com/agronholm/anyio jpayne@69: Project-URL: Issue tracker, https://github.com/agronholm/anyio/issues jpayne@69: Classifier: Development Status :: 5 - Production/Stable jpayne@69: Classifier: Intended Audience :: Developers jpayne@69: Classifier: License :: OSI Approved :: MIT License jpayne@69: Classifier: Framework :: AnyIO jpayne@69: Classifier: Typing :: Typed jpayne@69: Classifier: Programming Language :: Python jpayne@69: Classifier: Programming Language :: Python :: 3 jpayne@69: Classifier: Programming Language :: Python :: 3.8 jpayne@69: Classifier: Programming Language :: Python :: 3.9 jpayne@69: Classifier: Programming Language :: Python :: 3.10 jpayne@69: Classifier: Programming Language :: Python :: 3.11 jpayne@69: Classifier: Programming Language :: Python :: 3.12 jpayne@69: Classifier: Programming Language :: Python :: 3.13 jpayne@69: Requires-Python: >=3.8 jpayne@69: Description-Content-Type: text/x-rst jpayne@69: License-File: LICENSE jpayne@69: Requires-Dist: idna >=2.8 jpayne@69: Requires-Dist: sniffio >=1.1 jpayne@69: Requires-Dist: exceptiongroup >=1.0.2 ; python_version < "3.11" jpayne@69: Requires-Dist: typing-extensions >=4.1 ; python_version < "3.11" jpayne@69: Provides-Extra: doc jpayne@69: Requires-Dist: packaging ; extra == 'doc' jpayne@69: Requires-Dist: Sphinx ~=7.4 ; extra == 'doc' jpayne@69: Requires-Dist: sphinx-rtd-theme ; extra == 'doc' jpayne@69: Requires-Dist: sphinx-autodoc-typehints >=1.2.0 ; extra == 'doc' jpayne@69: Provides-Extra: test jpayne@69: Requires-Dist: anyio[trio] ; extra == 'test' jpayne@69: Requires-Dist: coverage[toml] >=7 ; extra == 'test' jpayne@69: Requires-Dist: exceptiongroup >=1.2.0 ; extra == 'test' jpayne@69: Requires-Dist: hypothesis >=4.0 ; extra == 'test' jpayne@69: Requires-Dist: psutil >=5.9 ; extra == 'test' jpayne@69: Requires-Dist: pytest >=7.0 ; extra == 'test' jpayne@69: Requires-Dist: pytest-mock >=3.6.1 ; extra == 'test' jpayne@69: Requires-Dist: trustme ; extra == 'test' jpayne@69: Requires-Dist: uvloop >=0.21.0b1 ; (platform_python_implementation == "CPython" and platform_system != "Windows") and extra == 'test' jpayne@69: Requires-Dist: truststore >=0.9.1 ; (python_version >= "3.10") and extra == 'test' jpayne@69: Provides-Extra: trio jpayne@69: Requires-Dist: trio >=0.26.1 ; extra == 'trio' jpayne@69: jpayne@69: .. image:: https://github.com/agronholm/anyio/actions/workflows/test.yml/badge.svg jpayne@69: :target: https://github.com/agronholm/anyio/actions/workflows/test.yml jpayne@69: :alt: Build Status jpayne@69: .. image:: https://coveralls.io/repos/github/agronholm/anyio/badge.svg?branch=master jpayne@69: :target: https://coveralls.io/github/agronholm/anyio?branch=master jpayne@69: :alt: Code Coverage jpayne@69: .. image:: https://readthedocs.org/projects/anyio/badge/?version=latest jpayne@69: :target: https://anyio.readthedocs.io/en/latest/?badge=latest jpayne@69: :alt: Documentation jpayne@69: .. image:: https://badges.gitter.im/gitterHQ/gitter.svg jpayne@69: :target: https://gitter.im/python-trio/AnyIO jpayne@69: :alt: Gitter chat jpayne@69: jpayne@69: AnyIO is an asynchronous networking and concurrency library that works on top of either asyncio_ or jpayne@69: trio_. It implements trio-like `structured concurrency`_ (SC) on top of asyncio and works in harmony jpayne@69: with the native SC of trio itself. jpayne@69: jpayne@69: Applications and libraries written against AnyIO's API will run unmodified on either asyncio_ or jpayne@69: trio_. AnyIO can also be adopted into a library or application incrementally – bit by bit, no full jpayne@69: refactoring necessary. It will blend in with the native libraries of your chosen backend. jpayne@69: jpayne@69: Documentation jpayne@69: ------------- jpayne@69: jpayne@69: View full documentation at: https://anyio.readthedocs.io/ jpayne@69: jpayne@69: Features jpayne@69: -------- jpayne@69: jpayne@69: AnyIO offers the following functionality: jpayne@69: jpayne@69: * Task groups (nurseries_ in trio terminology) jpayne@69: * High-level networking (TCP, UDP and UNIX sockets) jpayne@69: jpayne@69: * `Happy eyeballs`_ algorithm for TCP connections (more robust than that of asyncio on Python jpayne@69: 3.8) jpayne@69: * async/await style UDP sockets (unlike asyncio where you still have to use Transports and jpayne@69: Protocols) jpayne@69: jpayne@69: * A versatile API for byte streams and object streams jpayne@69: * Inter-task synchronization and communication (locks, conditions, events, semaphores, object jpayne@69: streams) jpayne@69: * Worker threads jpayne@69: * Subprocesses jpayne@69: * Asynchronous file I/O (using worker threads) jpayne@69: * Signal handling jpayne@69: jpayne@69: AnyIO also comes with its own pytest_ plugin which also supports asynchronous fixtures. jpayne@69: It even works with the popular Hypothesis_ library. jpayne@69: jpayne@69: .. _asyncio: https://docs.python.org/3/library/asyncio.html jpayne@69: .. _trio: https://github.com/python-trio/trio jpayne@69: .. _structured concurrency: https://en.wikipedia.org/wiki/Structured_concurrency jpayne@69: .. _nurseries: https://trio.readthedocs.io/en/stable/reference-core.html#nurseries-and-spawning jpayne@69: .. _Happy eyeballs: https://en.wikipedia.org/wiki/Happy_Eyeballs jpayne@69: .. _pytest: https://docs.pytest.org/en/latest/ jpayne@69: .. _Hypothesis: https://hypothesis.works/