Skip to main content

dict object with support for addressing keys in dot notation.

Project description

Travis CI Build Coverage Code Climate Maintainability

A light weight extension of the default python dict object. This allows for the use of key names as object attributes.

Simple usage

In [1]: from dotted_dict import DottedDict

In [2]: example = DottedDict()

In [3]: example['foo'] = 1

In [4]: example.foo
Out[4]: 1

In [5]: example.bar = 2

In [6]: example
Out[6]: DottedDict({'bar': 2, 'foo': 1})

In [7]: del example['foo']

In [8]: del example.bar

In [9]: example
Out[9]: DottedDict({})

Also allows passing in of values in same manner as normal dict objects.

In [10]: example = DottedDict({'foo': 1, 'bar': 2})

In [11]: example
Out[11]: DottedDict({'bar': 2, 'foo': 1})

Issues with invalid characters. A valid key name in the scope of this library must conform to the following regex [a-zA-Z_][a-zA-Z0-9_]*$. In the case where your key name does not conform, the library will mutate your key to a safe format. Spaces and invalid characters are replaced with _. In the case of the key beginning with an int, a leading _ is added.

In [12]: DottedDict({'My fun key': 1, 'John\'s': 1, 'Mr. Man': 1})
Out[12]: DottedDict({'John_s': 1, 'Mr__Man': 1, 'My_fun_key': 1})

In [13]: DottedDict({1: 2})
Out[13]: DottedDict({'_1': 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

dotted_dict-1.0.8.tar.gz (3.4 kB view hashes)

Uploaded Source

Built Distribution

dotted_dict-1.0.8-py2.py3-none-any.whl (5.2 kB view hashes)

Uploaded Python 2 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