/configclass

A Python class to hold configuration values

Primary LanguagePythonOtherNOASSERTION

configclass - A Python to class to hold configuration values

https://travis-ci.org/schettino72/configclass.png?branch=master https://coveralls.io/repos/schettino72/configclass/badge.png

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

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