Skip to main content

CCSDS packet definitions for Europa Clipper instruments

Project description

SPaC-kit-europa-clipper

DOI

For instruments ECM, MISE and SUDA, some of the CCSDS packets definitions are coded here, as needed by the Science Data System.

Those packet definitions are used by the SPaC-kit library to decode CCSDS packets, generate documentation and simulated datasets.

Prerequisites

This package has been tested with Python 3.12.

Users

Install the main package:

pip install spac-kit

Install the plugin from pypi (NOT PUSLISHED ON PYPI YET):

pip install spac-kit-europa-clipper

You can now parse a downlink file from Europa-Clipper:

parse-downlink --file {your europa-clipper file}

Small test downlink files are provided here:

Instrument File
ECM file
SUDA file

Developers

Clone the repository:

git clone  https://github.com/joshgarde/europa-cliper-ccsds-plugin.git

Create a virtual environment and activate it:

python -m venv venv
source venv/bin/activate   # On Windows use `venv\Scripts\activate`

You might need to upgrade pip first:

pip install --upgrade pip

If you want to use the latest dev version of spac-kit, install it from the sources:

 git clone https://github.com/CCSDSPy/SPaC-Kit.git
 source {HOME OR PATH TO YOUR VENV}/bin/activate
 pip install ./SPaC-Kit

Install the package in editable mode, with the developer dependencies:

pip install -e '.[dev]'

Or use poetry:

Install poetry, from your local system, not a virtual environment:

curl -sSL https://install.python-poetry.org | python3.12 -
export PATH=${HOME}/.local/bin:${PATH}

Create a poetry virtual environment and install the package with the developer dependencies:

poetry env use python3.12
poetry lock
poetry install --extras dev

Optionnally, to work with a local version of Spac-Kit, you can use poetry as follows:

poetry add ../SPaC-Kit

Beware of the version of Spac-Kit you are using, it should be compatible with the version specified in the pyproject.toml file of this package.

IMPORTANT: Install the pre-commit hooks, they will ensure code quality. If you don't do it the automated test running on the Pull Request will fail.

pre-commit install && pre-commit install -t pre-push

Make your changes in the package definition files located in the ccsds.packets.europa_clipper directory.

Create/Update the test reference data as needed, next to the updated packet definitions, for example ccsds.packets.europa_clipper.ecm.test.

Run the tests to ensure everything is working:

pytest

Before committing your changes update the poetry lock file:

poetry lock

Releasing

To prepare for a new release candidate PR should be created against the main branch. The branch of the release should be prefixed with release/ with the version string preceding. For example: release/1.0.0.

git checkout -b release/X.Y.Z
git push

When this branch is created, the "Publish to PyPI" GH Actions workflow will run which will automatically publish a build to the PyPI testing environment where the build can be tested with any downstream tools/services.

To create the new release, merge the PR which will kickoff the "Lint, test, and release" CI pipeline. This pipeline will perform an automatic linting and run the repo's tests. After both steps pass, the workflow will then tag the merged PR commit and create a new release off of that tag.

Once that release is created, several processes will occur:

  1. The "Publish to PyPI" workflow will run again, except now it will publish to the main PyPI repository.

  2. Zenodo will pickup the new release for DOI generation + archival. This process is automatic and managed by Zenodo. It is simply kicked off on our end once a new release is cut.

Once these processes are complete, a release has been successfully cut.

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

spac_kit_europa_clipper-0.1.0.tar.gz (5.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spac_kit_europa_clipper-0.1.0-py3-none-any.whl (6.0 MB view details)

Uploaded Python 3

File details

Details for the file spac_kit_europa_clipper-0.1.0.tar.gz.

File metadata

  • Download URL: spac_kit_europa_clipper-0.1.0.tar.gz
  • Upload date:
  • Size: 5.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.3.2 CPython/3.12.12 Linux/6.14.0-1017-azure

File hashes

Hashes for spac_kit_europa_clipper-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6268a99fc8e6aba9bfe34f2bda50204d06507ca0e900303c0c6697f93d7aa9c0
MD5 7e61acf674bbe1045c8068247f73021a
BLAKE2b-256 6da1d416aac137df3e9308e4df0ac942a708d1aa96945d43ab348d0c31c315c4

See more details on using hashes here.

File details

Details for the file spac_kit_europa_clipper-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for spac_kit_europa_clipper-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7d733f7dd9738f9178103ccc6c0e71ccf6b720be005a1d5cbc161342034fd312
MD5 231f7f3f5460c9db7e9be652f1878bca
BLAKE2b-256 64e8458f1e091bf818f5182e972e9a2503834655b61e9f931e701583dd46c300

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page