Skip to main content

No project description provided

Project description

tests pypi License: MIT bear-ified Ruff-ified

nested dataclass serialization

  • lets you (de)serialize nested dataclasses from and to json
  • uses custom json-encoder for recursive serialization
  • uses importlib for deserialization (instantiation of the dataclass-objects)

minimal example

@dataclass
class Bar:
    x: str


@dataclass
class Foo:
    bars: list[Bar]

bar = Bar(x="test")
foo = Foo(bars=[bar, bar])

json_str = serialize_dataclass(foo)

# this json_str looks like this:
{
    "_target_": "test_dataclass_serialization.Foo",
    "_id_": "a22ddd36-<some-long-id-here>d2290929",
    "bars": [
        {
            "_target_": "test_dataclass_serialization.Bar",
            "_id_": "a22ddd36-<some-long-id-here>ebb0ab925b1bd977208e4",
            "x": "test",
        },
        {
            "_target_": "test_dataclass_serialization.Bar",
            "_id_": "a22ddd36-<some-long-id-here>ebb0ab925b1bd977208e4",
            "x": "test",
        },
    ],
}
# somewhere in a different python-process/container/server
des_foo = deserialize_dataclass(json_str) # getting back the dataclass-object
assert id(des_foo.bars[0]) == id(des_foo.bars[1]) # just to show that deserialization works

similar libs

  • madman-bob: looks like you need to explicitly provide the python-class for deserialization: JSONSerializer.deserialize(InventoryItem, {'name': 'Apple', 'unit_ ...

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nested_dataclass_serialization-0.1.7.tar.gz (9.0 kB view details)

Uploaded Source

File details

Details for the file nested_dataclass_serialization-0.1.7.tar.gz.

File metadata

File hashes

Hashes for nested_dataclass_serialization-0.1.7.tar.gz
Algorithm Hash digest
SHA256 33d1772bc6f83951d01082d62e48998bfe86c1b7c0797a9968347e93a12324e3
MD5 e25ea2aa68500dacfe07b6344af953a3
BLAKE2b-256 5d6fe1e2675cb0465104e3fba23bac17ad10961bdb066add998913f969391611

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page