Skip to main content
Python Software Foundation 20th Year Anniversary Fundraiser  Donate today!

read configuration files, conf.d style

Project description

read configuration files, conf.d style

Requirements

  • Python 2.6+ or Python 3.4+

Installation

Using PIP:

From Github:

pip install git+git://github.com/josegonzalez/conf_d.git#egg=conf_d

From PyPI:

pip install conf_d==0.1.0

Usage

usage:

# in your /etc/derp/conf file
[derp]
no: sleep
til: brooklyn

[herp]
sleep: 1
wait: 5.0
timeout: seventy

# From your fictional derp module
from conf_d import Configuration

def digitize(config):
    for key in config:
        if not config[key].isdigit():
            try:
                config[key] = float(config[key])
            except ValueError:
                pass
        else:
            try:
                config[key] = int(config[key])
            except ValueError:
                pass

        return config

# All defaults must be strings
conf = Configuration(
    name="derp",
    path="/etc/derp/conf",
    main_defaults={
        "no": "one",
        "expected": "the spanish inquisition",
        "cats": "1",
    },
    section_parser=digitize
)

what_not_to_do = conf.get(section='derp', key='no', default="jumping")
# "sleep"

until_when = conf.get(section='derp', key='til')
# "brooklyn"

cats = conf.get(section='derp', key='cats')
# "1"

dogs = conf.get(section='derp', key='dogs')
# None

sleep = conf.get(section='herp', key='sleep')
# 1

wait = conf.get(section='herp', key='wait')
# 5.0

timeout = conf.get(section='herp', key='timeout')
# "seventy"

section_exists = conf.has(section='derp')
# True

section_exists = conf.has(section='derp', key='no')
# True

raw_data = conf.raw()
# {
#    'sections': {
#       'herp': {
#          'sleep': 1,
#          'wait': 5.0,
#          'timeout': 'seventy'
#       }
#    },
#    'derp': {
#       'expected': 'the spanish inquisition',
#       'til': 'brooklyn',
#       'cats': '1',
#       'no': 'sleep'
#    }
# }

Changelog

0.1.0 (2018-12-12)

  • Feat: add release script. [Jose Diaz-Gonzalez]

  • Add support for Python 3 (up to Python 3.7) [Xavier Hardy]

    Add tox.ini file Add gitignore

0.0.4 (2013-12-13)

  • Change assertDictEquals to assertEquals. [Clay Pence]

  • Allow using custom config parser. [Clay Pence]

    Instead of using ConfigParser.ConfigParser, let the user pass in a parser.

0.0.3 (2013-05-23)

  • Allow overriding the confd_path from an entry in the main config. [Jose Diaz-Gonzalez]

0.0.2 (2013-04-18)

  • Fix issue where main section was not always created. [Jose Diaz- Gonzalez]

0.0.1 (2013-04-14)

  • Initial commit. [Jose Diaz-Gonzalez]

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for conf_d, version 0.1.0
Filename, size File type Python version Upload date Hashes
Filename, size conf_d-0.1.0-py2-none-any.whl (4.5 kB) File type Wheel Python version 2.7 Upload date Hashes View
Filename, size conf_d-0.1.0.tar.gz (4.6 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page