fprime-gds 3.5.2a1__tar.gz → 3.6.0__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/.github/actions/spelling/expect.txt +380 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/.github/workflows/spelling.yml +18 -9
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/PKG-INFO +2 -2
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/data_types/cmd_data.py +4 -5
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/json_loader.py +12 -3
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/transport.py +1 -1
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/commands.py +1 -1
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/commanding/arguments.js +50 -20
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/commanding/command-history.js +3 -22
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/commanding/command-input.js +6 -1
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/commanding/command-string-template.js +2 -1
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/commanding/command-string.js +5 -1
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/sequencer/addon.js +2 -0
- fprime_gds-3.6.0/src/fprime_gds/flask/static/js/json.js +333 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/loader.js +3 -114
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds.egg-info/PKG-INFO +2 -2
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds.egg-info/SOURCES.txt +2 -0
- fprime_gds-3.6.0/test/fprime_gds/common/data_types/test_cmd_data.py +66 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/loaders/resources/RefTopologyDictionary.json +32 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/loaders/test_json_loader.py +10 -0
- fprime_gds-3.5.2a1/.github/actions/spelling/expect.txt +0 -788
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/.github/actions/codeql/security-pack.yml +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/.github/actions/spelling/excludes.txt +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/.github/actions/spelling/patterns.txt +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/.github/pull_request_template.md +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/.github/resources/RefTopologyAppDictionary.xml +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/.github/workflows/codeql-security-scan.yml +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/.github/workflows/fprime-gds-tests.yml +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/.github/workflows/gds-cli-tests.yml +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/.github/workflows/publish.yml +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/.gitignore +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/Doxyfile +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/LICENSE.txt +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/NOTICE.txt +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/README.md +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/configs/__init__.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/docs/README.md +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/docs/_static/css/rtd_width.css +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/docs/conf.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/docs/gendoc.bash +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/docs/index.rst +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/examples/simple_sequence.bin +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/examples/simple_sequence.seq +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/pyproject.toml +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/setup.cfg +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/setup.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fastentrypoints.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/__init__.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/__init__.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/communication/__init__.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/communication/adapters/__init__.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/communication/adapters/base.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/communication/adapters/ip.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/communication/adapters/uart.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/communication/checksum.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/communication/framing.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/communication/ground.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/communication/updown.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/controllers/__init__.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/data_types/__init__.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/data_types/ch_data.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/data_types/event_data.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/data_types/exceptions.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/data_types/file_data.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/data_types/pkt_data.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/data_types/sys_data.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/decoders/__init__.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/decoders/ch_decoder.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/decoders/decoder.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/decoders/event_decoder.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/decoders/file_decoder.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/decoders/pkt_decoder.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/distributor/__init__.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/distributor/distributor.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/encoders/__init__.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/encoders/ch_encoder.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/encoders/cmd_encoder.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/encoders/encoder.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/encoders/event_encoder.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/encoders/file_encoder.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/encoders/pkt_encoder.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/encoders/seq_writer.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/files/File Decoder Documentation.txt +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/files/__init__.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/files/downlinker.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/files/helpers.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/files/uplinker.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/gds_cli/__init__.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/gds_cli/base_commands.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/gds_cli/channels.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/gds_cli/command_send.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/gds_cli/events.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/gds_cli/filtering_utils.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/gds_cli/test_api_utils.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/handlers.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/history/__init__.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/history/chrono.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/history/history.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/history/ram.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/history/test.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/__init__.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/ch_json_loader.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/ch_py_loader.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/ch_xml_loader.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/cmd_json_loader.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/cmd_py_loader.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/cmd_xml_loader.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/dict_loader.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/event_json_loader.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/event_py_loader.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/event_xml_loader.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/pkt_xml_loader.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/python_loader.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/loaders/xml_loader.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/logger/__init__.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/logger/data_logger.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/logger/test_logger.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/models/__init__.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/models/common/__init__.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/models/common/channel_telemetry.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/models/common/command.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/models/common/event.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/parsers/__init__.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/parsers/seq_file_parser.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/pipeline/__init__.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/pipeline/dictionaries.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/pipeline/encoding.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/pipeline/files.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/pipeline/histories.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/pipeline/router.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/pipeline/standard.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/templates/__init__.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/templates/ch_template.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/templates/cmd_template.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/templates/data_template.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/templates/event_template.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/templates/pkt_template.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/testing_fw/__init__.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/testing_fw/api.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/testing_fw/predicates.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/testing_fw/pytest_integration.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/tools/__init__.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/tools/seqgen.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/utils/__init__.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/utils/config_manager.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/utils/data_desc_type.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/utils/event_severity.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/utils/string_util.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/common/zmq_transport.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/executables/__init__.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/executables/apps.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/executables/cli.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/executables/comm.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/executables/data_product_writer.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/executables/fprime_cli.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/executables/run_deployment.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/executables/tcpserver.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/executables/utils.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/__init__.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/app.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/channels.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/components.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/default_settings.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/errors.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/events.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/json.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/logs.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/requirements.txt +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/resource.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/sequence.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/.idea/.gitignore +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/.idea/misc.xml +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/.idea/modules.xml +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/.idea/static.iml +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/.idea/vcs.xml +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/advanced-settings/addon-templates.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/advanced-settings/addon.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/channel-render/addon.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/channel-render/channel-render-template.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/channel-render/channel-render.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/chart-display/addon-templates.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/chart-display/addon.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/chart-display/config.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/chart-display/modified-vendor/chartjs-plugin-streaming.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/chart-display/modified-vendor/chartjs-plugin-zoom.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/chart-display/modified-vendor/flat.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/chart-display/sibling.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/chart-display/vendor/chart.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/chart-display/vendor/chartjs-adapter-luxon.min.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/chart-display/vendor/hammer.min.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/commanding/addon.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/commanding/argument-templates.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/commanding/command-history-template.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/commanding/command-input-template.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/dictionary/addon-templates.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/dictionary/addon.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/enabled.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/image-display/addon.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/image-display/dashboard.xml +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/sequencer/README.md +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/sequencer/addon-templates.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/sequencer/autocomplete.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/sequencer/lint.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/sequencer/third/code-mirror.es.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/.gitignore +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/index.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/language.grammer +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/package.json +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/sequencer/third/rollup/rollup.config.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/css/fprime.css +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/css/fpstyle.css +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/favicon.ico +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/img/error.svg +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/img/logo.svg +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/img/success.svg +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/index.html +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/config.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/datastore.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/gds.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/performance.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/settings.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/uploader.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/validate.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/vue-support/channel.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/vue-support/dashboard-box.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/vue-support/dashboard-row.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/vue-support/dashboard.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/vue-support/downlink.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/vue-support/event.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/vue-support/fp-row.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/vue-support/fptable.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/vue-support/log.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/vue-support/tabetc.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/vue-support/uplink.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/js/vue-support/utils.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/css/all.min.css +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/css/bootstrap.min.css +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/css/vue-select.css +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/js/luxon.min.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/js/sorttable.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/js/v-runtime-template.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/js/vue-select.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/js/vue.min.js +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.eot +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.svg +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.ttf +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.woff +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-brands-400.woff2 +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.eot +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.svg +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.ttf +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.woff +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-regular-400.woff2 +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.eot +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.svg +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.ttf +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.woff +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/third-party/webfonts/fa-solid-900.woff2 +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/stats.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/updown.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/plugin/__init__.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/plugin/definitions.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/plugin/system.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/version.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds.egg-info/dependency_links.txt +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds.egg-info/entry_points.txt +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds.egg-info/requires.txt +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds.egg-info/top_level.txt +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/distributor/test_distributor.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/encoders/test_ch_encoder.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/encoders/test_event_encoder.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/encoders/test_pkt_encoder.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/gds_cli/filtering_utils_test.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/gds_cli/utils_test.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/history/chronohistory_unit_test.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/history/testhistory_unit_test.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/testing_fw/UnitTestDictionary.xml +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/testing_fw/api_unit_test.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/testing_fw/logs/.gitignore +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/testing_fw/predicate_unit_test.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/tools/expected/simple_expected.bin +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/tools/input/simple_bad_sequence.seq +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/tools/input/simple_sequence.seq +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/tools/resources/simple_dictionary.json +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/tools/resources/simple_dictionary.xml +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/tools/seqgen_unit_test.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/common/utils/test_string_util.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/.gitignore +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/dictionary.json +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/makeBool.bin +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/makeComplex.bin +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/makeDataArray.bin +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/makeEnum.bin +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/makeF32.bin +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/makeF64.bin +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/makeFppArray.bin +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/makeI16.bin +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/makeI32.bin +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/makeI64.bin +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/makeI8.bin +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/makeU32.bin +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/makeU32Array.bin +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/dp_writer_data/makeU8Array.bin +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/test_data_product_writer.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/test_run_deployment.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/executables/test_utils.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/sample/dictionary.xml +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/fprime_gds/test_plugins.py +0 -0
- {fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/test/gui/GUI_Test_Procedure.md +0 -0
@@ -0,0 +1,380 @@
|
|
1
|
+
abeautifulsite
|
2
|
+
AClass
|
3
|
+
addoption
|
4
|
+
ADEBAD
|
5
|
+
adrianheine
|
6
|
+
allbox
|
7
|
+
ALLEXTERNALS
|
8
|
+
ALOG
|
9
|
+
amsmath
|
10
|
+
ANamespace
|
11
|
+
Anps
|
12
|
+
argcomplete
|
13
|
+
argdesc
|
14
|
+
ARGN
|
15
|
+
argname
|
16
|
+
argtype
|
17
|
+
autoapi
|
18
|
+
AUTOBRIEF
|
19
|
+
autocoded
|
20
|
+
autogen
|
21
|
+
autoraise
|
22
|
+
autosectionlabel
|
23
|
+
backface
|
24
|
+
batchmode
|
25
|
+
baudrate
|
26
|
+
bcolors
|
27
|
+
BGR
|
28
|
+
Biberstein
|
29
|
+
bibtex
|
30
|
+
bitmaps
|
31
|
+
breadcrumb
|
32
|
+
Btns
|
33
|
+
BUGLIST
|
34
|
+
calibri
|
35
|
+
callergraph
|
36
|
+
callgraph
|
37
|
+
cata
|
38
|
+
CCB
|
39
|
+
CCFF
|
40
|
+
Cdioux
|
41
|
+
cdn
|
42
|
+
cdxoefg
|
43
|
+
CFDG
|
44
|
+
CFDP
|
45
|
+
CFPD
|
46
|
+
chartjs
|
47
|
+
CHNG
|
48
|
+
classdocs
|
49
|
+
clearfix
|
50
|
+
cls
|
51
|
+
cmdhist
|
52
|
+
CODEFILE
|
53
|
+
COLORSTYLE
|
54
|
+
colorwheel
|
55
|
+
columnify
|
56
|
+
combuffer
|
57
|
+
commandsi
|
58
|
+
configs
|
59
|
+
Consolas
|
60
|
+
creatingdocsetswithdoxygen
|
61
|
+
csum
|
62
|
+
curateable
|
63
|
+
curated
|
64
|
+
curating
|
65
|
+
customise
|
66
|
+
daringfireball
|
67
|
+
dataobjects
|
68
|
+
dblclick
|
69
|
+
Dct
|
70
|
+
ddl
|
71
|
+
Ded
|
72
|
+
deframe
|
73
|
+
deframed
|
74
|
+
deframer
|
75
|
+
deframing
|
76
|
+
DEPRECATEDLIST
|
77
|
+
DESER
|
78
|
+
Deserial
|
79
|
+
deserializes
|
80
|
+
dests
|
81
|
+
dexc
|
82
|
+
DGRAM
|
83
|
+
diafile
|
84
|
+
dimitri
|
85
|
+
dinkel
|
86
|
+
docbook
|
87
|
+
docset
|
88
|
+
dontinclude
|
89
|
+
DOTFONTPATH
|
90
|
+
downfiles
|
91
|
+
downlinker
|
92
|
+
dox
|
93
|
+
doxyfile
|
94
|
+
doxygenversion
|
95
|
+
doxyindexer
|
96
|
+
doxypypy
|
97
|
+
doxyrules
|
98
|
+
doxysearch
|
99
|
+
Doxywizard
|
100
|
+
doy
|
101
|
+
dps
|
102
|
+
dropleft
|
103
|
+
dropright
|
104
|
+
dropup
|
105
|
+
Drv
|
106
|
+
Dsh
|
107
|
+
dts
|
108
|
+
DVI
|
109
|
+
ECLIPSEHELP
|
110
|
+
ECONNRESET
|
111
|
+
ect
|
112
|
+
EEXIST
|
113
|
+
Efg
|
114
|
+
ENDC
|
115
|
+
endcond
|
116
|
+
errorhandler
|
117
|
+
errorrs
|
118
|
+
ev
|
119
|
+
Evn
|
120
|
+
evr
|
121
|
+
evt
|
122
|
+
extlinks
|
123
|
+
exts
|
124
|
+
fastentrypoints
|
125
|
+
fbuild
|
126
|
+
fd
|
127
|
+
FEEDNAME
|
128
|
+
FFCC
|
129
|
+
FFFF
|
130
|
+
fileurl
|
131
|
+
Firefox
|
132
|
+
focusring
|
133
|
+
FONTNAME
|
134
|
+
FONTPATH
|
135
|
+
FONTSIZE
|
136
|
+
fpp
|
137
|
+
fprime
|
138
|
+
fptable
|
139
|
+
fsw
|
140
|
+
gdiplus
|
141
|
+
getbootstrap
|
142
|
+
github
|
143
|
+
grayscales
|
144
|
+
gse
|
145
|
+
gtags
|
146
|
+
GUIS
|
147
|
+
gz
|
148
|
+
Haverbeke
|
149
|
+
hh
|
150
|
+
hhc
|
151
|
+
hhk
|
152
|
+
hhp
|
153
|
+
hidecallergraph
|
154
|
+
hidecallgraph
|
155
|
+
hideinitializer
|
156
|
+
hlp
|
157
|
+
HLTH
|
158
|
+
hookspecs
|
159
|
+
hpaulson
|
160
|
+
htags
|
161
|
+
hyperlinks
|
162
|
+
idct
|
163
|
+
idl
|
164
|
+
ieeetr
|
165
|
+
ified
|
166
|
+
ifun
|
167
|
+
IH
|
168
|
+
inprogress
|
169
|
+
intersphinx
|
170
|
+
intlimits
|
171
|
+
ip
|
172
|
+
ipc
|
173
|
+
ipp
|
174
|
+
itcl
|
175
|
+
ixx
|
176
|
+
janamian
|
177
|
+
Jdk
|
178
|
+
jpl
|
179
|
+
JSO
|
180
|
+
jsonable
|
181
|
+
jsonified
|
182
|
+
jsonify
|
183
|
+
keepalive
|
184
|
+
keyify
|
185
|
+
kinda
|
186
|
+
lestarch
|
187
|
+
levelname
|
188
|
+
Lezer
|
189
|
+
libcrc
|
190
|
+
libiconv
|
191
|
+
Linting
|
192
|
+
LIw
|
193
|
+
logdata
|
194
|
+
logdir
|
195
|
+
logpath
|
196
|
+
logselect
|
197
|
+
luxon
|
198
|
+
makeindex
|
199
|
+
MAKEVAR
|
200
|
+
marijnh
|
201
|
+
matchobj
|
202
|
+
mathjax
|
203
|
+
mcternan
|
204
|
+
MDFILE
|
205
|
+
memb
|
206
|
+
millis
|
207
|
+
misordered
|
208
|
+
MML
|
209
|
+
moz
|
210
|
+
msc
|
211
|
+
mscfile
|
212
|
+
mscgen
|
213
|
+
mstarch
|
214
|
+
mx
|
215
|
+
mycompany
|
216
|
+
nassert
|
217
|
+
nbytes
|
218
|
+
Neue
|
219
|
+
Nify
|
220
|
+
ninjaaron
|
221
|
+
nitpicky
|
222
|
+
noapp
|
223
|
+
NOSONAR
|
224
|
+
nosort
|
225
|
+
nosubgrouping
|
226
|
+
Noto
|
227
|
+
NSPACES
|
228
|
+
nuntil
|
229
|
+
odl
|
230
|
+
OKBLUE
|
231
|
+
OKGREEN
|
232
|
+
OMG
|
233
|
+
OPREG
|
234
|
+
oring
|
235
|
+
osexc
|
236
|
+
OSX
|
237
|
+
outputfile
|
238
|
+
packetized
|
239
|
+
Paetz
|
240
|
+
PARAMDOC
|
241
|
+
passthrough
|
242
|
+
pb
|
243
|
+
pdflatex
|
244
|
+
PERLMOD
|
245
|
+
pkts
|
246
|
+
plainnat
|
247
|
+
plantuml
|
248
|
+
PNGs
|
249
|
+
preds
|
250
|
+
prm
|
251
|
+
procs
|
252
|
+
PROGRAMLISTING
|
253
|
+
projectbrief
|
254
|
+
projectlogo
|
255
|
+
projectname
|
256
|
+
projectnumber
|
257
|
+
propget
|
258
|
+
propput
|
259
|
+
px
|
260
|
+
py
|
261
|
+
qch
|
262
|
+
qhelpgenerator
|
263
|
+
QHG
|
264
|
+
qhp
|
265
|
+
qsf
|
266
|
+
qthelpproject
|
267
|
+
rackerlabs
|
268
|
+
rackspace
|
269
|
+
rae
|
270
|
+
rb
|
271
|
+
RCVHWM
|
272
|
+
RCVTIMEO
|
273
|
+
RDWR
|
274
|
+
Readback
|
275
|
+
recommonmark
|
276
|
+
recuring
|
277
|
+
recvd
|
278
|
+
recvs
|
279
|
+
reder
|
280
|
+
removeit
|
281
|
+
reqparse
|
282
|
+
riverbankcomputing
|
283
|
+
Roboto
|
284
|
+
rollup
|
285
|
+
rpaetz
|
286
|
+
rst
|
287
|
+
saba
|
288
|
+
sdd
|
289
|
+
searchdata
|
290
|
+
Segoe
|
291
|
+
seqfile
|
292
|
+
seqgen
|
293
|
+
serializables
|
294
|
+
serialutil
|
295
|
+
showinitializer
|
296
|
+
sideeffect
|
297
|
+
SIGALRM
|
298
|
+
sizeb
|
299
|
+
SMAP
|
300
|
+
Smath
|
301
|
+
SNDHWM
|
302
|
+
sorttable
|
303
|
+
squashify
|
304
|
+
sss
|
305
|
+
Ssymbols
|
306
|
+
stackoverflow
|
307
|
+
startuml
|
308
|
+
subgrouping
|
309
|
+
subhist
|
310
|
+
subhistory
|
311
|
+
superpackage
|
312
|
+
superpkg
|
313
|
+
tabetc
|
314
|
+
tagfile
|
315
|
+
tcanham
|
316
|
+
tcp
|
317
|
+
tcpserver
|
318
|
+
td
|
319
|
+
telem
|
320
|
+
TESTLIST
|
321
|
+
Theif
|
322
|
+
thtcp
|
323
|
+
thudp
|
324
|
+
timebase
|
325
|
+
timescales
|
326
|
+
timespan
|
327
|
+
timestep
|
328
|
+
timestring
|
329
|
+
timetype
|
330
|
+
tinyseqgen
|
331
|
+
TKC
|
332
|
+
tlm
|
333
|
+
toctree
|
334
|
+
TODOLIST
|
335
|
+
tooltiptext
|
336
|
+
treeview
|
337
|
+
tsn
|
338
|
+
tstring
|
339
|
+
ttl
|
340
|
+
tts
|
341
|
+
twbs
|
342
|
+
typedef'ed
|
343
|
+
typedef
|
344
|
+
uart
|
345
|
+
ucf
|
346
|
+
udp
|
347
|
+
UIs
|
348
|
+
uk
|
349
|
+
ul
|
350
|
+
UNINIT
|
351
|
+
updown
|
352
|
+
upfiles
|
353
|
+
uplinker
|
354
|
+
uplinkvue
|
355
|
+
usec
|
356
|
+
useconds
|
357
|
+
usepackage
|
358
|
+
usr
|
359
|
+
vh
|
360
|
+
vhd
|
361
|
+
vhdl
|
362
|
+
viewcode
|
363
|
+
vle
|
364
|
+
vname
|
365
|
+
VRuntime
|
366
|
+
vw
|
367
|
+
Watney
|
368
|
+
webified
|
369
|
+
webpage
|
370
|
+
website
|
371
|
+
wikipedia
|
372
|
+
WSL
|
373
|
+
wx
|
374
|
+
xapian
|
375
|
+
xhttp
|
376
|
+
xl
|
377
|
+
xmit
|
378
|
+
xy
|
379
|
+
zeromq
|
380
|
+
zmq
|
@@ -21,24 +21,33 @@ jobs:
|
|
21
21
|
actions: read
|
22
22
|
outputs:
|
23
23
|
followup: ${{ steps.spelling.outputs.followup }}
|
24
|
-
runs-on: ubuntu-
|
25
|
-
if:
|
26
|
-
concurrency:
|
27
|
-
group: spelling-${{ github.event.pull_request.number || github.ref }}
|
28
|
-
# note: If you use only_check_changed_files, you do not want cancel-in-progress
|
29
|
-
cancel-in-progress: true
|
24
|
+
runs-on: ubuntu-24.04
|
25
|
+
if: ${{ contains(github.event_name, 'pull_request') || github.event_name == 'push' }}
|
30
26
|
steps:
|
31
27
|
- name: check-spelling
|
32
28
|
id: spelling
|
33
|
-
uses: check-spelling/check-spelling@v0.0.
|
29
|
+
uses: check-spelling/check-spelling@v0.0.24
|
34
30
|
with:
|
35
31
|
suppress_push_for_open_pull_request: 1
|
36
32
|
checkout: true
|
37
33
|
post_comment: 0
|
38
|
-
|
34
|
+
check_extra_dictionaries: ''
|
35
|
+
dictionary_source_prefixes: >
|
36
|
+
{
|
37
|
+
"cspell": "https://raw.githubusercontent.com/check-spelling/cspell-dicts/v20241114/dictionaries/"
|
38
|
+
}
|
39
|
+
extra_dictionaries: |
|
39
40
|
cspell:filetypes/filetypes.txt
|
40
41
|
cspell:python/python.txt
|
42
|
+
cspell:python/python/python-lib.txt
|
43
|
+
cspell:python/python/python.txt
|
44
|
+
cspell:python/common/extra.txt
|
41
45
|
cspell:django/django.txt
|
42
46
|
cspell:html/html.txt
|
43
47
|
cspell:fullstack/fullstack.txt
|
44
|
-
|
48
|
+
cspell:software-terms/softwareTerms.txt
|
49
|
+
cspell:cpp/stdlib-c.txt
|
50
|
+
cspell:cpp/stdlib-cpp.txt
|
51
|
+
cspell:mnemonics/mnemonics.txt
|
52
|
+
cspell:cpp/ecosystem.txt
|
53
|
+
|
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.2
|
2
2
|
Name: fprime-gds
|
3
|
-
Version: 3.
|
3
|
+
Version: 3.6.0
|
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:
|
@@ -131,9 +131,8 @@ class CmdData(sys_data.SysData):
|
|
131
131
|
else:
|
132
132
|
# The arguments are currently serializable objects which cannot be
|
133
133
|
# used to fill in a format string. Convert them to values that can be
|
134
|
-
arg_val_list =
|
135
|
-
|
136
|
-
arg_str = " ".join(str(arg_val_list))
|
134
|
+
arg_val_list = self.get_arg_vals()
|
135
|
+
arg_str = str(arg_val_list)
|
137
136
|
|
138
137
|
if verbose and csv:
|
139
138
|
return f"{time_str},{raw_time_str},{name},{self.id},{arg_str}"
|
@@ -149,13 +148,13 @@ class CmdData(sys_data.SysData):
|
|
149
148
|
args = []
|
150
149
|
for val, arg_tuple in zip(input_values, self.template.arguments):
|
151
150
|
try:
|
152
|
-
|
151
|
+
arg_name, _, arg_type = arg_tuple
|
153
152
|
arg_value = arg_type()
|
154
153
|
self.convert_arg_value(val, arg_value)
|
155
154
|
args.append(arg_value)
|
156
155
|
errors.append("")
|
157
156
|
except Exception as exc:
|
158
|
-
errors.append(
|
157
|
+
errors.append(f"{arg_name}[{arg_type.__name__}]: {exc}")
|
159
158
|
return args, errors
|
160
159
|
|
161
160
|
@staticmethod
|
@@ -178,7 +178,10 @@ class JsonLoader(dict_loader.DictLoader):
|
|
178
178
|
SerializableType: The constructed serializable type.
|
179
179
|
|
180
180
|
"""
|
181
|
-
struct_members
|
181
|
+
# Note on struct_members: the order of the members list matter when calling construct_type() below.
|
182
|
+
# It should be ordered by incrementing index which corresponds to the order in the FPP declaration
|
183
|
+
# The JSON dictionary ordering is not guaranteed, so we use a dict() to sort by index below.
|
184
|
+
struct_members = {}
|
182
185
|
for name, member_dict in qualified_type.get("members").items():
|
183
186
|
member_type_dict = member_dict["type"]
|
184
187
|
member_type_obj = self.parse_type(member_type_dict)
|
@@ -197,11 +200,17 @@ class JsonLoader(dict_loader.DictLoader):
|
|
197
200
|
member_type_obj.FORMAT if hasattr(member_type_obj, "FORMAT") else "{}"
|
198
201
|
)
|
199
202
|
description = member_type_dict.get("annotation", "")
|
200
|
-
|
203
|
+
member_index = member_dict["index"]
|
204
|
+
if member_index in struct_members:
|
205
|
+
raise KeyError(
|
206
|
+
f"Invalid dictionary: Duplicate index {member_index} in serializable type {type_name}"
|
207
|
+
)
|
208
|
+
struct_members[member_index] = (name, member_type_obj, fmt_str, description)
|
201
209
|
|
210
|
+
# Construct the serializable type with list of members sorted by index
|
202
211
|
ser_type = SerializableType.construct_type(
|
203
212
|
type_name,
|
204
|
-
struct_members,
|
213
|
+
[struct_members[i] for i in sorted(struct_members.keys())],
|
205
214
|
)
|
206
215
|
self.parsed_types[type_name] = ser_type
|
207
216
|
return ser_type
|
@@ -241,7 +241,7 @@ class ThreadedTCPSocketClient(ThreadedTransportClient):
|
|
241
241
|
assert self.dest is not None, "Cannot send data before connect call"
|
242
242
|
self.sock.send(b"A5A5 %s %s" % (self.dest, data))
|
243
243
|
|
244
|
-
def recv(self, timeout=
|
244
|
+
def recv(self, timeout=0.1):
|
245
245
|
"""Receives data from the threaded tcp server
|
246
246
|
|
247
247
|
Receives raw data from the threaded tcp server. This data is expected to have no headers and will be passed as
|
@@ -49,7 +49,7 @@ class CommandArgumentsInvalidException(werkzeug.exceptions.BadRequest):
|
|
49
49
|
"""Command arguments failed to validate properly"""
|
50
50
|
|
51
51
|
def __init__(self, errors):
|
52
|
-
super().__init__("Failed to validate all arguments")
|
52
|
+
super().__init__(f"Failed to validate all arguments: {', '.join(errors)}")
|
53
53
|
self.args = errors
|
54
54
|
|
55
55
|
|
{fprime_gds-3.5.2a1 → fprime_gds-3.6.0}/src/fprime_gds/flask/static/addons/commanding/arguments.js
RENAMED
@@ -74,7 +74,7 @@ export function command_argument_assignment_helper(argument, squashed_argument_v
|
|
74
74
|
command_argument_array_serializable_assignment_helper(argument, squashed_argument_value);
|
75
75
|
} else {
|
76
76
|
let is_not_string = typeof(argument.type.MAX_LENGTH) === "undefined";
|
77
|
-
argument.value = (is_not_string && (squashed_argument_value === FILL_NEEDED)) ? null : squashed_argument_value;
|
77
|
+
argument.value = (is_not_string && (squashed_argument_value === FILL_NEEDED)) ? null : squashed_argument_value.toString();
|
78
78
|
}
|
79
79
|
}
|
80
80
|
|
@@ -119,7 +119,21 @@ export function squashify_argument(argument) {
|
|
119
119
|
let field = argument.type.MEMBER_LIST[i][0];
|
120
120
|
value[field] = squashify_argument(argument.value[field]);
|
121
121
|
}
|
122
|
-
} else if (["U64Type"
|
122
|
+
} else if (["U64Type"].indexOf(argument.type.name) !== -1) {
|
123
|
+
if (argument.value.startsWith("0x")) {
|
124
|
+
// Hexadecimal
|
125
|
+
value = BigInt(argument.value, 16);
|
126
|
+
} else if (argument.value.startsWith("0b")) {
|
127
|
+
// Binary
|
128
|
+
value = BigInt(argument.value.slice(2), 2);
|
129
|
+
} else if (argument.value.startsWith("0o")) {
|
130
|
+
// Octal
|
131
|
+
value = BigInt(argument.value.slice(2), 8);
|
132
|
+
} else {
|
133
|
+
// Decimal
|
134
|
+
value = BigInt(argument.value, 10);
|
135
|
+
}
|
136
|
+
} else if (["U32Type", "U16Type", "U8Type"].indexOf(argument.type.name) !== -1) {
|
123
137
|
if (argument.value.startsWith("0x")) {
|
124
138
|
// Hexadecimal
|
125
139
|
value = parseInt(argument.value, 16);
|
@@ -134,10 +148,13 @@ export function squashify_argument(argument) {
|
|
134
148
|
value = parseInt(argument.value, 10);
|
135
149
|
}
|
136
150
|
}
|
137
|
-
else if (["I64Type"
|
151
|
+
else if (["I64Type"].indexOf(argument.type.name) !== -1) {
|
152
|
+
value = BigInt(argument.value, 10);
|
153
|
+
}
|
154
|
+
else if (["I32Type", "I16Type", "I8Type"].indexOf(argument.type.name) !== -1) {
|
138
155
|
value = parseInt(argument.value, 10);
|
139
156
|
}
|
140
|
-
else if (["F64Type", "F32Type"].indexOf(argument.type.name)
|
157
|
+
else if (["F64Type", "F32Type"].indexOf(argument.type.name) !== -1) {
|
141
158
|
value = parseFloat(argument.value);
|
142
159
|
}
|
143
160
|
else if (argument.type.name == "BoolType") {
|
@@ -160,22 +177,35 @@ export function squashify_argument(argument) {
|
|
160
177
|
* @returns: string to display
|
161
178
|
*/
|
162
179
|
export function argument_display_string(argument) {
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
let
|
172
|
-
|
180
|
+
let string = FILL_NEEDED;
|
181
|
+
try {
|
182
|
+
// Check for array
|
183
|
+
if (argument.type.LENGTH) {
|
184
|
+
string = `[${argument.value.map((argument) => argument_display_string(argument)).join(", ")}]`;
|
185
|
+
}
|
186
|
+
// Serializable
|
187
|
+
else if (argument.type.MEMBER_LIST) {
|
188
|
+
let fields = [];
|
189
|
+
for (let i = 0; i < argument.type.MEMBER_LIST.length; i++) {
|
190
|
+
let field = argument.type.MEMBER_LIST[i][0];
|
191
|
+
fields.push(`${field}: ${argument_display_string(argument.value[field])}`);
|
192
|
+
}
|
193
|
+
string = `{${fields.join(", ")}}`
|
194
|
+
}
|
195
|
+
// String type
|
196
|
+
else if (argument.type.MAX_LENGTH) {
|
197
|
+
let value = (argument.value == null) ? "" : argument.value;
|
198
|
+
value = value.replace(/"/g, '\\\"');
|
199
|
+
string = `"${value}"`
|
200
|
+
}
|
201
|
+
// Unassigned values
|
202
|
+
else if (argument.value == null || argument.value === "") {
|
203
|
+
string = FILL_NEEDED;
|
204
|
+
} else {
|
205
|
+
string = squashify_argument(argument);
|
173
206
|
}
|
174
|
-
|
175
|
-
|
176
|
-
let value = (argument.value == null) ? "" : argument.value;
|
177
|
-
value = value.replace(/"/g, '\\\"');
|
178
|
-
string = `"${value}"`
|
207
|
+
} catch (e) {
|
208
|
+
string = FILL_NEEDED;
|
179
209
|
}
|
180
210
|
return string;
|
181
211
|
}
|
@@ -291,7 +321,7 @@ Vue.component("command-scalar-argument", {
|
|
291
321
|
return ["text", "0[bB][01]+|0[oO][0-7]+|0[xX][0-9a-fA-F]+|[1-9]\\d*|0", ""];
|
292
322
|
}
|
293
323
|
else if (["I64Type", "I32Type", "I16Type", "I8Type"].indexOf(this.argument.type.name) != -1) {
|
294
|
-
return ["
|
324
|
+
return ["text", "-?[1-9]\\d*|0", ""];
|
295
325
|
}
|
296
326
|
else if (["F64Type", "F32Type"].indexOf(this.argument.type.name) != -1) {
|
297
327
|
return ["number", null, "any"];
|
@@ -10,7 +10,8 @@ import {command_argument_assignment_helper} from "./arguments.js";
|
|
10
10
|
import {listExistsAndItemNameNotInList, timeToString} from "../../js/vue-support/utils.js";
|
11
11
|
import {command_history_template} from "./command-history-template.js";
|
12
12
|
import {command_display_string} from "./command-string.js";
|
13
|
-
|
13
|
+
import { SaferParser } from "../../js/json.js";
|
14
|
+
SaferParser.register();
|
14
15
|
|
15
16
|
/**
|
16
17
|
* command-history:
|
@@ -103,27 +104,7 @@ Vue.component("command-history", {
|
|
103
104
|
// Can only set command if it is a child of a command input
|
104
105
|
if (this.$parent.selectCmd) {
|
105
106
|
// command-input expects an array of strings as arguments
|
106
|
-
this.$parent.selectCmd(cmd.full_name,
|
107
|
-
}
|
108
|
-
},
|
109
|
-
/**
|
110
|
-
* Process the arguments for a command. If the argument is (or contains) a number, it
|
111
|
-
* is converted to a string. Other types that should be pre-processed can be added here.
|
112
|
-
*
|
113
|
-
* @param {*} args
|
114
|
-
* @returns args processed for command input (numbers converted to strings)
|
115
|
-
*/
|
116
|
-
preprocess_args(args) {
|
117
|
-
if (Array.isArray(args)) {
|
118
|
-
return args.map(el => this.preprocess_args(el));
|
119
|
-
} else if (typeof args === 'object' && args !== null) {
|
120
|
-
return Object.fromEntries(
|
121
|
-
Object.entries(args).map(([key, value]) => [key, this.preprocess_args(value)])
|
122
|
-
);
|
123
|
-
} else if (typeof args === 'number') {
|
124
|
-
return args.toString();
|
125
|
-
} else {
|
126
|
-
return args;
|
107
|
+
this.$parent.selectCmd(cmd.full_name, cmd.args);
|
127
108
|
}
|
128
109
|
}
|
129
110
|
}
|
@@ -15,6 +15,8 @@ import {
|
|
15
15
|
} from "../../addons/commanding/arguments.js";
|
16
16
|
import {_settings} from "../../js/settings.js";
|
17
17
|
import {command_input_template} from "./command-input-template.js";
|
18
|
+
import { SaferParser } from "../../js/json.js";
|
19
|
+
SaferParser.register();
|
18
20
|
|
19
21
|
/**
|
20
22
|
* This helper will help assign command and values in a safe manner by searching the command store, finding a reference,
|
@@ -38,6 +40,7 @@ function command_assignment_helper(desired_command_name, desired_command_args, p
|
|
38
40
|
return null;
|
39
41
|
}
|
40
42
|
let selected = _datastore.commands[command_name];
|
43
|
+
|
41
44
|
// Set arguments here
|
42
45
|
for (let i = 0; i < selected.args.length; i++) {
|
43
46
|
let assign_value = (desired_command_args.length > i)? desired_command_args[i] : null;
|
@@ -147,6 +150,7 @@ Vue.component("command-input", {
|
|
147
150
|
* command reaches the ground system.
|
148
151
|
*/
|
149
152
|
sendCommand() {
|
153
|
+
|
150
154
|
// Validate the command before sending anything
|
151
155
|
if (!this.validate()) {
|
152
156
|
return;
|
@@ -158,8 +162,9 @@ Vue.component("command-input", {
|
|
158
162
|
let _self = this;
|
159
163
|
_self.active = true;
|
160
164
|
let command = this.selected;
|
165
|
+
let squashed_args = command.args.map(serialize_arg);
|
161
166
|
this.loader.load("/commands/" + command.full_name, "PUT",
|
162
|
-
{"key":0xfeedcafe, "arguments":
|
167
|
+
{"key":0xfeedcafe, "arguments": squashed_args})
|
163
168
|
.then(function() {
|
164
169
|
_self.active = false;
|
165
170
|
// Clear errors, as there is not a problem further
|
@@ -3,7 +3,8 @@
|
|
3
3
|
*
|
4
4
|
* Contains the templates used to render the command string input box.
|
5
5
|
*/
|
6
|
-
export let COMMAND_FORMAT_SPEC = "FULL_COMMAND_NAME[[[, ARG1], ARG2], ...]"
|
6
|
+
export let COMMAND_FORMAT_SPEC = "FULL_COMMAND_NAME[[[, ARG1], ARG2], ...] " +
|
7
|
+
"where ARGN is a decimal number, quoted string, or an enumerated constant";
|
7
8
|
|
8
9
|
export let command_string_template = `
|
9
10
|
<div class="fp-flex-repeater">
|