feat: update/add csv conversion scripts - #14
Closed
axodentally wants to merge 10 commits into
Closed
Conversation
Collaborator
Author
|
This change is part of the following stack: Change managed by git-spice. |
There was a problem hiding this comment.
Pull request overview
This PR modernizes the CSV conversion tooling by replacing the legacy contacts CSV → CCP script and introducing a new CSV → docker-compose generator, enabling generation of both scenario contact plan files (.ccp) and container topologies (docker-compose.yml) from CCSDS reference scenario CSV inputs.
Changes:
- Added
csv_to_ccp.pyto generate formatted.ccpoutput (including optional prefix stripping and time speedup). - Added
csv_to_compose.pyto generatedocker-compose.yml(plus optional GraphML export) from the same CSV inputs. - Removed the older
contacts-csv2ccp.pyscript.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
| tools/helpers/csv_to_compose.py | New CSV → docker-compose generator (with optional GraphML export) |
| tools/helpers/csv_to_ccp.py | New CSV → CCP generator with formatted output and symmetric-link merging |
| tools/helpers/contacts-csv2ccp.py | Removed legacy CSV → CCP script |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
axodentally
commented
Jun 24, 2026
| mapping: dict[str, Any] = {} | ||
| if args.mapping is not None: | ||
| with open(args.mapping) as f: | ||
| mapping = json.load(f) |
Collaborator
Author
There was a problem hiding this comment.
TODO:
- Test if the mapping actually works like it should
- update CLI argument documentation about what this 'mapping' is => link to nodes.json file from CCSDS reference
as previously parsing was fragile, relying on specific syntax for the 'labels' in the CSV file. Now the network topology is actually analyzed and it's then decided, if a pair of nodes has multiple networks between them and therefor need to specify the individual interface to use in the ccp file.
currently only high -> hi and low -> lo, but can easily be extended. Allows for converting the lunar communications scenario without using hashes for the docker networks.
axodentally
force-pushed
the
feat/update-csv-conversion-scripts
branch
from
July 15, 2026 12:32
6e6f30f to
d49192c
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Update the old csv to cpp script and add another for csv to compose files.
This allows generating the scenario contact files (.ccp) and compose files (.yml) from CCSDS reference scenario CSV files.
The --ignore-delay option got dropped, when a need for it arises it can easliy be reimplemented.