Skip to main content

Python bindings for a C++ serial port library

Project description

https://github.com/Lei-k/async-pyserial/actions/workflows/python-publish.yml/badge.svg https://github.com/Lei-k/async-pyserial/actions/workflows/docs-publish.yml/badge.svg https://codecov.io/gh/Lei-k/async-pyserial/branch/main/graph/badge.svg

Python bindings for a C++ serial port library providing asynchronous serial communication support.

Features

  • Non-blocking and blocking read/write operations.

  • Cross-platform support for Windows, Linux, macOS, and FreeBSD.

  • Event-driven architecture for handling data events.

  • Support for gevent, eventlet, asyncio, callback, and synchronous operations.

  • Uses epoll, iocp, and kqueue for efficient, scalable I/O operations based on the underlying operating system.

Installation

You can install the async-pyserial package using either poetry or pip.

### Using Poetry

  1. Install poetry if you haven’t already:

    curl -sSL https://install.python-poetry.org | python3 -
  2. Add async-pyserial to your project:

    poetry add async-pyserial

### Using pip

  1. Install the package from PyPI:

    pip install async-pyserial

### FreeBSD Installation

For FreeBSD, you need to build the package manually:

  1. Clone the repository:

    git clone https://github.com/Lei-k/async-pyserial.git
  2. Navigate to the project directory:

    cd async-pyserial
  3. Install the dependencies using poetry:

    poetry install
  4. Build the package:

    python -m build
  5. Install the package:

    pip install dist/*.whl

Usage

Here’s a simple example of how to use async-pyserial:

from async_pyserial import SerialPort, SerialPortOptions, SerialPortEvent, SerialPortParity

def on_data(data):
    print(f"Received: {data}")

options = SerialPortOptions()
options.baudrate = 9600
options.bytesize = 8
options.stopbits = 1
options.parity = SerialPortParity.NONE # NONE, ODD, EVEN

serial_port = SerialPort('/dev/ttyUSB0', options)
serial_port.on(SerialPortEvent.ON_DATA, on_data)
serial_port.open()

try:
    while True:
        data_to_send = input("Enter data to send (or 'exit' to quit): ")
        if data_to_send.lower() == 'exit':
            break
        serial_port.write(data_to_send.encode('utf-8'))
finally:
    serial_port.close()

API

### SerialPort A class for serial communication.

#### Methods

  • __init__(self, port: str, options: SerialPortOptions): Initializes the serial port with the specified parameters.

  • def write(self, data: bytes, callback: Callable | None = None): Writes data to the serial port. Can be blocking or non-blocking. If a callback is provided, the write will be asynchronous. Supports gevent, eventlet, asyncio, callback, and synchronous operations.

  • def read(self, bufsize: int = 512, callback: Callable | None = None): Reads data from the serial port. Can be blocking or non-blocking. If a callback is provided, the read will be asynchronous. Supports gevent, eventlet, asyncio, callback, and synchronous operations.

  • def open(self): Opens the serial port.

  • def close(self): Closes the serial port.

  • def on(self, event: SerialPortEvent, callback: Callable[[bytes], None]): Registers a callback for the specified event.

  • def emit(self, evt: str, *args, **kwargs): Emits an event, triggering all registered callbacks for that event.

  • def remove_all_listeners(self, evt: str): Removes all listeners for the specified event.

  • def remove_listener(self, evt: str, listener: Callable): Removes a specific listener for the specified event.

  • def off(self, evt: str, listener: Callable): Alias for remove_listener.

### SerialPortOptions A class for specifying serial port options.

#### Attributes

  • baudrate: int: The baud rate for the serial port.

  • bytesize: int: The number of data bits.

  • stopbits: int: The number of stop bits.

  • parity: int: The parity checking (0: None, 1: Odd, 2: Even).

  • read_timeout: int: The read timeout in milliseconds.

  • write_timeout: int: The write timeout in milliseconds.

  • read_bufsize: int: The read buffer size. Default is 0. When read_bufsize is 0, the internal buffer is not used, and only data received after the read call will be returned. If read_bufsize is not 0, both buffered and new data will be returned.

### SerialPortEvent An enumeration for serial port events.

  • ON_DATA: Event triggered when data is received.

### SerialPortError An exception class for handling serial port errors.

  • __init__(self, *args: object): Initializes the SerialPortError with the specified arguments.

### PlatformNotSupported An exception class for handling unsupported platforms.

  • __init__(self, *args: object): Initializes the PlatformNotSupported exception with the specified arguments.

### set_async_worker A function for setting the asynchronous worker.

  • def set_async_worker(w: str, loop = None): Sets the asynchronous worker to gevent, eventlet, or asyncio. Optionally, an event loop can be provided for asyncio.

Examples

The examples directory contains sample scripts demonstrating how to use async-pyserial for various operations. Below are a few examples to help you get started.

  • Basic read and write operations.

  • Non-blocking read with asyncio.

  • Using gevent and eventlet for asynchronous operations.

Example scripts included in the examples directory:

  • interval_write.py: Demonstrates periodic writing to the serial port.

  • serialport_read.py: Demonstrates reading from the serial port with different async workers.

  • serialport_terminal.py: A terminal interface for interacting with the serial port.

Platform Support

Supports Windows, Linux, macOS, and FreeBSD.

Development

To contribute to the project, follow these steps:

  1. Clone the repository:

    git clone https://github.com/Lei-k/async-pyserial.git
  2. Navigate to the project directory:

    cd async-pyserial
  3. Install the dependencies using poetry:

    poetry install
  4. Run the tests:

    poetry run pytest

License

This project is licensed under the MIT License. See the LICENSE file for more details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

async_pyserial-0.2.3.tar.gz (22.4 kB view details)

Uploaded Source

Built Distributions

async_pyserial-0.2.3-pp310-pypy310_pp73-win_amd64.whl (88.8 kB view details)

Uploaded PyPy Windows x86-64

async_pyserial-0.2.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (148.2 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

async_pyserial-0.2.3-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (156.1 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ i686

async_pyserial-0.2.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl (96.3 kB view details)

Uploaded PyPy macOS 11.0+ ARM64

async_pyserial-0.2.3-pp39-pypy39_pp73-win_amd64.whl (88.7 kB view details)

Uploaded PyPy Windows x86-64

async_pyserial-0.2.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (148.1 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

async_pyserial-0.2.3-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (156.2 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ i686

async_pyserial-0.2.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl (96.3 kB view details)

Uploaded PyPy macOS 11.0+ ARM64

async_pyserial-0.2.3-pp38-pypy38_pp73-win_amd64.whl (88.6 kB view details)

Uploaded PyPy Windows x86-64

async_pyserial-0.2.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (148.2 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

async_pyserial-0.2.3-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (156.2 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ i686

async_pyserial-0.2.3-pp38-pypy38_pp73-macosx_11_0_arm64.whl (96.3 kB view details)

Uploaded PyPy macOS 11.0+ ARM64

async_pyserial-0.2.3-cp313-cp313-win_amd64.whl (90.4 kB view details)

Uploaded CPython 3.13 Windows x86-64

async_pyserial-0.2.3-cp313-cp313-win32.whl (81.9 kB view details)

Uploaded CPython 3.13 Windows x86

async_pyserial-0.2.3-cp313-cp313-musllinux_1_2_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.13 musllinux: musl 1.2+ x86-64

async_pyserial-0.2.3-cp313-cp313-musllinux_1_2_i686.whl (2.4 MB view details)

Uploaded CPython 3.13 musllinux: musl 1.2+ i686

async_pyserial-0.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ x86-64

async_pyserial-0.2.3-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl (1.4 MB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ i686

async_pyserial-0.2.3-cp313-cp313-macosx_11_0_arm64.whl (105.6 kB view details)

Uploaded CPython 3.13 macOS 11.0+ ARM64

async_pyserial-0.2.3-cp312-cp312-win_amd64.whl (90.5 kB view details)

Uploaded CPython 3.12 Windows x86-64

async_pyserial-0.2.3-cp312-cp312-win32.whl (81.9 kB view details)

Uploaded CPython 3.12 Windows x86

async_pyserial-0.2.3-cp312-cp312-musllinux_1_2_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ x86-64

async_pyserial-0.2.3-cp312-cp312-musllinux_1_2_i686.whl (2.4 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ i686

async_pyserial-0.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

async_pyserial-0.2.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (1.4 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686

async_pyserial-0.2.3-cp312-cp312-macosx_11_0_arm64.whl (105.6 kB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

async_pyserial-0.2.3-cp311-cp311-win_amd64.whl (90.5 kB view details)

Uploaded CPython 3.11 Windows x86-64

async_pyserial-0.2.3-cp311-cp311-win32.whl (81.9 kB view details)

Uploaded CPython 3.11 Windows x86

async_pyserial-0.2.3-cp311-cp311-musllinux_1_2_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ x86-64

async_pyserial-0.2.3-cp311-cp311-musllinux_1_2_i686.whl (2.4 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ i686

async_pyserial-0.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

async_pyserial-0.2.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (1.4 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

async_pyserial-0.2.3-cp311-cp311-macosx_11_0_arm64.whl (106.4 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

async_pyserial-0.2.3-cp310-cp310-win_amd64.whl (89.5 kB view details)

Uploaded CPython 3.10 Windows x86-64

async_pyserial-0.2.3-cp310-cp310-win32.whl (81.1 kB view details)

Uploaded CPython 3.10 Windows x86

async_pyserial-0.2.3-cp310-cp310-musllinux_1_2_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ x86-64

async_pyserial-0.2.3-cp310-cp310-musllinux_1_2_i686.whl (2.4 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ i686

async_pyserial-0.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

async_pyserial-0.2.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (1.4 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

async_pyserial-0.2.3-cp310-cp310-macosx_11_0_arm64.whl (105.1 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

async_pyserial-0.2.3-cp39-cp39-win_amd64.whl (88.5 kB view details)

Uploaded CPython 3.9 Windows x86-64

async_pyserial-0.2.3-cp39-cp39-win32.whl (81.2 kB view details)

Uploaded CPython 3.9 Windows x86

async_pyserial-0.2.3-cp39-cp39-musllinux_1_2_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ x86-64

async_pyserial-0.2.3-cp39-cp39-musllinux_1_2_i686.whl (2.4 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ i686

async_pyserial-0.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

async_pyserial-0.2.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (1.4 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

async_pyserial-0.2.3-cp39-cp39-macosx_11_0_arm64.whl (105.2 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

async_pyserial-0.2.3-cp38-cp38-win_amd64.whl (89.4 kB view details)

Uploaded CPython 3.8 Windows x86-64

async_pyserial-0.2.3-cp38-cp38-win32.whl (81.0 kB view details)

Uploaded CPython 3.8 Windows x86

async_pyserial-0.2.3-cp38-cp38-musllinux_1_2_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ x86-64

async_pyserial-0.2.3-cp38-cp38-musllinux_1_2_i686.whl (2.4 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ i686

async_pyserial-0.2.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

async_pyserial-0.2.3-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (1.4 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

async_pyserial-0.2.3-cp38-cp38-macosx_11_0_arm64.whl (105.0 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

File details

Details for the file async_pyserial-0.2.3.tar.gz.

File metadata

  • Download URL: async_pyserial-0.2.3.tar.gz
  • Upload date:
  • Size: 22.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for async_pyserial-0.2.3.tar.gz
Algorithm Hash digest
SHA256 9dbda6c55b0e23a96def65043d0e64992488dbac0bbfcdfb0e85c495b1f5b090
MD5 6c9cd2363e0aa7166a9c2defb9a20b14
BLAKE2b-256 b8cc757290ea7def0a61e3723707ccbbab2c5e0fa784757d17e54eb6626850fb

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-pp310-pypy310_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 6067d7563508dfde9e084c6b5591c6b3e9f3c18f287254cabf14e055756014cc
MD5 b950ab48d6c5aff877d16fc18ba0c25a
BLAKE2b-256 b7fcbc71a301ec9e2c38e403d146cd8d23aa38c408a925818123e77026a12307

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d81b7f2ec52f7b44a03230784bbee51d1eca90cdcc51fa3845cf6899442ed4bf
MD5 8a2ff79e83cd15ffec03e20061b249e0
BLAKE2b-256 6bbb688708f616862410004f8c41970fe2f0297e91c92a80d44e38eafde5ce4b

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 907fb5aee62ee457073bc9dd551e19b3761bbb352a2b731d8015edf6107c98c6
MD5 56d8e15724530bbf5871eba1f4f6ed3b
BLAKE2b-256 426710f608dfd80667b9bb075317b85ab64c0652476f79341f8df3207bd1de27

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 22452c8add19b345bdad094d4d307e10dfc64701a7e45f63798591699459ea1c
MD5 d9868b3ec0ce7f3d9388e0c2b3986e2c
BLAKE2b-256 ba1ab984374893f7e5c10c526d9713ab78a0e5bcfde4d5e086964f11ca9119f3

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-pp39-pypy39_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 74c4afa7acd74289b5acd182bd56c784403dc22b8d18e21170bf6df17c6272c6
MD5 c45b29a5cd1c60d0923092fd086f30a3
BLAKE2b-256 0bb43ff2177f089b2ed34a25e8b6492b0a9aac63278c2b7cd54bce7a6a19e833

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3e0c590609f64c7b816b9926c933d6b0fc657bb7aa534806652ef2f82c8d4043
MD5 a24440d25166b0f2ac73de41a34aab88
BLAKE2b-256 79a48b2a00a2357d13832efcb46d1cf19513de03f947dae57f3e1769523be35b

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9236248d69d30dff1a6732a9a97bbf58e1f96131f14c2fb7e251f33d98f27806
MD5 8b2dcd1977de1bdfcf6fc55086244041
BLAKE2b-256 dc55538628d7ab535a68786ce6428953ca884c69653db2c6645b69cc9104132c

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 87a0b8fef0ae19e973e5ec24cf2cfae98371004248d0465292a8368198a911ce
MD5 8e15c37a8776217d2a2ebf5818ad90ec
BLAKE2b-256 a557c51b378b3cf72713bd40d4d528719d06f7f2e1dc1b451467c4b0ae63bb07

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-pp38-pypy38_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 63f020ca91f61d806bcaba7211d8fcda4140ba3846947bfdaea683247222afbf
MD5 fade4ef5de5421bdba8432a3710644c8
BLAKE2b-256 b997c30ca2fb7d36d8109f1633b9bc534afbb2193375ea5fe320027ce8491876

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 25acda7648d6603338739cbb5aac46b3cd91b60032cd04f567cacfc39d412be8
MD5 274f24ac5e3c8b83d4384e18a6415aa2
BLAKE2b-256 4d00613c139e60db5bc4fbc7e980fe3c13f82be4e30c3eb6d0760f899db58b67

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 dab76bb0377ab9e5b403c509cda60172e36c789502d6fe03a785b86dbe25a494
MD5 942051b1a2cc3f99e296d75a674f175a
BLAKE2b-256 c8f374de6ba4b59e0fc4f493c0f432a904e9119f04864c17f39cb15551e3a592

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-pp38-pypy38_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-pp38-pypy38_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4aa883f7e0951aa572a89aeb99903c778213aefa35132901d78310cbbd5a4847
MD5 63d0e1c054a9d74df1361010bb22a1e0
BLAKE2b-256 3061cc8cf783e0765e6a6035e5cace98dd691f91ab42b2f85e008fae21e70b2f

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 3fab36444d7676e7fd22a8c1033fc870cd524f68cf3d75debca5b82ed71c5dd9
MD5 1924f859a7ef9b21daa3018d70c857cc
BLAKE2b-256 6ffa632ec74804eb0cd818cd95e730042605d0024261046259db097b4c149208

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp313-cp313-win32.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 642ce553ad570581a427fa5dc5a23f0f79aeec510490909d4e6780ab415b835c
MD5 88ae3c236772a1a1f6323499f9d36ccc
BLAKE2b-256 ce7a08d55b8bda705ab02ae63de730a0f5a20a5abec6918d55ca990b0027bd52

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4b994bccff614b2a76a00e6c799ef42e9ea8a486a39b1e623509716cec40fd53
MD5 b15c08d019622d13d678067b9ef6452d
BLAKE2b-256 2e8a969a32b168236ced1d2517818c38c8526a14067c73f0b64bead614c8a852

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp313-cp313-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 20c16df837c7356c0105d7f9d734f4012988d5d6ebf863519225434cb5e20901
MD5 11fba51db79459918b78bf9e0cacf346
BLAKE2b-256 140c9abcfa265d84062153018f1618224289b2a70baa472c512d48a064962145

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0c43e3918a14a7064d6e19fa012a3ad008890bb4776cfd1fd99b74f32060855e
MD5 4329cfc768d072167666eec72e3ab2b9
BLAKE2b-256 f3974eb0327a3205e2507e578bdd43d305936b9b31b9bf44e74187d20557320e

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ab2485f9b4949fcd5ed2b981e332862735fa5984c08afba5e4f5546c5b46fc4d
MD5 e362732b0b2a36bc24aa0fad177e4ed1
BLAKE2b-256 0f6b6d30793f46f10b490e18e9bc7cdca52c2a52ca996fff9459add60f6fd582

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 aca02686f9a2e71f318c391729ce6dbdaace83407522d917cca36433954f0da0
MD5 6df3977cd4745479a9f89970a12862b9
BLAKE2b-256 ac68c853b5d88ee85e1fd209fe481aaf6b46bc09f66c7bb9cceb5adf0af17fbe

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 593d1eaee25ab4ed50ef57e8db0836d88720926e81feaf0293ae7805d4130b3e
MD5 4dfe51e750bc0d47649cc2300b9d71e6
BLAKE2b-256 08853d4d2bb3f323dba47a1aa782ed0b33ad76ea684dd14d4fad6949ee6d48e7

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp312-cp312-win32.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 094ba27a7357cc1a2f798c9724a1900fc2a69e31852ea8b054c2e07ab842a5c2
MD5 81e20528dbc7a6bdcb6d551b3d42aadd
BLAKE2b-256 4e28af00c135a2b6eca283f27a524d8a124e3cb1b75a2405945823da2a58880e

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9acaed515fe0f72e3eee23973cd38590bb6af3a13b29c40d8fa45f181875e566
MD5 df71eef934fe61a6609e81cb290c79a7
BLAKE2b-256 0541f6ee703067d1eabd618c746e87838b6143ef7e807eaa03088881981dfc02

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp312-cp312-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 f8e8a6aff8cb610e68dcafb9797619c099632ac215c8dea18723924d133336ba
MD5 7eb61996b1770081eaff1aec08c74819
BLAKE2b-256 f1ce68b0bae8b9cd96170869656e6c1d2cafcf407c0aa1c4d66346eb973b3aef

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 17d3a61acc9c1f5d868fcb5d688a6dcceffadcd536ce3a7a3c140182b605929e
MD5 bd4494c4ac3f0814132211e0fa12e6d9
BLAKE2b-256 2654d4b5ae182437e78b591e399b965964b0006f69cd51c41afb50c80d5a06f4

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 5a229a79bbe72852fe50281e671de055c981d7ef5dfb974d43b87bb6efe0093e
MD5 465b0a2e233a88d22c4db4609e4e3984
BLAKE2b-256 6399e44729c6750ed41922d7f08e0a64968d8be9e05d3f7cf2b57c949cb803ae

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 59938d148f31e6cb197f958ed6691cfe16b48f4a09aa80eda07ac3a3b2c61368
MD5 939fdc89b05b1ab88787c02703a9d794
BLAKE2b-256 d2ed47773d689e0ada388657b2d79f6e1d84f68530d1091b42a283aac04658cd

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c6ccd2ca48a152e8663133bfa020b0329961c375b7aa3549274036c04b60aa57
MD5 c359f6825a9e07a2b431239ce8f70821
BLAKE2b-256 c80c830e29411ede030cfc75c6962857b838b6ae49f47e3fa394f0da0337685a

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp311-cp311-win32.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 4f3e964860fda628125767d4611cc12bd44b4d0abe2bb66b58eb3dbdd2ce4189
MD5 556db28690fbd112a5ea8c32564c6b46
BLAKE2b-256 1fda4283092c7d43281cd63e2eb53c404c6a7d06ca6dd958fc7dd1d42e05d0c9

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 59df78b0a2eaa2347368b5e59926637d531f615557eb0403d25f0937c9c817e1
MD5 7c2ac79c44afbed6ac365902b58dbfbb
BLAKE2b-256 ebf317677b333dc4f35de95cdbd59be71892784605772e3da9174165097d66b9

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp311-cp311-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 a6166d2c5bc481a4bed7489c4fe36bc6fbcaf6eb057a7fc1d0c3bd8d1d71bf19
MD5 2dee5e6e5ddfed5e2b3ee2c952864c49
BLAKE2b-256 0e8ce6d12948e6422c4f712232ba5fc4bb9768342417f1d7c34e3f2fccbb3eea

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3e88009ec46b6ad18a3cdb51c66f4979e757a553cfc96453209a094b7eeb709c
MD5 e3ee44cd59380c0582d5ab2e28d1e36d
BLAKE2b-256 4c3fb425c4d3094086570fac1bf1e9c21faec04763506469ad8937e556877c20

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e6dad948cdb0fa44624784ae0e50ae2a2612002c05a54f006e65ccee183e9edc
MD5 8182a274f22c626346904e52fb9c09ec
BLAKE2b-256 cf1bd05ed82cd20aec4173cd8695880eed0627bf7b08bdd54a87256c6d92dfc0

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d6880effcc946297bfbe0a71f9ee461f70d501fb30160ac51ba55e655a4ca0ef
MD5 268295d0ec5286c5213f22f354c6f3e1
BLAKE2b-256 c5c137917a2cb572df9e9e242f2e961bb3fa7ef33053116542201bb8cb118f53

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 eac7c563dea8a6ddb5b0aa8aa41f0cb08d4ee34b23cd9310cf6122e4a915db8d
MD5 80a8c8e87acda9cfe2e7fc7832b12ba0
BLAKE2b-256 1b753fd81abc71f2e262845ceb50ea9cf1a55ec39a28c9c2600b880f8460972c

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp310-cp310-win32.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 2f8fa2611c56d7e336e312e21c855f2aac210253de4a7f45bdb2d2fc0a38bdd0
MD5 f2dc64a40ffebc6f6e26387a07e1bdbe
BLAKE2b-256 2ba25430bcd4a20080a21cf6737e6faaf87de8b9c3a2f0717f080acec937161e

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3f5880cad9c19773cf562e91ee42b93869b72a29bae240c0e61481cd8e269043
MD5 5639cd05482980e6f8fc0e27949ed4d1
BLAKE2b-256 da9f6fd7e70f61783873b42add89d4b941b5bba2fb5b04b2d90ed18b3543e563

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp310-cp310-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp310-cp310-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 31f853745cbacbb8710398a6d968974934786e44170b6eb34227335650eb2e00
MD5 741ed0feeb84c14c24379930a273229e
BLAKE2b-256 e0ec111c87cdf070ebd045df26052a05884fc117fe12e03008df12216bdba63a

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0d3aeb2a31ed9a807fc46ac36261b85e1ea189b2c6e3d50729d97e12886a6e69
MD5 ead66278761e8fa87ea88fd5261662b5
BLAKE2b-256 55db539e38a08275c5c88254a7bfb9a7a0350b90658eee66476800fae9840b48

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d1c30f497bb491515ca1b8a4709ef5bec944614e18fcd6ffd2048da680a7aacb
MD5 60cc93af261da3e75a519345fc2d56da
BLAKE2b-256 bca93057250a270a063c832856b365ceec8bb7293391aaed53e5cb4f1eaad82c

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2ce1ce7b7e79e37fb8a1ebcbeea4253faa154f5e3c0c58bdd610b06764121422
MD5 0c5a33c9ea864d004fb919c4b66f06ff
BLAKE2b-256 baedf9f57048d87367e27aab4870bcd54dedcc830052179c40ad7e91d6577722

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 800aebb9e86e484c3739c349b7d6e45c545266c15c70735251d2fd6d43370a2b
MD5 a73014631920df7646d4bac0c4f4f986
BLAKE2b-256 c654fed352e6fe4cda110bf8570c756630246cf21ab46bf736bfa99ed478c485

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp39-cp39-win32.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 f7763e4aa88076bc0c9d884ebc5e44fcc55642b08c5b8f5f332e8fa88469be0a
MD5 05fbd7f6def579338bd1594de56096cf
BLAKE2b-256 1781113daa845dcd5f2d14c8b27d05b350bd3fde9c0093ef9710a16bad65e0b3

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7159341479d6b80bd459e359fc91a01be091eb5e70a119a7e790b2426e256337
MD5 480816452d4cddea33db38bc01fb285f
BLAKE2b-256 e49ad7916ad3df2c2dade60ded035d16b5e156bf4853694ef27948c5b0f17384

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp39-cp39-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp39-cp39-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 78005f4cca8b20869fb785fbdf1cfec25a7cb0e1a0c51961cf45534477001dde
MD5 42bfffbf39599ca232ecbf125499bfd2
BLAKE2b-256 de0d95bce0bb81f22df6f864bc6e73ab68569c773bcbfb1afb872ac11456bb03

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1b51d108816c78ead308acc66ef98186481a32c8c51d2f34b05393933789ce78
MD5 121f38a3fdff29c840b0f5e7346868b1
BLAKE2b-256 c554681ae2d66e9edaea2ed726c5958c24d8747127b0b6b3c981acd91a1696da

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 d6235d5577b7c0ea58e48a75f694b9d3bf73114ef53eb9f98e6905448ac38702
MD5 5ecc736c48b1589ee81f1a838e1e9e7b
BLAKE2b-256 4bc4e548129f68ae8b4290aaf589f5f68ec6725a0a09d0c495abe2a93d523b86

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 21ed44bcf108cd453fe1ada3a2096485bdb25f5671df21effc20eca17f3a89a1
MD5 2eee476672d14442312e6a7bfede2f7e
BLAKE2b-256 50cdf39d4c8e8dd109a9c7db9a81d1be9ceff3e75a324a3627ff2fcefdf140a4

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 b6beed3a12e1c5eaa55c21915b8e52ca3cd828c502b741dfe91dd2c6d6ea3112
MD5 830815e46b6b09ab2385a37df8525da9
BLAKE2b-256 8b35e22c7037592f76e8819bbc481c6f278f7eb8be991a78caa7e9ff172e352d

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp38-cp38-win32.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 b158c738d54dd3bffaf1547e2d450a58ceb5e7371f50f9097b66fae1a52959d0
MD5 6770a3972cf4fdb89c5dbda3a4974d62
BLAKE2b-256 7763e812eddf5ee3ce07df7bcac0733978933ff4e066b2ad30362bb26e971a33

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2aa694574ebf4f54f712c83bc4598e90151b97aa76cc2f85fc98ba3a77573539
MD5 1c7db298737d363dfbf70c6952a78e21
BLAKE2b-256 a2c9c86e0b2a28f65de72b140883e50b2f7b174a97b39ac5ea296842b52fefbc

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp38-cp38-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp38-cp38-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 8b3bfa5556e12f93d67fec262345dab906b860fe7d36054ce69930f5a5a3a442
MD5 19fde558a98fe12bc8ede17cf75b3776
BLAKE2b-256 11e96f724257e6dc8e1383cb8d4b2136237c6ff5c7d01a9197b6d23c25007b5a

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2eb82102231e3c5a216f61b99843168f46d7f20c11e9e068f016cf6435be4f40
MD5 aa3bfe06f84cab96f4df03353c7fb0ed
BLAKE2b-256 e17fd2161f2122cb8fd4f5cbc78da8dbec0a20c934b05dc21c7141f81292ddd7

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e588590f7e142a0dd509bb191c32f0d7c4254ef94dc763ecffde4834822415a0
MD5 c129f2ebc5dd6488a8ece99d40a295a8
BLAKE2b-256 ba054b2846a1bc75b746ab7d8e8f658c10152900204c0608dd7ece2ffcd73447

See more details on using hashes here.

File details

Details for the file async_pyserial-0.2.3-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for async_pyserial-0.2.3-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2d77dd4b5ea5b66a75ed8555734035c6357bdeb44591cf601fe394bfbe0d2035
MD5 ec6a7d165c950c3478c0a02228bf18af
BLAKE2b-256 5ec17555ab1492415536866dbe0c7dd2fe05698abb4c49683def47a7471d466b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page