Skip to main content

Python Configurations

Project description

https://secure.travis-ci.org/pictage/ConfigIt.png?branch=develop

ConfigIt is MIT Licensed Python Configuration library brought to you by the camera shy people at Pictage.

Python is all about the dicts so why do we settle for INIs?

Features

All configuration files are native python files.

Using ConfigIt you can read those files in as a module, or file and return a dictionary with attribute access.

One of the most powerful things about configit is its ability to use other configurations within a configuration.

Installation

To install configit, simply:

$ pip install configit

API Documentation

configit.from_file(filepath)

Reads a string file path and returns a ConfigDict.

filepath = r'tests/configs/default.py'

config = from_file(filepath)
assert config.config_dict.name == 'default'
configit.from_module(module)

Reads an imported module and returns a ConfigDict.

import tests.configs.module_config

config = configit.from_module(tests.configs.module_config)
assert config.config_dict.name == 'module_config'
configit.from_dict(conf_dict)

Reads a dictionary and returns a ConfigDict.

ConfigDicts are accessible by attributes as well as keys.

config = dict(answer=42)

config = configit.from_dict(config)
assert config.answer == 42
configit.use(conf_source)

Within a python configuration you can import another python configuration. The imported configuration will update local name space of the importing configuration. This means values in sub configuration will be accessible in the local configuration.

This can be useful for boiler plate configurations where you only need a few items changed.

file_supplement.py contents:

answer=42

file.py contents:

import configit
configit.use('file_supplement.py')

Code using configit to get the configuration:

import configit
config = configit.from_file('file.py')

assert config.answer == 42

Order matters!

file_supplement.py contents:

answer=42

file.py contents:

import configit
configit.use('file_supplement.py')
answer=5

Code using configit to get the configuration:

import configit
config = configit.from_file('file.py')

assert config.answer == 5

For further examples refer to included tests.

Contribute

  1. Fork the repository on Github to start making your changes to the develop branch (or branch off of it).

  2. Install to your env or venv by running:

    $ python setup.py develop
  3. Hack-a-thon, dance party!

  4. Write a test which shows that the bug was fixed or that the feature works as expected.

  5. Test by running:

    $ python setup.py test
  6. Send a pull request and bug the maintainer until it gets merged and published. :) Make sure to add yourself to AUTHORS.

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

ConfigIt-0.1.2.tar.gz (5.2 kB view details)

Uploaded Source

File details

Details for the file ConfigIt-0.1.2.tar.gz.

File metadata

  • Download URL: ConfigIt-0.1.2.tar.gz
  • Upload date:
  • Size: 5.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for ConfigIt-0.1.2.tar.gz
Algorithm Hash digest
SHA256 34dc30705b67d1dcc3d21339a082cd9ba2559901f497ddad3cea892709758fd8
MD5 c36ac0624f370ef357a283f468bd518a
BLAKE2b-256 b434a83d90c9834875384c415eab7f9556429b3dff55c7e70bba7b6f8938e91b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page