Notable changes to this project will be documented in this file. The format is based on Keep a Changelog.
- Pin NumPy under 2.0 to Dependencies (Support for NumPy 2 will come at a later date)
- Added support for custom byte orderings in ccsdspy.PacketField and ccsdspy.PacketArray. You can now pass strings like byte_order="3412" in addition to byte_order="big" and byte_order="little". (Discussion #110)
- Implement loading variable length packets from CSV (Issue #115)
- Add documentation page: :doc:`/user-guide/loadfile`
- Accept CCSDS header fields as converter inputs (PR #118)
- Add support pkt.load(fh, reset_file_obj=True) keyword argument which resets file handle to original position before loading (Issue #111)
- Add new class ~ccsdspy.converters.StringifyBytesConverter, which can be used to inspect individual bytes in string representations such as binary, hexadecimal, or octal. For an introduction to post-processing transformations, see the documentation at :doc:`/user-guide/converters`.
- Fixed issue with parsing signed integers that are not aligned to byte boundaries (Issues #80 and #76)
- Corrected several spelling errors and typos in the documentation.
- Added a ~ccsdspy.converters system, which applies post-process to decoded packet fields. This post-processing includes applying linear/polynomial calibration curves, dictionary replacement, and time parsing. See the documentation at :doc:`/user-guide/converters`.
- Major extensions to ~ccsdspy.VariableLength class to support arrays whose length is determined by another field. See documentation at :doc:`/user-guide/variablelength`.
- Added the following utility functions to the ccsdspy.utils module. See documentation at :doc:`/user-guide/utils`.
- ~ccsdspy.utils.read_primary_headers()
- ~ccsdspy.utils.iter_packet_bytes()
- ~ccsdspy.utils.split_packet_bytes()
- ~ccsdspy.utils.count_packets()
- ~ccsdspy.utils.get_packet_apid()
- ~ccsdspy.utils.get_packet_total_bytes()
- Add warnings when issues are detected in the primary headers when loading data. Warnings are issued in the following scenarios. This information can also be found in the documentation for the ~FixedLength.load() method.
- UserWarning: The CCSDS sequence count headers are not in order
- UserWarning: The CCSDS sequence count headers indicate missing packets
- UserWarning: There was more than one APID present in the decoded stream
- Major new documentation added and re-organization.
- Started tracking coverage percentage
- Repackaging using pyproject.toml file
- Added the ability to parse variable length files
- Added the ability to specify packet field that are arrays
- Added the ability to define a packet through a csv file
- Added github actions to perform continuous integration
- Specified black as the only accepted code formatter
- Add split_by_apid() function and command line interface python -m ccsdspy split.
- Improve handling of packet definitions with intermittently specified bit_offset (ie. some bit_offset specified, others None).
- Respect byte_ordering for float datatypes.
- Removed astropy dependency. Changes return type of ccsdspy.FixedLength.load from astropy.table.Table to OrderedDict.
- Added CHANGELOG.