This package contains generic implementations for various CCSDS (Consultative Committee for Space Data Systems) and ECSS (European Cooperation for Space Standardization) packet standards.
Currently, this includes the following components:
- Space Packet implementation according to CCSDS Blue Book 133.0-B-2
- CCSDS CDS short timestamp implementation according to CCSDS 301.0-B-4 3.3.
- PUS Telecommand and PUS Telemetry implementation according to the ECSS-E-ST-70-41C standard. PUS A (legacy) is supported as well.
- CCSDS File Delivery Protcol (CFDP) packet implementations according to CCSDS Blue Book 727.0-B-5.
- Unified Space Data Link Protocol (USLP) frame implementations according to CCSDS Blue Book 732.1-B-2.
It also contains various helper modules which are commonly used when working with these standards:
PusVerificatormodule to track the verification of sent telecommands.- PTC and PFC definitions for ECSS packets.
Countdownutility class.- Sequence counter utility classes.
You can install this package from PyPI:
pip install spacepacketsFor example, using uv:
uv pip install spacepacketsYou can find all examples inside the documentation.
For local development from a checkout, sync the project environment and development tools:
uv sync --group devTo include test dependencies:
uv sync --group dev --extra testIf you want to run the tests, you have to install the package with the optional test feature:
uv sync --group dev --extra testRunning tests regularly:
uv run pytestRunning tests with coverage:
uv run coverage run -m pytest
uv run coverage reportThe documentation is built with Sphinx and new documentation should be written using the NumPy format.
Install the required dependencies first:
uv pip install -r docs/requirements.txtThen the documentation can be built with
cd docs
make htmlYou can run the doctests with
make doctestLinting:
uv run ruff checkFormatting:
uv run ruff format