Handles configuration saved as JSON files.
Project description
ConfigViper is a set of Python classes for handling configuration files saved in JSON format. For example:
from configviper import ConfigViper ConfigViper.configure() conf = ConfigViper() conf.set('spam.ham.eggs', 'sausage')
And the JSON file will looks like:
{ "spam": { "ham": { "eggs": "sausage" } } }
Goals
Simple to define default values (avoiding “defaults” everywhere);
Simple to write converters between Python and JSON types (even for complex Python types);
Human editable format (JSON is readable enough);
Portable configuration format (JSON is portable enough);
Easy to add configuration options without destroying existing ones;
Accessible anywhere in the app code (avoiding singleton’s boring discussions);
Small and really simple.
Installation
Install ConfigViper using pip install ConfigViper command. If you downloaded the sources from PyPI go to ConfigViper-<version> directory and type python setup.py install command. You can also get the sources from BitBucket repository (you will need Mercurial SCM installed on your system):
hg clone https://bitbucket.org/danielgoncalves/configviper
More Documentation
For usage example and more information, please refer to the documentation available on-line.
Licensing
ConfigViper is licensed under GNU’s LGPL.
Change History
Version 0.1
Released 12 march 2012.
Version 0.2
Released 18 march 2012;
Documentation hosted on PyPI.
Version 0.3
Released 14 april 2012;
Default config-path separator changed from / to .;
Configuration values can be accessed like object attributes:
# using the get() method conf.get('spam.ham.eggs') # or like object attributes conf.spam.ham.eggs
Version 0.3.1
Released 18 april 2012;
[FIXED] No conversion was happening when config-paths are accessed like object attributes;
Only one proxy instance is created when accessing config-paths like object attributes;
Some more unit tests added.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.