Skip to content

yggdrasil.pickle.ser.data

data

Pickle serializers for :class:~yggdrasil.data.Field and :class:~yggdrasil.data.Schema.

Wire layout

FieldSerialized (tag YGG_FIELD = 303) payload = Arrow IPC file bytes that hold a single-field pa.Schema. The field's name, Arrow type, nullability and all metadata are round-tripped through Arrow's own IPC format.

SchemaSerialized (tag YGG_SCHEMA = 304) payload = Arrow IPC file bytes that hold a pa.Schema. All fields (with their metadata) and the schema-level metadata are preserved via Arrow IPC.

Both serializers store a ygg_object key in the wire Header metadata for debugging purposes (it is never needed for reconstruction — the tag suffices).

DataSerialized dataclass

DataSerialized(head: Header, data: IO)

Bases: Serialized[object]

Base / dispatch hub for yggdrasil.data serializers.

Not registered as a concrete tag — only the concrete subclasses are.

module_and_name staticmethod

module_and_name(obj: Any, *, fallback: str = '') -> tuple[str, str]

Return (module, qualname) for obj.

Robust across Python objects, including many C-extension / PyArrow objects where module may be missing or misleading.

FieldSerialized dataclass

FieldSerialized(head: Header, data: IO)

Bases: DataSerialized

Serialize a :class:~yggdrasil.data.Field as Arrow IPC (single-field schema).

module_and_name staticmethod

module_and_name(obj: Any, *, fallback: str = '') -> tuple[str, str]

Return (module, qualname) for obj.

Robust across Python objects, including many C-extension / PyArrow objects where module may be missing or misleading.

SchemaSerialized dataclass

SchemaSerialized(head: Header, data: IO)

Bases: DataSerialized

Serialize a :class:~yggdrasil.data.Schema as Arrow IPC.

module_and_name staticmethod

module_and_name(obj: Any, *, fallback: str = '') -> tuple[str, str]

Return (module, qualname) for obj.

Robust across Python objects, including many C-extension / PyArrow objects where module may be missing or misleading.