Skip to main content

Concurrency agnostic socket API

Project description

connio

Pypi version

A python concurrency agnostic communication library.

Pass a URL to the single point API function connio.connection_for_url() and it will return a communication object with a common generic API.

Helpful when dealing with instrumentation which work over serial line or TCP (and in future USB) with simple REQ-REP communication protocols (example: SCPI).

The request for a communication object is forwarded to the corresponding serialio or sockio libraries depending on the URL you give.

Written in asyncio with support for different concurrency models:

  • asyncio
  • classic blocking API
  • future based API
  • python 2 compatible blocking API (for those pour souls stuck with python 2)

Installation

From within your favorite python environment:

pip install connio

Usage

import asyncio
from connio import connection_for_url

async def main():

    # A local async serial line
    sl = connection_for_url("serial:///dev/ttyS0", parity="E")
    print(await sl.write_readline(b"*IDN?\n"))

    # An async serial line over telnet server
    sl = connection_for_url("rfc2217://moxa.acme.org:7890", parity="E")
    print(await sl.write_readline(b"*IDN?\n"))

    # An async TCP connection
    tcp = connection_for_url("tcp://gepace.acme.org:5025")
    print(await tcp.write_readline(b"*IDN?\n"))

    # An sync TCP connection
    tcp = connection_for_url("tcp://gepace.acme.org:5025", concurrency="sync")
    print(tcp.write_readline(b"*IDN?\n"))

asyncio.run(main())

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

connio-0.2.0.tar.gz (2.8 kB view details)

Uploaded Source

File details

Details for the file connio-0.2.0.tar.gz.

File metadata

  • Download URL: connio-0.2.0.tar.gz
  • Upload date:
  • Size: 2.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/50.3.0.post20201006 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.7

File hashes

Hashes for connio-0.2.0.tar.gz
Algorithm Hash digest
SHA256 a06a4965d1ce6a4621b511183a98f04a1e2c50ae59ca20f55537d5fea3501aaa
MD5 e2be5761caa9bb2e66024b3a3f4833ef
BLAKE2b-256 1994e7adc24adafd1230a122a259e5680cbddd73b5b0201aa92147f8431ba8f6

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