Metadata-Version: 2.4
Name: com-interface
Version: 0.2.0
Summary: Generic communication interface abstraction for sending and receiving arbitrary byte packets
Author-email: Robin Mueller <robin.mueller.m@gmail.com>
License: Apache-2.0
Project-URL: Homepage, https://github.com/us-irs/com-interface
Keywords: communication,packet,abstraction,serial
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Natural Language :: English
Classifier: Operating System :: POSIX
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Communications
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Requires-Dist: crcmod~=1.7
Requires-Dist: pyserial~=3.5
Requires-Dist: cobs~=1.2
Requires-Dist: dle-encoder~=0.2.3
Provides-Extra: test
Requires-Dist: pytest~=8.3; extra == "test"
Requires-Dist: spacepackets~=0.28.0; extra == "test"
Dynamic: license-file

[![ci](https://github.com/us-irs/com-interface/actions/workflows/ci.yml/badge.svg)](https://github.com/us-irs/com-interface/actions/workflows/ci.yml)
[![Documentation Status](https://readthedocs.org/projects/com-interface/badge/?version=latest)](https://com-interface.readthedocs.io/en/latest/?badge=latest)
[![PyPI version](https://badge.fury.io/py/com-interface.svg)](https://badge.fury.io/py/com-interface)

`com-interface` - Generic communication abstraction to send arbitrary byte packets
======

This library contains a generic communication abstraction specifically targeted
towards the exchange of binary data like CCSDS packets.

The [documentation](https://com-interface.readthedocs.io/en/latest/?badge=latest) contains more
information.

# Install

You can install this package from PyPI

Linux:

```sh
python3 -m pip install com-interface
```

Windows:

```sh
py -m pip install com-interface
```

# Examples

You can find all examples [inside the documentation](https://spacepackets.readthedocs.io/en/latest/examples.html).


# Tests

If you want to run the tests, it is recommended to install `pytest` and `coverage` (optional)
first:

```sh
pip install coverage pytest
```

Running tests regularly:

```sh
pytest .
```

Running tests with coverage:

```sh
coverage run -m pytest
```

# Documentation

The documentation is built with Sphinx and new documentation should be written using the
[NumPy format](https://www.sphinx-doc.org/en/master/usage/extensions/example_numpy.html#example-numpy).

Install the required dependencies first:

```sh
pip install -r docs/requirements.txt
```

Then the documentation can be built with

```sh
cd docs
make html
```

You can run the doctests with

```sh
make doctest
```

# Formatting and Linting

Linting:

```sh
ruff check .
```

Formatting:

```sh
ruff format .
```
