io_utils

Serialization and deserialization of attrs classes to and from dicts and json.

parityos.utils.io_utils.name_class_tagger = <parityos_serialization.utils.class_tagger.NameClassTagger object>

Class tagger for registering classes with a serializer for deserialization.

parityos.utils.io_utils.DETERMINISTIC_SERIALIZER = <parityos_serialization.serializer.DeterministicJsonSerializer object>

Serializer that is slower than FAST_SERIALIZER, but always returns unique deterministic serialization data. This serializer must be used for communications with a remote APIs.

parityos.utils.io_utils.FAST_SERIALIZER = <parityos_serialization.serializer.FastJsonSerializer object>

Serializer that is faster than DETERMINISTIC_SERIALIZER, but returns non-deterministic, but equivalent serialization data.

parityos.utils.io_utils.serialize_datetime(dt: datetime, _serializer: Serializer[TypedDataDict, NameClassTagger]) str

Serialize a datetime object to an ISO format string.

parityos.utils.io_utils.deserialize_datetime(data, _cls: type[datetime], _serializer: Serializer[TypedDataDict, NameClassTagger]) datetime

Deserialize an ISO format string into a datetime object.

parityos.utils.io_utils.serialize_complex(x: complex, _serializer: Serializer[TypedDataDict, NameClassTagger]) dict[str, float]

Serialize a complex number into a dictionary with real and imaginary parts.

parityos.utils.io_utils.deserialize_complex(data: dict[str, float], _cls: type[complex], _serializer: Serializer[TypedDataDict, NameClassTagger]) complex

Deserialize a dictionary into a complex number.

parityos.utils.io_utils.serialize_decimal(x: Decimal, _serializer: Serializer[TypedDataDict, NameClassTagger]) str

Serialize a Decimal into its engineering string representation.

parityos.utils.io_utils.deserialize_decimal(data: str, _cls: type[Decimal], _serializer: Serializer[TypedDataDict, NameClassTagger]) Decimal

Deserialize an engineering string into a Decimal.

parityos.utils.io_utils.json_dumps(obj: object, serializer: Serializer[TypedDataDict, NameClassTagger]) str

Convert obj to json string.

parityos.utils.io_utils.json_dump(obj: object, filepath: str | Path, serializer: Serializer[TypedDataDict, NameClassTagger])

Save obj to filepath as json.

parityos.utils.io_utils.json_loads(json_str: str, serializer: Serializer[TypedDataDict, NameClassTagger]) Any

Construct an instance of a class from a json string representation.

parityos.utils.io_utils.json_load(filepath: str | Path, serializer: Serializer[TypedDataDict, NameClassTagger]) Any

Construct an instance of a class from the json file at filepath.

parityos.utils.io_utils.register(cls: type[T]) type[T]

Class decorator to automatically register the decorated class and all its subclasses with name_class_tagger.