connio
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())
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a06a4965d1ce6a4621b511183a98f04a1e2c50ae59ca20f55537d5fea3501aaa
|
|
| MD5 |
e2be5761caa9bb2e66024b3a3f4833ef
|
|
| BLAKE2b-256 |
1994e7adc24adafd1230a122a259e5680cbddd73b5b0201aa92147f8431ba8f6
|