Treat dataclasses like dictionaries
DataDict is available at PyPI. You can install it using Pip:
$ python -m pip install datadict
You can use a DataDict dataclass
as a drop-in replacement for dataclasses.dataclass
in the standard library:
from datadict import dataclass
@dataclass(order=True)
class Point:
x: int
y: int
For instances of the new data class, you can access attributes using square brackets, similar to dictionary access:
>>> point = Point(1, 2)
>>> point
Point(x=1, y=2)
>>> point.x
1
>>> point["x"]
1
>>> point["y"] = 3
>>> point
Point(x=1, y=3)
You can also convert the dataclass instance to a proper dictionary:
>>> point.asdict()
{'x': 1, 'y': 3}
You can always download the latest version of DataDict from GitHub. DataDict uses Flit as a build tool.
To install DataDict from the downloaded source, run Flit through pip
:
$ python -m pip install .
If you want to change and play with the DataDict source code, you should install it in editable mode:
$ python -m pip install -w .[dev,test]