DTNMA AMM CODEC Engine (ACE)
Project description
ACE Tools
This is the AMM CODEC Engine (ACE) for the DTN Management Architecture (DTNMA). It is part of the larger Asynchronous Network Managment System (ANMS) managed for NASA AMMOS.
It is a library to manage the information in DTNMA Application Data Models (ADMs) and use that information to encode and decode DTNMA Application Resource Identifiers (ARIs) in:
- Text form based on URI encoding
- Binary form based on CBOR encoding
It also includes an ace_ari command line interface (CLI) for translating between the two ARI forms.
Development
It is advised to operate within a Python virtual environment, ideally Python 3.11, to help prevent dependency errors later on. You can run the following commands to create and activate your venv:
python3.11 -m venv .venv
source .venv/bin/activate
If you wish to deactivate your venv, simply run deactivate.
To install development and test dependencies for this project, run from the root directory (possibly under sudo if installing to the system path):
pip3 install -r <(python3 -m piptools compile --extra test pyproject.toml 2>&1)
If this command fails, you may have to install the pip-tools package first and then run two separate commands like so:
pip3 install pip-tools
python3 -m piptools compile --extra test pyproject.toml
pip3 install -r requirements.txt
To install the project itself from source run:
pip3 install .
If you are a developer seeking to do unit testing, you can run the following two commands to install the dependencies for unit tests and then run said unit tests to see if any are failing:
pip3 install -e '.[test]'
python3 -m pytest -v --cov=ace tests
Likewise, if you wish to update our Sphinx documentation and then see your changes, you can run the following two commands to install and build the docs, and then open the generated html files in a web browser:
pip3 install .[docs]
./build_docs.sh
If you are still encountering installation errors, you may need to update the submodules:
git submodule update --init --recursive
An example of using the ARI transcoder, from the source tree, to convert from text to binary form is:
echo 'ari:/EXECSET/n=123;(//ietf/dtnma-agent/CTRL/inspect(//ietf/dtnma-agent/EDD/sw-version))' | PYTHONPATH=./src ADM_PATH=./tests/adms python3 -m ace.tools.ace_ari --inform=text --outform=cborhex
which will produce a hexadecimal output:
0x821482187B8501012205818401012301
An example of using the ADM parser, from the source tree, to normalize and compare ADMs (with meld tool) is:
ADMFILE=../adms/ietf-inet.yang; meld ${ADMFILE} <(PYTHONPATH=./src ADM_PATH=./tests/adms python3 -m ace.tools.ace_adm -f yang ${ADMFILE})
An example of using the ADM parser, from the soruce tree, to normalize and compare ADMs (with meld tool) is:
ADMFILE=../adms/ietf-inet.yang; meld ${ADMFILE} <(PYTHONPATH=./src ADM_PATH=./tests/adms python3 -m ace.tools.ace_adm -f yang ${ADMFILE})
Contributing
To contribute to this project, through issue reporting or change requests, see the CONTRIBUTING document.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dtnma_ace-2.0.0.tar.gz.
File metadata
- Download URL: dtnma_ace-2.0.0.tar.gz
- Upload date:
- Size: 87.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8bbba52205eafd8f546a4b5ce05c647143b1aee9005f8e746604508ef83adba5
|
|
| MD5 |
ffb53523befd70e3b64d497edc22133f
|
|
| BLAKE2b-256 |
22c05aa5dbf54096ff8c7b5a9c80047c916f66d85ff7b99a022caa27d9b51332
|
File details
Details for the file dtnma_ace-2.0.0-py3-none-any.whl.
File metadata
- Download URL: dtnma_ace-2.0.0-py3-none-any.whl
- Upload date:
- Size: 83.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
da450c1e85d7eb5801059ade43e5e520ad4022ed132682f8c71cefff5d4e1f3f
|
|
| MD5 |
afe54b3d36bd2ddf7e44e35990124c15
|
|
| BLAKE2b-256 |
0b1b01aaf34836de774e75c34ed8f361fda1884c68eafa3035a292c7616ed5f8
|