Skip to main content

Programmatic configuration library for Python 3.

Project description

ConfigMaster

Build Status PyPI version PyPI DailyDownloads Coverage Status

What is ConfigMaster?

ConfigMaster is a simple library for accessing config files programmatically. No longer will you have to mess with list lookups and dict lookups when you wish to load a config file.
Instead, objects in the file are accessed as simple class attributes.

What is supported

ConfigMaster supports the following formats built-in:

  • YAML Config Files (through the PyYAML module)

  • JSON Config Files (through json)

  • INI Config Files (through ConfigParser)

  • Networked versions of YAML/JSON files.

Support for different types of config files grows all the time - feel free to fork and add support!

TODO

  • [STRIKEOUT:Add in support for python ConfigParser formats] Added in version 1.4.0

  • [STRIKEOUT:Add in networked JSON support] Added in version 1.3.0

  • Add more docstrings

  • Make proper documentation

  • [STRIKEOUT:Add tests] Added in version 1.3.1

How to install

For the latest stable version uploaded to PyPI, use:
pip install configmaster
For the latest stable version uploaded to git, use:
pip install git+ssh://cloning@git.sundwarf.me/SunDwarf/configmaster
For the latest dev version, use:
pip install git+ssh://cloning@git.sundwarf.me/SunDwarf/configmaster@develop

After installing, running the tests is recommended.

py.test -rfEsxXw -v --strict test.py

How to use

ConfigMaster handles everything for you. Simply specify the location of your file, and the values will be automatically loaded for you.

>>> from configmaster import YAMLConfigFile
>>> cfg = YAMLConfigFile.YAMLConfigFile("test.yml") # Created automatically if it doesn't exist

Networked config files are supported too.

>>> from configmaster import JSONConfigFile
>>> cfg = JSONConfigFile.NetworkedJSONConfigFile("http://example.com/data.json")

To access config values, get the attribute you want from the config object stored.

# YAML data is {"a": 1, "b": [1, 2], "c": {"d": 3}}
>>> cfg.config.a
1
>>> cfg.config.b[1]
2
>>> cfg.config.c.d
3

To populate your config data, just pass a dict to initial_populate. If the file is empty, this gives it default values, and returns True. If it isn’t, nothing happens. Note: This will fail with an exc.NetworkedFileException on networked files!

>>> pop = cfg.initial_populate({"a": 1, "b": [1, 2], "c": {"d": 3})
>>> if pop: cfg.dump() and cfg.reload() # Dump data and reload from disk.

To save your data, run .dump().

>>> cfg.dump()

Have a networked file that you need to save? Use the method save_to_file.

>>> cfg.save_to_file("example.json")

Need to get the raw dict form of a ConfigKey? Use .dump() on that!

>>> cfg.config.dump()
{"a": 1, "b": [1, 2], "c": {"d": 3}
>>> cfg.config.c.dump()
{"d": 3}

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

ConfigMaster-2.3.6.tar.gz (8.8 kB view details)

Uploaded Source

Built Distributions

ConfigMaster-2.3.6-py3.5.egg (24.7 kB view details)

Uploaded Source

ConfigMaster-2.3.6-py3.4.egg (24.7 kB view details)

Uploaded Source

ConfigMaster-2.3.6-py3.3.egg (25.0 kB view details)

Uploaded Source

ConfigMaster-2.3.6-py3.2.egg (24.6 kB view details)

Uploaded Source

File details

Details for the file ConfigMaster-2.3.6.tar.gz.

File metadata

File hashes

Hashes for ConfigMaster-2.3.6.tar.gz
Algorithm Hash digest
SHA256 89c151bc9fbfefe20883e70391fc5fb4a2ad63c339e9d9cc89af6bcb89fb98f0
MD5 a5a2033d0b0bb0ccc381e9e593be1efd
BLAKE2b-256 7eec13fab43645bacc027f864ecddac0a3b353442ffed9a87344132818084139

See more details on using hashes here.

File details

Details for the file ConfigMaster-2.3.6-py3.5.egg.

File metadata

File hashes

Hashes for ConfigMaster-2.3.6-py3.5.egg
Algorithm Hash digest
SHA256 527942c41250c66511e6818e112c8c7423d169dc1932b0ed4110ef3c58c3e3ee
MD5 81ee16bda5c04b588a61d2c29e30ef10
BLAKE2b-256 f7a544b2876a99d204d0c0cbc623c892ec1cfb3305f1935d82130020cc4322e2

See more details on using hashes here.

File details

Details for the file ConfigMaster-2.3.6-py3.4.egg.

File metadata

File hashes

Hashes for ConfigMaster-2.3.6-py3.4.egg
Algorithm Hash digest
SHA256 bf233e0a5beacc09b9ab58a7d11f68583eca0bd0c9a827c89d742e4f9117d9d8
MD5 2889a1decff3706ff88d2b270927f1fb
BLAKE2b-256 3453f1effc4316dde332981eeafb658fb0e5aa2d3e55a21ba968732073096793

See more details on using hashes here.

File details

Details for the file ConfigMaster-2.3.6-py3.3.egg.

File metadata

File hashes

Hashes for ConfigMaster-2.3.6-py3.3.egg
Algorithm Hash digest
SHA256 17aadb561e3d5a9c60d544677c646027c9496a55e1dd6bb9f9d0fb8cb7a27ad1
MD5 4bd8c5df2ee78806385f661ecc061990
BLAKE2b-256 7a2d202dbe206ef55acd175bea315b4f3d17b335be702a205802426977cf4c32

See more details on using hashes here.

File details

Details for the file ConfigMaster-2.3.6-py3.2.egg.

File metadata

File hashes

Hashes for ConfigMaster-2.3.6-py3.2.egg
Algorithm Hash digest
SHA256 39660066f24acc5b0990abd6a12bd0f10d62f82fcc2bce63c728943882412d21
MD5 460eca0e1882a0c6d99e4682efe79596
BLAKE2b-256 8b686e191476493ee0854dca73ef2f57d4e005d5233b395d751603664fbc6247

See more details on using hashes here.

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