A simple class that allows for the chaining of attributes.
Project description
DotDict
A simple Python library that builds upon argparse.Namespace
to make chained attributes possible.
Why?
Configs of all kinds follow a dict-like structure.
However, nobody likes the dict["key"]
syntax. We all much prefer the dict.key
syntax.
There are a number of workarounds for this, including easydict
or argparse.Namespace
(upon which this library is based).
The downside of these libraries, though, is that when you want to start a new level, you must explicitly define it first. For example:
config = edict()
config.host = 'localhost'
config.users = edict() # or {}
config.users.foo = 'bar'
This is ugly.
Wouldn't you much prefer the following syntax?
config = dd()
config.host = 'localhost'
config.users.foo = 'bar'
Installation
Installation is simple: pip install attr-dot-dict
. Alternatively: pip install .
from the root of the repository.
Usage
Usage is equally as simple:
from dotdict import DotDict as dd
x = dd()
x.a.b.c = 1
x.a.d = 2
x.a.b.e = 3
print(x) # DotDict(a=DotDict(b=DotDict(c=1, e=3), d=2))
print(vars(x)) # {'a': DotDict(b=DotDict(c=1, e=3), d=2)}
print(vars(x.a)) # {'b': DotDict(c=1, e=3), 'd': 2}
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
Hashes for attr_dot_dict-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3403b96e2dd09813dc8e8cb59cfe822c805a1605c3d9a7df4567b70fd6955a28 |
|
MD5 | 2182b6a032e5861b985cb39e222a60b9 |
|
BLAKE2b-256 | afab3c717181e61cfa97b71e6e01d072725c2d323350b408ab43547d02bc19ad |