Releases: medley56/space_packet_parser
Releases · medley56/space_packet_parser
5.0.1
5.0.0
What's Changed
- BREAKING: Main API changed. No need to create separate definition and parser objects any more. Create only a
definition from your XTCE document and instead ofmy_parser.generator
, usemy_packet_definition.packet_generator
. - BREAKING: Removed CSV-based packet definition support. We may indirectly support this in the future via
a utility for converting CSV definitions to XTCE. - BREAKING: Separated out logical pieces into separate modules rather than everything
living within the xtcedef module. This means user imports may be different now. - BREAKING: Replace
bitstring
objects with native Python bytes objects- Remove dependency on the
bitstring
library - Much faster parsing speed
- Users that are passing
bitstring.ConstBitStream
objects togenerator
will need to pass a
binary filelike object instead
- Remove dependency on the
- BREAKING: The
ParsedDataItem
class has been removed and the derived values are being returned now.
Theraw_value
is stored as an attribute on the returned object. The other items can be accessed
through the packet definition objectmy_packet_definition.named_parameters["my_item"].short_description
- BREAKING: The return type of BinaryDataEncoding is now the raw bytes.
To get the previous behavior you can convert the data to an integer and then format it as a binary string.
f"{int.from_bytes(data, byteorder='big'):0{len(data)*8}b}"
- BREAKING: Removed
word_size
kwarg from packet generator method.
We expect all binary data to be integer number of bytes. - BREAKING: Changed
packet_generator
kwargskip_header_bits
toskip_header_bytes
. - Fixed incorrect parsing of StringDataEncoding elements. Raw string values are now returned as byte buffers.
Derived string values contain python string objects. - The
CCSDSPacket
class is now a dictionary subclass, enabling direct lookup of items from the Packet itself. - A
RawPacketData
class has been added that is a subclass of bytes. It keeps track of the current
parsing location and enables reading of bit lengths as integers or raw bytes. - Fix EnumeratedParameterType to handle duplicate labels
- Add error reporting for unsupported and invalid parameter types
- Add support for MIL-1750A floats (32-bit only)
New Contributors
- @laspsandoval made their first contribution in #50
- @cgobat made their first contribution in #18
Full Changelog: 4.2.0...5.0.0
5.0.0rc9
What's Changed
- Add example of variable length field calculations to documentation by @laspsandoval in #50
- ENH: Change parsing logic to bytes manipulation directly by @greglucas in #51
- FIX: Enumerated parameter lookup of duplicate labels by @greglucas in #54
- MNT: Use direct operator evaluation rather than eval() by @greglucas in #52
- Add error handling for invalid/unknown parameter type by @medley56 in #42
- Fix Unit Tests Relying on ConstBitStream to use PacketData Instead by @medley56 in #58
- Remove bitstring dependency by @greglucas in #59
- Add pycodestyle as dev dependency by @medley56 in #60
- Use
lxml
instead of standard libraryxml
to improve namespace identification by @cgobat in #18 - Add straightforward endianness implementation; accommodate all allowable string encodings by @cgobat in #26
- Add a Parseable Protocol and parse method by @greglucas in #53
- FIX: Return the raw bytes from a BinaryDataEncoding by @greglucas in #61
- MNT: Simplify the string parsing termination character handling by @greglucas in #62
- Faster value parsing by @greglucas in #63
- Unify packet class by @greglucas in #67
- Support MIL-1750A Float Encoding by @medley56 in #69
- Refactor modules by @greglucas in #68
- DOC: Add in-browser capability by @greglucas in #71
- MNT: Turn some position arguments into keyword-only by @greglucas in #77
- MNT: Make packet class be a mapping based on data items by @greglucas in #70
- Remove CSV parsing code by @medley56 in #78
- Refactor API and Move Parser Methods to XtcePacketDefinition Class by @medley56 in #79
- Parser read method by @greglucas in #82
- CI: Add windows and macos tests by @greglucas in #83
- REL/CI: Automate release workflow by @greglucas in #84
- Fix Incorrect String Parsing by @medley56 in #85
New Contributors
- @laspsandoval made their first contribution in #50
- @cgobat made their first contribution in #18
Full Changelog: 4.2.0...5.0.0rc9
4.2.0
Changes in this release:
- Parse short and long descriptions of parameters
- Implement equality checking for SequenceContainer objects and Parameter objects
- Include parameter short description and long description in ParsedDataItems
- Add support for AbsoluteTimeParameterType and RelativeTimeParameterType
- Add support for BooleanParameterType
- Drop support for bitstring <4.0.1
- Support BooleanExpression in a ContextCalibrator
- Default read size is changed to a full file read on file-like objects
4.1.1
4.1.0
4.0.2
Release 4.0.1
First release from open source repository.