Metadata-Version: 2.4
Name: configclass
Version: 0.2.0
Summary: A Python to class to hold configuration values.
Home-page: https://github.com/schettino72/configclass/
Author: Eduardo Naufel Schettino
Author-email: schettino72@gmail.com
License: MIT
Keywords: dict,config
Platform: any
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
License-File: LICENSE
Requires-Dist: mergedict>=0.2.0
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: platform
Dynamic: requires-dist
Dynamic: summary

configclass - A Python to class to hold configuration values
==============================================================

.. display some badges

.. image:: https://travis-ci.org/schettino72/configclass.png?branch=master
  :target: https://travis-ci.org/schettino72/configclass

.. image:: https://coveralls.io/repos/schettino72/configclass/badge.png
        :target: https://coveralls.io/r/schettino72/configclass




A `Config` is a `dict` with a where:

 * existing items can be modified but no items can not be added
 * has `make()` method so you can easily created derived configs
 * `make()` has the same API as `dict.update()`
 * `make()` will merge values according to `mergedict.ConfigDict.merge()`
 * for convenience, make can take a `None` to perform a simple copy


::

    >>> from configclass import Config

    >>> c1 = Config({'a': 1, 'b': ['foo']})

    # can't add new items to config
    >>> c1.make({'a':2, 'c': [2]})
    Traceback (most recent call last):
    KeyError: 'New items can not be added to Config, invalid key:c'

    # new config object created
    >>> c2 = c1.make({'a':2})
    >>> c2
    Config({'a': 2, 'b': ['foo']})

    # original object is not modified
    >>> c1
    Config({'a': 1, 'b': ['foo']})

    # make() can take keyword arguments, note how lists are merged
    >>> c2.make(b=['bar'])
    Config({'a': 2, 'b': ['foo', 'bar']})



`configclass.ConfigMixin` can be used to create a `Config` class
that is not based on `mergedict.ConfigDict`. Check unittests for usage.



Project Details
===============

- Project management on github - https://github.com/schettino72/configclass/


license
=======

The MIT License
Copyright (c) 2014 Eduardo Naufel Schettino

see LICENSE file


developers / contributors
==========================

- Eduardo Naufel Schettino


install
=======

::

 $ pip install configclass

or download and::

 $ python setup.py install


tests
=======

Install dependencies in `dev_requirements.txt`.

To run the tests::

  $ py.test

