Skip to main content

Helpers for asynchronous line processing. Some asynchronous readline implementations consume data if a readline() call times out. This is a wrapper for those implementations, guranteeing that either full lines are returned or nothing.

Project description

Atomic-Lines

Intro

A toy project, wrapping asynchronous one byte readers into a sane(?) readline semantic. If no end of line is found the request is considered timedout, and the data is kept in the buffer, otherwise lines are returned (without the EOL character) for further processing.

The main goal is to help wrap i.e. serial access or other apis which consume data if readline times out.

For more userfriendly documentation see https://maltevesper.github.io/atomiclines/.

Logging configuration

Logging can be configured by pointing the environment variable ATOMICLINES_LOG_CONFIG to a yaml file.

ATOMICLINES_LOG_CONFIG=logging_configuration.yaml pytest

The yaml file, should contain a logging dict. Example file:

version: 1
disable_existing_loggers: true

formatters:
    standard:
        format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
    error:
        format: "%(levelname)s <PID %(process)d:%(processName)s> %(name)s.%(funcName)s(): %(message)s"

handlers:
    console:
        class: logging.StreamHandler
        level: DEBUG
        formatter: standard
        stream: ext://sys.stdout

loggers:
    atomiclines:
        level: INFO
        handlers: [console]
        propogate: no

For Developers

Bash Completion for pytest

pip install argcomplete # is a dev dependency too
activate-global-python-argcomplete

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

atomic_lines-0.1.1rc6.tar.gz (17.4 kB view details)

Uploaded Source

Built Distribution

atomic_lines-0.1.1rc6-py3-none-any.whl (11.8 kB view details)

Uploaded Python 3

File details

Details for the file atomic_lines-0.1.1rc6.tar.gz.

File metadata

  • Download URL: atomic_lines-0.1.1rc6.tar.gz
  • Upload date:
  • Size: 17.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for atomic_lines-0.1.1rc6.tar.gz
Algorithm Hash digest
SHA256 4940bf07eee586669ed5450e12d0b87f9025977f6697c87b97106153072371ec
MD5 a88c36f5e2b9568bdcd945e8158d3a99
BLAKE2b-256 e5f63cfe21f0ab94f50ccc8d9575ef02b8e184f2bd209cafae87e5aca3233d25

See more details on using hashes here.

File details

Details for the file atomic_lines-0.1.1rc6-py3-none-any.whl.

File metadata

File hashes

Hashes for atomic_lines-0.1.1rc6-py3-none-any.whl
Algorithm Hash digest
SHA256 a0e66a8a81c20e02ab83cb7369e2164f68ce5e343ea6b2ef483ec39305eba23d
MD5 8d5f874d483cf0ad12fea0abab97b78b
BLAKE2b-256 cd2893cd9a1a455f32aca3e60e869ce6a823bb3a4a74ebdc63f5c4f994c93e6c

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