Metadata-Version: 2.4 Name: asyncer Version: 0.0.12 Summary: Asyncer, async and await, focused on developer experience. Author-Email: =?utf-8?q?Sebasti=C3=A1n_Ram=C3=ADrez?= License-Expression: MIT License-File: LICENSE Classifier: Development Status :: 4 - Beta Classifier: Framework :: AsyncIO Classifier: Framework :: Trio Classifier: Intended Audience :: Developers Classifier: Intended Audience :: Education Classifier: Intended Audience :: Information Technology Classifier: Intended Audience :: Science/Research Classifier: Intended Audience :: System Administrators Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: 3.9 Classifier: Programming Language :: Python :: 3.10 Classifier: Programming Language :: Python :: 3.11 Classifier: Programming Language :: Python :: 3.12 Classifier: Programming Language :: Python :: 3.13 Classifier: Programming Language :: Python :: 3.14 Classifier: Topic :: Internet Classifier: Typing :: Typed Project-URL: Homepage, https://github.com/fastapi/asyncer Project-URL: Documentation, https://asyncer.tiangolo.com Project-URL: Repository, https://github.com/fastapi/asyncer Project-URL: Issues, https://github.com/fastapi/asyncer/issues Project-URL: Changelog, https://asyncer.tiangolo.com/release-notes/ Requires-Python: >=3.9 Requires-Dist: anyio<5.0,>=3.4.0 Requires-Dist: sniffio>=1.1 Requires-Dist: typing_extensions>=4.8.0; python_version < "3.10" Description-Content-Type: text/markdown

Asyncer

Asyncer, async and await, focused on developer experience.

Test Publish Coverage Package version

--- **Documentation**: https://asyncer.tiangolo.com **Source Code**: https://github.com/fastapi/asyncer --- **Asyncer** is a small library built on top of AnyIO. **Asyncer** has a small number of utility functions that allow working with `async`, `await`, and concurrent code in a more convenient way under my (@tiangolo - Sebastián Ramírez) very opinionated and subjective point of view. The main goal of **Asyncer** is to improve **developer experience** by providing better support for **autocompletion** and **inline errors** in the editor, and **more certainty** that the code is **bug-free** by providing better support for type checking tools like **mypy**. **Asyncer** also tries to improve **convenience** and simplicity when working with **async** code **mixed** with regular **blocking code**, allowing to use them together in a simpler way... again, under my very **subjective** point of view. ## Can I Use It? Yes 🎉 (but continue reading). This is a very small library, there are things that can change and improve in the future. If you use it, **pin the exact Asyncer version** for your project, to make sure it all works. Have **tests** for your project (as you should, anyway). And **upgrade the version** once you know that the new version continues to work correctly. Still, it's **just 4 functions**, so there's not much to change, if you had to refactor your code to update something it would not be much. And if you don't want to add `asyncer` as a dependency to your project, you can also just copy the main file and try out those functions, it's quite small (but in that case you won't get updates easily). ## Requirements As **Asyncer** is based on **AnyIO** it will be also installed automatically when you install **Asyncer**. ## Installation
```console $ pip install asyncer ---> 100% Successfully installed asyncer anyio ```
## How to Use You can read more about each of the use cases and utility functions in **Asyncer** in the tutorial. As a sneak preview of one of the utilities, you can **call sync code from async code** using `asyncify()`: ```Python import time import anyio from asyncer import asyncify def do_sync_work(name: str): time.sleep(1) return f"Hello, {name}" async def main(): message = await asyncify(do_sync_work)(name="World") print(message) anyio.run(main) ``` **Asyncer**'s `asyncify()` will use AnyIO underneath to do *the smart thing*, avoid blocking the main **async** event loop, and run the **sync**/blocking function in a **worker thread**. ### Editor Support Everything in **Asyncer** is designed to get the best **developer experience** possible, with the best editor support. * **Autocompletion** for function arguments: * **Autocompletion** for return values: * **Inline errors** in editor: * Support for tools like **mypy**, that can help you verify that your **code is correct**, and prevent many bugs. ## License This project is licensed under the terms of the [MIT license](https://github.com/fastapi/asyncer/blob/main/LICENSE).