Releases: lojack5/structured
Releases · lojack5/structured
3.1.0 Release
A new version is available:
- Feature:
typing.Self
can be used as a serializable type-hint, ifSelf
is aStructured
derived class. - Feature:
char[math.inf]
andunicode[math.inf]
can be used to consume all remaining bytes in a stream. These must be the final serializable type-hint in a class. - Feature: Conditional serialization: including
Condition(condition_fn, default_value)
in anAnnotated[...]
for a serializable typehint can be used to control whether an attribute is packed/unpacked or not. Useful for defining multiple versions of a data structured with a single class. - Bugfix:
array
can handle 0-length arrays of simple serializable types now (it could always handle complex types, simple types not supporting this was a bug). - Bugfix:
SerializeAs
now works properly when using non-defaultByteOrder
.
3.0.0 Release
New update with new features:
- tuples
- unions
- replaced
Formatted
withSerializeAs
- Full support for Python 3.11, unofficial support for Python 3.12
Plus lots of background code cleanup, and some slight performance improvements.
Deprecated features removed:
- using
serialized
to configure type-hints. All additional configuration is viatyping.Annotated
Install via source, or from pip:
pip install structured-classes
2.0.2 release
Wrapping up all the recent improvments on main.
Biggest new features include:
- Complex data types for packing/unpacking: variable length bytes, automatically decoded strings (
unicode
type), and arrays of formatted orStructured
types (array
type). - Generics in
Structured
classes.