packable

packable(cls)

Convert a class into a PackableSample dataclass with msgpack serialization.

The resulting class gains packed, as_wds, from_bytes, and from_data methods, and satisfies the Packable protocol. NDArray fields are automatically handled during serialization.

Examples

>>> @packable
... class MyData:
...     name: str
...     values: NDArray
...
>>> sample = MyData(name="test", values=np.array([1, 2, 3]))
>>> restored = MyData.from_bytes(sample.packed)