Add dictionary-like capabilities to dataclasses
Project description
DataDict
Treat dataclasses like dictionaries
Installing DataDict
DataDict is available at PyPI. You can install it using Pip:
$ python -m pip install datadict
Using 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}
Installing From Source
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]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file datadict-1.0.0.tar.gz
.
File metadata
- Download URL: datadict-1.0.0.tar.gz
- Upload date:
- Size: 6.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.28.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6fd5452bf48cabfa68ab5a7d865f2d1dec48c1e8f5d74b061a9ca9fc8e7ae46e |
|
MD5 | 02eb42429840f82141e16100a7af7b1b |
|
BLAKE2b-256 | f06dd4bc6fbc81a5d484eb4d907bca36897ab06ae5b1010ca46d920f49ad4c9b |
File details
Details for the file datadict-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: datadict-1.0.0-py3-none-any.whl
- Upload date:
- Size: 3.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-requests/2.28.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8609e990bdfd1efa2cbbaf3e545bd0b0f8528518b30bcbdfc39d07993834c72 |
|
MD5 | e2e92cc7def3a84e20e99df417cb8ec1 |
|
BLAKE2b-256 | 234e4b3109635074e24f50c3e5e281b11ec4d3c447c48fc36302a908cbfa52b1 |