Skip to main content

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


Download files

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

Source Distribution

attr-dot-dict-0.1.0.tar.gz (39.4 kB view hashes)

Uploaded Source

Built Distribution

attr_dot_dict-0.1.0-py3-none-any.whl (27.2 kB view hashes)

Uploaded Python 3

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