Metadata-Version: 2.4
Name: corel_asyncio
Version: 8.0.0
Summary: Extension to the asyncio standard library with common async operations.
Author-email: Jason Watson <jason.watson@desy.de>
License-Expression: MIT
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: asyncio_dgram~=2.2
Requires-Dist: tenacity~=9.1
Requires-Dist: typing-extensions~=4.12
Provides-Extra: dev
Requires-Dist: ipython; extra == "dev"
Requires-Dist: pre-commit~=4.1; extra == "dev"
Requires-Dist: mypy~=1.15; extra == "dev"
Requires-Dist: pytest~=8.3; extra == "dev"
Requires-Dist: pytest-asyncio~=0.23; extra == "dev"
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
Requires-Dist: coverage>=7.4.0; extra == "dev"
Requires-Dist: aioserial~=1.3; extra == "dev"
Dynamic: license-file

# <img align="right" src="misc/logo.png" height="200"></a>

# corel-asyncio

[![pipeline status](https://gitlab.desy.de/corel/corel-asyncio/badges/main/pipeline.svg)](https://gitlab.desy.de/corel/corel-asyncio) [![coverage report](https://gitlab.desy.de/corel/corel-asyncio/badges/main/coverage.svg)](https://gitlab.desy.de/corel/corel-asyncio)

Extension to the asyncio standard library with common async operations which
are often needed in asyncio-based projects.

This package is part of the [corel](https://gitlab.desy.de/corel) project ecosystem,
which is a collection of Python packages for the cooperative development of
software and firmware for  memory mapped FPGAs, microcontrollers and other hardware.

* Supported Python versions: 3.10+
* Supported platforms: Linux, OSX
* Source: <https://gitlab.desy.de/corel/corel-asyncio>
* Pypi: <https://pypi.org/project/corel-asyncio>
* Documentation: TODO
* License: [MIT](LICENSE)


## Features

* Attempt a coroutine multiple times
* Test if a coroutine is blocking
* Base class for logging items asynchronously
* Re-entrant lock
* Serial server
* "fire-and-forget" tasks with appropriate reference tracking and clean-up
* UDP client


## Installation

This package is installable via pip from PyPI:
```
pip install corel-asyncio
```

This package is installable via pip directly from this repository
(via https or ssh), e.g.:
```
pip install 'git+https://gitlab.desy.de/corel/corel-asyncio.git'
```
For developers, follow the usual `git clone` procedure and see the
[Makefile](Makefile) or [Justfile](justfile) for development commands.
