Skip to main content

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

  1. Simple to define default values (avoiding “defaults” everywhere);

  2. Simple to write converters between Python and JSON types (even for complex Python types);

  3. Human editable format (JSON is readable enough);

  4. Portable configuration format (JSON is portable enough);

  5. Easy to add configuration options without destroying existing ones;

  6. Accessible anywhere in the app code (avoiding singleton’s boring discussions);

  7. 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.

Version 0.4

  • Released 25 april 2012;

  • [ADDED] Stop saving (or bulk set) feature;

  • [ADDED] Backup before save with automatic restore on failure (optional).

Version 0.5

  • Released 24 august 2013;

  • [ADDED] Sub-package to support cross-platform file locking based on fcntl on POSIX systems or using ctypes on Windows (no support for 95/98/ME);

  • [ADDED] File lock on write operations;

  • [ADDED] Support for logging;

  • [ADDED] Support for file encodings (or no explicit encoding);

  • [ADDED] Use UTF-8 as default file encoding;

  • [CHANGED] Re-implementation of save operation attempting to minimize concurrent-access issues;

  • [REMOVED] Backup options;

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

ConfigViper-0.5.tar.gz (39.1 kB view hashes)

Uploaded Source

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