Metadata-Version: 2.4
Name: dotted_dict
Version: 1.1.3
Summary: dict object with support for addressing keys in dot notation.
Home-page: https://github.com/josh-paul/dotted_dict
Author: Josh Paul
Author-email: trevalen@me.com
License: Apache v2
Keywords: dotted dict dotted_dict
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: summary

dotted_dict
=============

.. image:: https://travis-ci.org/josh-paul/dotted_dict.svg?branch=master
    :target: https://travis-ci.org/josh-paul/dotted_dict
    :alt: Travis CI Build

.. image:: http://codecov.io/github/josh-paul/dotted_dict/coverage.svg?branch=master
    :target: http://codecov.io/github/josh-paul/dotted_dict?branch=master
    :alt: Coverage

.. image:: https://api.codeclimate.com/v1/badges/a5bdee8792e6a6379df1/maintainability
   :target: https://codeclimate.com/github/josh-paul/dotted_dict/maintainability
   :alt: 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 :code:`[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})
