Metadata-Version: 2.1
Name: anyio-serial
Version: 0.3.0
Summary: Quick and dirty serial bytestreams for anyio
Author: Matthias Urlichs
Author-email: matthias@urlichs.de
License: MIT
Project-URL: Source code, https://github.com/M-o-a-T/anyio_serial.git
Project-URL: Issue tracker, https://github.com/M-o-a-T/anyio_serial/issues
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Requires-Python: >=3.6.2
Requires-Dist: anyio (>=4)
Requires-Dist: pyserial

============
anyio_serial
============

A small Python wrapper that combines `anyio <https://anyio.readthedocs.io>`_
and `pySerial <https://pypi.org/project/pyserial/>`_.

Implementation detail: This library is using too many short-lived threads.
Yes this should be improved.

Quick start
===========

A simple serial port reader
+++++++++++++++++++++++++++

anyio_serial is a reasonably intuitive mash-up of `pySerial`_ and anyio's
``Stream``::

   import anyio
   from anyio_serial import Serial
   
   async def main():
      async with Serial(port='COM1') as port:
         while True:
            print((await port.receive()).decode(errors='ignore'), end='', flush=True)
   
   anyio.run(main)

API
===

anyio_serial's interface is really simple::

   from anyio_serial import Serial
   
   async with Serial(...) as port:  # same options as serial.Serial
      ...
      # use "port" like any other anyio ByteStream

Attributes
++++++++++

The states of the serial status lines ``cd``, ``cts``, ``dsr`` and ``ri``
are supported.

