fprime-gds 3.6.0__tar.gz → 3.6.2a1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/PKG-INFO +1 -1
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/loaders/json_loader.py +15 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/pipeline/dictionaries.py +32 -39
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/app.py +3 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/resource.py +5 -2
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/chart-display/addon.js +8 -3
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/js/datastore.js +1 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/js/json.js +10 -3
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds.egg-info/PKG-INFO +1 -1
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds.egg-info/SOURCES.txt +0 -4
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/common/loaders/resources/RefTopologyDictionary.json +6354 -5040
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/common/loaders/test_json_loader.py +17 -0
- fprime_gds-3.6.0/src/fprime_gds/common/loaders/ch_py_loader.py +0 -79
- fprime_gds-3.6.0/src/fprime_gds/common/loaders/cmd_py_loader.py +0 -66
- fprime_gds-3.6.0/src/fprime_gds/common/loaders/event_py_loader.py +0 -75
- fprime_gds-3.6.0/src/fprime_gds/common/loaders/python_loader.py +0 -132
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/.github/actions/codeql/security-pack.yml +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/.github/actions/spelling/excludes.txt +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/.github/actions/spelling/expect.txt +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/.github/actions/spelling/patterns.txt +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/.github/pull_request_template.md +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/.github/resources/RefTopologyAppDictionary.xml +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/.github/workflows/codeql-security-scan.yml +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/.github/workflows/fprime-gds-tests.yml +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/.github/workflows/gds-cli-tests.yml +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/.github/workflows/publish.yml +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/.github/workflows/spelling.yml +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/.gitignore +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/Doxyfile +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/LICENSE.txt +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/NOTICE.txt +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/README.md +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/configs/__init__.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/docs/README.md +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/docs/_static/css/rtd_width.css +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/docs/conf.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/docs/gendoc.bash +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/docs/index.rst +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/examples/simple_sequence.bin +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/examples/simple_sequence.seq +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/pyproject.toml +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/setup.cfg +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/setup.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fastentrypoints.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/__init__.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/__init__.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/communication/__init__.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/communication/adapters/__init__.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/communication/adapters/base.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/communication/adapters/ip.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/communication/adapters/uart.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/communication/checksum.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/communication/framing.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/communication/ground.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/communication/updown.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/controllers/__init__.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/data_types/__init__.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/data_types/ch_data.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/data_types/cmd_data.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/data_types/event_data.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/data_types/exceptions.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/data_types/file_data.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/data_types/pkt_data.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/data_types/sys_data.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/decoders/__init__.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/decoders/ch_decoder.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/decoders/decoder.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/decoders/event_decoder.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/decoders/file_decoder.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/decoders/pkt_decoder.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/distributor/__init__.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/distributor/distributor.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/encoders/__init__.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/encoders/ch_encoder.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/encoders/cmd_encoder.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/encoders/encoder.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/encoders/event_encoder.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/encoders/file_encoder.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/encoders/pkt_encoder.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/encoders/seq_writer.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/files/File Decoder Documentation.txt +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/files/__init__.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/files/downlinker.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/files/helpers.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/files/uplinker.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/gds_cli/__init__.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/gds_cli/base_commands.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/gds_cli/channels.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/gds_cli/command_send.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/gds_cli/events.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/gds_cli/filtering_utils.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/gds_cli/test_api_utils.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/handlers.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/history/__init__.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/history/chrono.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/history/history.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/history/ram.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/history/test.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/loaders/__init__.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/loaders/ch_json_loader.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/loaders/ch_xml_loader.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/loaders/cmd_json_loader.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/loaders/cmd_xml_loader.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/loaders/dict_loader.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/loaders/event_json_loader.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/loaders/event_xml_loader.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/loaders/pkt_xml_loader.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/loaders/xml_loader.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/logger/__init__.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/logger/data_logger.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/logger/test_logger.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/models/__init__.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/models/common/__init__.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/models/common/channel_telemetry.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/models/common/command.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/models/common/event.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/parsers/__init__.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/parsers/seq_file_parser.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/pipeline/__init__.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/pipeline/encoding.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/pipeline/files.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/pipeline/histories.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/pipeline/router.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/pipeline/standard.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/templates/__init__.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/templates/ch_template.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/templates/cmd_template.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/templates/data_template.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/templates/event_template.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/templates/pkt_template.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/testing_fw/__init__.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/testing_fw/api.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/testing_fw/predicates.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/testing_fw/pytest_integration.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/tools/__init__.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/tools/seqgen.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/transport.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/utils/__init__.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/utils/config_manager.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/utils/data_desc_type.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/utils/event_severity.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/utils/string_util.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/common/zmq_transport.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/executables/__init__.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/executables/apps.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/executables/cli.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/executables/comm.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/executables/data_product_writer.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/executables/fprime_cli.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/executables/run_deployment.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/executables/tcpserver.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/executables/utils.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/__init__.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/channels.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/commands.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/components.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/default_settings.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/errors.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/events.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/json.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/logs.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/requirements.txt +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/sequence.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/.idea/.gitignore +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/.idea/misc.xml +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/.idea/modules.xml +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/.idea/static.iml +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/.idea/vcs.xml +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/advanced-settings/addon-templates.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/advanced-settings/addon.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/channel-render/addon.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/channel-render/channel-render-template.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/channel-render/channel-render.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/chart-display/addon-templates.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/chart-display/config.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/chart-display/modified-vendor/chartjs-plugin-streaming.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/chart-display/modified-vendor/chartjs-plugin-zoom.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/chart-display/modified-vendor/flat.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/chart-display/sibling.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/chart-display/vendor/chart.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/chart-display/vendor/chartjs-adapter-luxon.min.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/chart-display/vendor/hammer.min.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/commanding/addon.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/commanding/argument-templates.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/commanding/arguments.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/commanding/command-history-template.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/commanding/command-history.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/commanding/command-input-template.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/commanding/command-input.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/commanding/command-string-template.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/commanding/command-string.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/dictionary/addon-templates.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/dictionary/addon.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/enabled.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/image-display/addon.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/image-display/dashboard.xml +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/sequencer/README.md +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/sequencer/addon-templates.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/sequencer/addon.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/sequencer/autocomplete.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/sequencer/lint.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/sequencer/third/code-mirror.es.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/.gitignore +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/index.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/language.grammer +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/package.json +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/rollup.config.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/css/fprime.css +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/css/fpstyle.css +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/favicon.ico +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/img/error.svg +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/img/logo.svg +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/img/success.svg +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/index.html +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/js/config.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/js/gds.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/js/loader.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/js/performance.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/js/settings.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/js/uploader.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/js/validate.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/js/vue-support/channel.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/js/vue-support/dashboard-box.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/js/vue-support/dashboard-row.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/js/vue-support/dashboard.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/js/vue-support/downlink.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/js/vue-support/event.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/js/vue-support/fp-row.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/js/vue-support/fptable.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/js/vue-support/log.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/js/vue-support/tabetc.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/js/vue-support/uplink.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/js/vue-support/utils.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/third-party/css/all.min.css +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/third-party/css/bootstrap.min.css +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/third-party/css/vue-select.css +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/third-party/js/luxon.min.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/third-party/js/sorttable.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/third-party/js/v-runtime-template.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/third-party/js/vue-select.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/third-party/js/vue.min.js +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.eot +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.svg +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.ttf +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.woff +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.woff2 +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.eot +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.svg +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.ttf +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.woff +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.woff2 +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.eot +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.svg +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.ttf +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.woff +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.woff2 +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/stats.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/updown.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/plugin/__init__.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/plugin/definitions.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/plugin/system.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/version.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds.egg-info/dependency_links.txt +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds.egg-info/entry_points.txt +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds.egg-info/requires.txt +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds.egg-info/top_level.txt +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/common/data_types/test_cmd_data.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/common/distributor/test_distributor.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/common/encoders/test_ch_encoder.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/common/encoders/test_event_encoder.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/common/encoders/test_pkt_encoder.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/common/gds_cli/filtering_utils_test.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/common/gds_cli/utils_test.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/common/history/chronohistory_unit_test.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/common/history/testhistory_unit_test.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/common/testing_fw/UnitTestDictionary.xml +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/common/testing_fw/api_unit_test.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/common/testing_fw/logs/.gitignore +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/common/testing_fw/predicate_unit_test.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/common/tools/expected/simple_expected.bin +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/common/tools/input/simple_bad_sequence.seq +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/common/tools/input/simple_sequence.seq +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/common/tools/resources/simple_dictionary.json +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/common/tools/resources/simple_dictionary.xml +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/common/tools/seqgen_unit_test.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/common/utils/test_string_util.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/executables/.gitignore +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/executables/dp_writer_data/dictionary.json +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/executables/dp_writer_data/makeBool.bin +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/executables/dp_writer_data/makeComplex.bin +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/executables/dp_writer_data/makeDataArray.bin +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/executables/dp_writer_data/makeEnum.bin +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/executables/dp_writer_data/makeF32.bin +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/executables/dp_writer_data/makeF64.bin +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/executables/dp_writer_data/makeFppArray.bin +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/executables/dp_writer_data/makeI16.bin +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/executables/dp_writer_data/makeI32.bin +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/executables/dp_writer_data/makeI64.bin +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/executables/dp_writer_data/makeI8.bin +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/executables/dp_writer_data/makeU32.bin +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/executables/dp_writer_data/makeU32Array.bin +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/executables/dp_writer_data/makeU8Array.bin +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/executables/test_data_product_writer.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/executables/test_run_deployment.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/executables/test_utils.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/sample/dictionary.xml +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/fprime_gds/test_plugins.py +0 -0
- {fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/test/gui/GUI_Test_Procedure.md +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: fprime-gds
|
3
|
-
Version: 3.6.
|
3
|
+
Version: 3.6.2a1
|
4
4
|
Summary: F Prime Flight Software Ground Data System layer
|
5
5
|
Author-email: Michael Starch <Michael.D.Starch@jpl.nasa.gov>, Thomas Boyer-Chammard <Thomas.Boyer.Chammard@jpl.nasa.gov>
|
6
6
|
License:
|
@@ -71,6 +71,18 @@ class JsonLoader(dict_loader.DictLoader):
|
|
71
71
|
self.json_dict["metadata"].get("projectVersion", "unknown"),
|
72
72
|
)
|
73
73
|
|
74
|
+
def get_metadata(self):
|
75
|
+
"""Get the metadata field of the JSON dictionary
|
76
|
+
|
77
|
+
Raises:
|
78
|
+
GdsDictionaryParsingException: if the dictionary has no metadata field
|
79
|
+
"""
|
80
|
+
if "metadata" not in self.json_dict:
|
81
|
+
raise GdsDictionaryParsingException(
|
82
|
+
f"Dictionary has no metadata field: {self.json_file}"
|
83
|
+
)
|
84
|
+
return self.json_dict["metadata"]
|
85
|
+
|
74
86
|
def parse_type(self, type_dict: dict) -> BaseType:
|
75
87
|
type_name: str = type_dict.get("name", None)
|
76
88
|
|
@@ -102,6 +114,9 @@ class JsonLoader(dict_loader.DictLoader):
|
|
102
114
|
f"Dictionary type name has no corresponding type definition: {type_name}"
|
103
115
|
)
|
104
116
|
|
117
|
+
if qualified_type.get("kind") == "alias":
|
118
|
+
return self.parse_type(qualified_type.get("underlyingType"))
|
119
|
+
|
105
120
|
if qualified_type.get("kind") == "array":
|
106
121
|
return self.construct_array_type(type_name, qualified_type)
|
107
122
|
|
@@ -7,20 +7,16 @@ class called "Dictionaries".
|
|
7
7
|
@author mstarch
|
8
8
|
"""
|
9
9
|
|
10
|
-
import os
|
11
10
|
from pathlib import Path
|
12
11
|
|
13
|
-
import fprime_gds.common.loaders.ch_py_loader
|
14
|
-
import fprime_gds.common.loaders.ch_xml_loader
|
15
|
-
|
16
|
-
# Py Loaders
|
17
|
-
import fprime_gds.common.loaders.cmd_py_loader
|
18
12
|
|
19
13
|
# XML Loaders
|
14
|
+
import fprime_gds.common.loaders.ch_xml_loader
|
20
15
|
import fprime_gds.common.loaders.cmd_xml_loader
|
21
|
-
import fprime_gds.common.loaders.event_py_loader
|
22
16
|
import fprime_gds.common.loaders.event_xml_loader
|
23
17
|
import fprime_gds.common.loaders.pkt_xml_loader
|
18
|
+
|
19
|
+
# JSON Loaders
|
24
20
|
import fprime_gds.common.loaders.ch_json_loader
|
25
21
|
import fprime_gds.common.loaders.cmd_json_loader
|
26
22
|
import fprime_gds.common.loaders.event_json_loader
|
@@ -50,6 +46,7 @@ class Dictionaries:
|
|
50
46
|
self._channel_name_dict = None
|
51
47
|
self._packet_dict = None
|
52
48
|
self._versions = None
|
49
|
+
self._metadata = None
|
53
50
|
|
54
51
|
def load_dictionaries(self, dictionary, packet_spec):
|
55
52
|
"""
|
@@ -59,57 +56,39 @@ class Dictionaries:
|
|
59
56
|
:param dictionary: dictionary path used for loading dictionaries
|
60
57
|
:param packet_spec: specification for packets, or None, for packetized telemetry
|
61
58
|
"""
|
62
|
-
|
63
|
-
if os.path.isdir(dictionary):
|
64
|
-
# Events
|
65
|
-
event_loader = fprime_gds.common.loaders.event_py_loader.EventPyLoader()
|
66
|
-
self._event_id_dict = event_loader.get_id_dict(
|
67
|
-
os.path.join(dictionary, "events")
|
68
|
-
)
|
69
|
-
self._event_name_dict = event_loader.get_name_dict(
|
70
|
-
os.path.join(dictionary, "events")
|
71
|
-
)
|
72
|
-
# Commands
|
73
|
-
command_loader = fprime_gds.common.loaders.cmd_py_loader.CmdPyLoader()
|
74
|
-
self._command_id_dict = command_loader.get_id_dict(
|
75
|
-
os.path.join(dictionary, "commands")
|
76
|
-
)
|
77
|
-
self._command_name_dict = command_loader.get_name_dict(
|
78
|
-
os.path.join(dictionary, "commands")
|
79
|
-
)
|
80
|
-
# Channels
|
81
|
-
channel_loader = fprime_gds.common.loaders.ch_py_loader.ChPyLoader()
|
82
|
-
self._channel_id_dict = channel_loader.get_id_dict(
|
83
|
-
os.path.join(dictionary, "channels")
|
84
|
-
)
|
85
|
-
self._channel_name_dict = channel_loader.get_name_dict(
|
86
|
-
os.path.join(dictionary, "channels")
|
87
|
-
)
|
88
|
-
elif Path(dictionary).is_file() and ".json" in Path(dictionary).suffixes:
|
59
|
+
if Path(dictionary).is_file() and ".json" in Path(dictionary).suffixes:
|
89
60
|
# Events
|
90
61
|
json_event_loader = (
|
91
62
|
fprime_gds.common.loaders.event_json_loader.EventJsonLoader(dictionary)
|
92
63
|
)
|
93
64
|
self._event_name_dict = json_event_loader.get_name_dict(None)
|
94
65
|
self._event_id_dict = json_event_loader.get_id_dict(None)
|
95
|
-
self._versions = json_event_loader.get_versions()
|
96
66
|
# Commands
|
97
67
|
json_command_loader = (
|
98
68
|
fprime_gds.common.loaders.cmd_json_loader.CmdJsonLoader(dictionary)
|
99
69
|
)
|
100
70
|
self._command_name_dict = json_command_loader.get_name_dict(None)
|
101
71
|
self._command_id_dict = json_command_loader.get_id_dict(None)
|
102
|
-
assert (
|
103
|
-
self._versions == json_command_loader.get_versions()
|
104
|
-
), "Version mismatch while loading"
|
105
72
|
# Channels
|
106
73
|
json_channel_loader = fprime_gds.common.loaders.ch_json_loader.ChJsonLoader(
|
107
74
|
dictionary
|
108
75
|
)
|
109
76
|
self._channel_name_dict = json_channel_loader.get_name_dict(None)
|
110
77
|
self._channel_id_dict = json_channel_loader.get_id_dict(None)
|
78
|
+
# Metadata
|
79
|
+
self._versions = json_event_loader.get_versions()
|
80
|
+
self._metadata = json_event_loader.get_metadata().copy()
|
81
|
+
self._metadata["dictionary_type"] = "json"
|
82
|
+
# Each loaders should agree on metadata and versions
|
83
|
+
assert (
|
84
|
+
json_command_loader.get_metadata()
|
85
|
+
== json_channel_loader.get_metadata()
|
86
|
+
== json_event_loader.get_metadata()
|
87
|
+
), "Metadata mismatch while loading"
|
111
88
|
assert (
|
112
|
-
|
89
|
+
json_command_loader.get_versions()
|
90
|
+
== json_channel_loader.get_versions()
|
91
|
+
== json_event_loader.get_versions()
|
113
92
|
), "Version mismatch while loading"
|
114
93
|
# XML dictionaries
|
115
94
|
elif Path(dictionary).is_file():
|
@@ -132,6 +111,12 @@ class Dictionaries:
|
|
132
111
|
assert (
|
133
112
|
self._versions == channel_loader.get_versions()
|
134
113
|
), "Version mismatch while loading"
|
114
|
+
# versions are camelCase to match the metadata field of the JSON dictionaries
|
115
|
+
self._metadata = {
|
116
|
+
"frameworkVersion": self._versions[0],
|
117
|
+
"projectVersion": self._versions[1],
|
118
|
+
"dictionary_type": "xml",
|
119
|
+
}
|
135
120
|
else:
|
136
121
|
msg = f"[ERROR] Dictionary '{dictionary}' does not exist."
|
137
122
|
raise Exception(msg)
|
@@ -184,6 +169,14 @@ class Dictionaries:
|
|
184
169
|
"""Framework version in dictionary"""
|
185
170
|
return self._versions[0]
|
186
171
|
|
172
|
+
@property
|
173
|
+
def metadata(self):
|
174
|
+
"""Dictionary metadata.
|
175
|
+
|
176
|
+
Note: framework_version and project_version are also available as separate properties
|
177
|
+
for legacy reasons. New code should use the metadata property."""
|
178
|
+
return self._metadata
|
179
|
+
|
187
180
|
@property
|
188
181
|
def packet(self):
|
189
182
|
"""Packet dictionary"""
|
@@ -84,6 +84,7 @@ def construct_app():
|
|
84
84
|
pipeline.dictionaries.command_name,
|
85
85
|
pipeline.dictionaries.project_version,
|
86
86
|
pipeline.dictionaries.framework_version,
|
87
|
+
pipeline.dictionaries.metadata,
|
87
88
|
],
|
88
89
|
)
|
89
90
|
api.add_resource(
|
@@ -103,6 +104,7 @@ def construct_app():
|
|
103
104
|
pipeline.dictionaries.event_id,
|
104
105
|
pipeline.dictionaries.project_version,
|
105
106
|
pipeline.dictionaries.framework_version,
|
107
|
+
pipeline.dictionaries.metadata,
|
106
108
|
],
|
107
109
|
)
|
108
110
|
api.add_resource(
|
@@ -117,6 +119,7 @@ def construct_app():
|
|
117
119
|
pipeline.dictionaries.channel_id,
|
118
120
|
pipeline.dictionaries.project_version,
|
119
121
|
pipeline.dictionaries.framework_version,
|
122
|
+
pipeline.dictionaries.metadata,
|
120
123
|
],
|
121
124
|
)
|
122
125
|
api.add_resource(
|
@@ -17,17 +17,19 @@ class DictionaryResource(Resource):
|
|
17
17
|
should be flask compatible. Errors with the dictionary are a 500 server error and may not be recovered.
|
18
18
|
"""
|
19
19
|
|
20
|
-
def __init__(self, dictionary, project_version, framework_version):
|
20
|
+
def __init__(self, dictionary, project_version, framework_version, metadata):
|
21
21
|
"""Constructor used to setup for dictionary
|
22
22
|
|
23
23
|
Args:
|
24
24
|
dictionary: dictionary to serve when GET is called
|
25
25
|
project_version: project version for the dictionary
|
26
26
|
framework_version: project version for the dictionary
|
27
|
+
metadata (dict): additional metadata to serve with the dictionary
|
27
28
|
"""
|
28
29
|
self.dictionary = dictionary
|
29
30
|
self.project_version = project_version
|
30
31
|
self.framework_version = framework_version
|
32
|
+
self.metadata = metadata
|
31
33
|
|
32
34
|
def get(self):
|
33
35
|
"""HTTP GET method handler for dictionary resource
|
@@ -38,7 +40,8 @@ class DictionaryResource(Resource):
|
|
38
40
|
return {
|
39
41
|
"dictionary": self.dictionary,
|
40
42
|
"project_version": self.project_version,
|
41
|
-
"framework_version": self.framework_version
|
43
|
+
"framework_version": self.framework_version,
|
44
|
+
"metadata": self.metadata
|
42
45
|
}
|
43
46
|
|
44
47
|
|
{fprime_gds-3.6.0 → fprime_gds-3.6.2a1}/src/fprime_gds/flask/static/addons/chart-display/addon.js
RENAMED
@@ -197,12 +197,17 @@ Vue.component("chart-display", {
|
|
197
197
|
if (this.selected == null || this.chart == null) {
|
198
198
|
return;
|
199
199
|
}
|
200
|
-
// Get channel name assuming the string is in
|
200
|
+
// Get channel name assuming the string is in either of these format:
|
201
|
+
// - component.channel format for XML dictionaries
|
202
|
+
// - deployment.component.channel for JSON dictionaries
|
203
|
+
// Can't just slice by last '.' because channel name can include complex types
|
204
|
+
// which are in the form of 'component.channel.fieldName'
|
205
|
+
let SLICE_INDEX = _dictionaries.metadata.dictionary_type == "xml" ? 2 : 3;
|
201
206
|
let channel_full_name = this.selected
|
202
207
|
.split(".")
|
203
|
-
.slice(0,
|
208
|
+
.slice(0, SLICE_INDEX)
|
204
209
|
.join(".");
|
205
|
-
let serial_path = this.selected.split(".").slice(
|
210
|
+
let serial_path = this.selected.split(".").slice(SLICE_INDEX).join(".");
|
206
211
|
|
207
212
|
// Filter channels down to the graphed channel
|
208
213
|
let new_channels = channels.filter((channel) => {
|
@@ -253,6 +253,7 @@ class DataStore {
|
|
253
253
|
commands_by_id: Object.fromEntries(Object.values(_loader.endpoints["command-dict"].data.dictionary).map((value) => [value.id, value])),
|
254
254
|
framework_version: _loader.endpoints["command-dict"].data.framework_version,
|
255
255
|
project_version: _loader.endpoints["command-dict"].data.project_version,
|
256
|
+
metadata: _loader.endpoints["command-dict"].data.metadata,
|
256
257
|
});
|
257
258
|
// Setup channels object in preparation for updates. Channel object need to be well formed, even if blank,
|
258
259
|
// because rendering of edit-views is still possible.
|
@@ -30,7 +30,7 @@ class RegExLexer {
|
|
30
30
|
// NaN token
|
31
31
|
["NAN", /^NaN/],
|
32
32
|
// boolean token
|
33
|
-
["BOOLEAN", /^(true)
|
33
|
+
["BOOLEAN", /^(true)|^(false)/],
|
34
34
|
// Open object token
|
35
35
|
["OPEN_OBJECT", /^\{/],
|
36
36
|
// Close object token
|
@@ -55,6 +55,8 @@ class RegExLexer {
|
|
55
55
|
static tokenize(original_string) {
|
56
56
|
let tokens = [];
|
57
57
|
let input_string = original_string;
|
58
|
+
let total_length = 0;
|
59
|
+
let last_token_type = "--NONE--"
|
58
60
|
// Consume the whole string
|
59
61
|
while (input_string !== "") {
|
60
62
|
let matched_something = false;
|
@@ -62,18 +64,23 @@ class RegExLexer {
|
|
62
64
|
let match = token_matcher.exec(input_string)
|
63
65
|
|
64
66
|
// Token detected
|
65
|
-
if (match != null) {
|
67
|
+
if (match != null && match.index == 0 ) {
|
66
68
|
matched_something = true;
|
67
69
|
let matched = match[0];
|
68
70
|
tokens.push([token_type, matched]);
|
69
71
|
// Consume the string
|
70
72
|
input_string = input_string.substring(matched.length);
|
73
|
+
total_length += matched.length;
|
74
|
+
last_token_type = token_type;
|
71
75
|
break;
|
72
76
|
}
|
73
77
|
}
|
74
78
|
// Check for no token match
|
75
79
|
if (!matched_something) {
|
76
|
-
|
80
|
+
let say = "Failed to match valid token: '" + input_string.substring(0, 20);
|
81
|
+
say += "' Context: '" + original_string.substring(Math.max(total_length - 20, 0), total_length + 20);
|
82
|
+
say += "' Last token's type: " + last_token_type + ".";
|
83
|
+
throw SyntaxError(say);
|
77
84
|
}
|
78
85
|
}
|
79
86
|
return tokens;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: fprime-gds
|
3
|
-
Version: 3.6.
|
3
|
+
Version: 3.6.2a1
|
4
4
|
Summary: F Prime Flight Software Ground Data System layer
|
5
5
|
Author-email: Michael Starch <Michael.D.Starch@jpl.nasa.gov>, Thomas Boyer-Chammard <Thomas.Boyer.Chammard@jpl.nasa.gov>
|
6
6
|
License:
|
@@ -91,18 +91,14 @@ src/fprime_gds/common/history/ram.py
|
|
91
91
|
src/fprime_gds/common/history/test.py
|
92
92
|
src/fprime_gds/common/loaders/__init__.py
|
93
93
|
src/fprime_gds/common/loaders/ch_json_loader.py
|
94
|
-
src/fprime_gds/common/loaders/ch_py_loader.py
|
95
94
|
src/fprime_gds/common/loaders/ch_xml_loader.py
|
96
95
|
src/fprime_gds/common/loaders/cmd_json_loader.py
|
97
|
-
src/fprime_gds/common/loaders/cmd_py_loader.py
|
98
96
|
src/fprime_gds/common/loaders/cmd_xml_loader.py
|
99
97
|
src/fprime_gds/common/loaders/dict_loader.py
|
100
98
|
src/fprime_gds/common/loaders/event_json_loader.py
|
101
|
-
src/fprime_gds/common/loaders/event_py_loader.py
|
102
99
|
src/fprime_gds/common/loaders/event_xml_loader.py
|
103
100
|
src/fprime_gds/common/loaders/json_loader.py
|
104
101
|
src/fprime_gds/common/loaders/pkt_xml_loader.py
|
105
|
-
src/fprime_gds/common/loaders/python_loader.py
|
106
102
|
src/fprime_gds/common/loaders/xml_loader.py
|
107
103
|
src/fprime_gds/common/logger/__init__.py
|
108
104
|
src/fprime_gds/common/logger/data_logger.py
|