Enhancements:
- Added support for non-greedy DispatchTargets, so that such fields can be appear in a structure before a greedy field (e.g. Payload) without error.
Bugfixes:
- Previously,
DependentField
would not work if it appeared within aSubstructureField
or aFieldArray
. This has been corrected. - Updated the
unpack
method of fields and structures to ensure consistent return types. Previously, some fields would return None while others would return the unused data; now fields should always return non-None.
Enhancements:
Other Changes:
Bugfixes:
Enhancements:
- Supported was added for conditional SubstructureFields
- On error, original stack trace is now saved properly
- FieldArrays size can be specified in terms of number of elements instead of a length provider (in bytes).
dir()
method now works as expected on Field instances- Fields may now be constructed by providing keyword arguments to the constructor. This eliminates the need to assign each field explicitly.
Other Changes:
- Python 3.2 support has been dropped
Bug Fixes:
- Fixed error message when building exception in TypeField
- Miscellaneous documentation fixes
ConditionalField
now properly works with empty fields without acting like those fields are not present at all.
Enhancements:
- Python 3.5 is now officially supported as is pypy 4.0.0
- You can now specifies functions that customize how get/set works on
LengthField
. This allows for things like having the field that provides length to be within aBitField
.
Bug Fixes:
- Fixed inconsistencies getting length from LengthProvider
- Fixed potential problems when discarding bytes when throwing away bytes from a StreamProtocolHandler looking for a Magic field
Enhancements:
- Support for LengthFields and Payloads in ConditionalFields added
- Support added for 24, 40, 48, and 56 bit integers
- Support added for an array of substructures via
FieldArray
TypeField
added for supporting field providing length based on type.SubstructureField
added allowing for individuals fields with multiple elements to be modeled as structures.
Bug Fixes:
- Several documentation fixes
- #3: Added dependencies for the package to setup.py
- #5: Fixed
__repr__
forFieldProperty
and other Fields that do not override that method and also do not use_value
.
Enhancements:
- #7:
Support for a
DispatchTarget
of None is now supported. This allows for the target to be dynamically sized (greedy) which enables several previously impossible use cases that show up frequently in practice.
- Initial Public release of the library