Skip to main content

Python binding of the yahdlc library allowing to encode and decode HDLC frames.

Project description

PyPI Package Latest Release PyPI Package Downloads Per Month PyPI Package Python Versions Build Status

python4yahdlc is a Python binding of the yahdlc library, allowing to encode and decode HDLC frames.

Dependencies

This software requires Python 3.

Installation

From sources

git clone https://github.com/SkypLabs/python4yahdlc.git
cd python4yahdlc
git submodule update --init --recursive
pip install --upgrade .

Usage

To generate a new HDLC data frame:

from yahdlc import *

frame = frame_data('hello world!')

To generate a new HDLC ACK frame with a specific sequence number:

frame = frame_data('', FRAME_ACK, 3)

The highest sequence number is 7 and the following frame types are available:

  • FRAME_DATA

  • FRAME_ACK

  • FRAME_NACK

Note that when you generate an ACK or NACK frame, the payload is useless.

To decode a received HDLC frame:

data, ftype, seq_no = get_data(frame)

For a more advanced use, take a look at the examples available in the examples folder.

Development

To set up a development environment on your local machine:

# Clone the Git repository and initialise its sub-modules.
git clone https://github.com/SkypLabs/python4yahdlc.git
cd python4yahdlc
git submodule update --init --recursive

# Create a virtual environment and activate it.
python -m venv .venv
source .venv/bin/activate

# Make sure to have the latest versions of pip and setuptools.
pip install --upgrade pip setuptools

# Install python4yahdlc in editable mode with all its optional
# dependencies.
pip install -e .[examples,tests]

License

This project is released under the GPL version 3 license. The yahdlc library is released under the MIT license.

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

python4yahdlc-1.3.5.tar.gz (23.2 kB view hashes)

Uploaded Source

Built Distributions

python4yahdlc-1.3.5-pp39-pypy39_pp73-win_amd64.whl (22.7 kB view hashes)

Uploaded PyPy Windows x86-64

python4yahdlc-1.3.5-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (21.3 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

python4yahdlc-1.3.5-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (21.7 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

python4yahdlc-1.3.5-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (19.4 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

python4yahdlc-1.3.5-pp38-pypy38_pp73-win_amd64.whl (22.7 kB view hashes)

Uploaded PyPy Windows x86-64

python4yahdlc-1.3.5-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (21.3 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

python4yahdlc-1.3.5-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (21.7 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

python4yahdlc-1.3.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (19.5 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

python4yahdlc-1.3.5-pp37-pypy37_pp73-win_amd64.whl (22.7 kB view hashes)

Uploaded PyPy Windows x86-64

python4yahdlc-1.3.5-pp37-pypy37_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (21.4 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

python4yahdlc-1.3.5-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (21.8 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

python4yahdlc-1.3.5-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (19.4 kB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

python4yahdlc-1.3.5-cp311-cp311-win_amd64.whl (22.6 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

python4yahdlc-1.3.5-cp311-cp311-win32.whl (21.8 kB view hashes)

Uploaded CPython 3.11 Windows x86

python4yahdlc-1.3.5-cp311-cp311-musllinux_1_1_x86_64.whl (36.7 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

python4yahdlc-1.3.5-cp311-cp311-musllinux_1_1_i686.whl (36.1 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

python4yahdlc-1.3.5-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (31.2 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

python4yahdlc-1.3.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (30.4 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

python4yahdlc-1.3.5-cp311-cp311-macosx_10_9_x86_64.whl (19.9 kB view hashes)

Uploaded CPython 3.11 macOS 10.9+ x86-64

python4yahdlc-1.3.5-cp310-cp310-win_amd64.whl (22.6 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

python4yahdlc-1.3.5-cp310-cp310-win32.whl (21.8 kB view hashes)

Uploaded CPython 3.10 Windows x86

python4yahdlc-1.3.5-cp310-cp310-musllinux_1_1_x86_64.whl (35.8 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

python4yahdlc-1.3.5-cp310-cp310-musllinux_1_1_i686.whl (35.3 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

python4yahdlc-1.3.5-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (31.2 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

python4yahdlc-1.3.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (30.4 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

python4yahdlc-1.3.5-cp310-cp310-macosx_10_9_x86_64.whl (19.9 kB view hashes)

Uploaded CPython 3.10 macOS 10.9+ x86-64

python4yahdlc-1.3.5-cp39-cp39-win_amd64.whl (22.6 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

python4yahdlc-1.3.5-cp39-cp39-win32.whl (21.8 kB view hashes)

Uploaded CPython 3.9 Windows x86

python4yahdlc-1.3.5-cp39-cp39-musllinux_1_1_x86_64.whl (35.5 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

python4yahdlc-1.3.5-cp39-cp39-musllinux_1_1_i686.whl (35.0 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

python4yahdlc-1.3.5-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (31.0 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

python4yahdlc-1.3.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (30.2 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

python4yahdlc-1.3.5-cp39-cp39-macosx_10_9_x86_64.whl (19.9 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

python4yahdlc-1.3.5-cp38-cp38-win_amd64.whl (22.6 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

python4yahdlc-1.3.5-cp38-cp38-win32.whl (21.8 kB view hashes)

Uploaded CPython 3.8 Windows x86

python4yahdlc-1.3.5-cp38-cp38-musllinux_1_1_x86_64.whl (36.0 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

python4yahdlc-1.3.5-cp38-cp38-musllinux_1_1_i686.whl (35.5 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

python4yahdlc-1.3.5-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (31.8 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

python4yahdlc-1.3.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (31.0 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

python4yahdlc-1.3.5-cp38-cp38-macosx_10_9_x86_64.whl (19.9 kB view hashes)

Uploaded CPython 3.8 macOS 10.9+ x86-64

python4yahdlc-1.3.5-cp37-cp37m-win_amd64.whl (22.6 kB view hashes)

Uploaded CPython 3.7m Windows x86-64

python4yahdlc-1.3.5-cp37-cp37m-win32.whl (21.8 kB view hashes)

Uploaded CPython 3.7m Windows x86

python4yahdlc-1.3.5-cp37-cp37m-musllinux_1_1_x86_64.whl (36.4 kB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

python4yahdlc-1.3.5-cp37-cp37m-musllinux_1_1_i686.whl (35.9 kB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.1+ i686

python4yahdlc-1.3.5-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (31.1 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

python4yahdlc-1.3.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (30.3 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

python4yahdlc-1.3.5-cp37-cp37m-macosx_10_9_x86_64.whl (19.9 kB view hashes)

Uploaded CPython 3.7m macOS 10.9+ x86-64

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