Skip to main content

Programmatic configuration library for Python 3.

Project description

ConfigMaster

Build Status PyPI version PyPI DailyDownloads

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 bitbucket, use:
pip install git+https://github.com/SunDwarf/configmaster
For the latest dev version, use:
pip install git+https://github.com/SunDwarf/configmaster@dev

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.0.4.tar.gz (7.2 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

ConfigMaster-2.0.4-py3.4.egg (21.2 kB view details)

Uploaded Egg

ConfigMaster-2.0.4-py3.3.egg (21.5 kB view details)

Uploaded Egg

ConfigMaster-2.0.4-py3.2.egg (21.1 kB view details)

Uploaded Egg

ConfigMaster-2.0.4-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ConfigMaster-2.0.4.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for ConfigMaster-2.0.4.tar.gz
Algorithm Hash digest
SHA256 16de49182665f3bee44ee3a39aaf498be8edf0aa203c55bd7b7e20c5ad88a58b
MD5 c35b894c3471186d025e69cff1b38a6b
BLAKE2b-256 5fb26fd7fa4b9b1bf3be6d9769e0da25a5b4fcd0d48724063286465092562349

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ConfigMaster-2.0.4-py3.4.egg
Algorithm Hash digest
SHA256 36369c51eeb916c3d2ac38f4b502a52f0edd956ce36a2931344818e80e3154e9
MD5 f48cb78d5bd5aa1c4d0ddde5060e049d
BLAKE2b-256 86bed10b95c0201d6efc278879980292aee1e8c3e3992c9797759f60e17147ee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ConfigMaster-2.0.4-py3.3.egg
Algorithm Hash digest
SHA256 e96ab0db6218ff8ae45f628c6d3ba58e08f971acd8c5a218befecdd73e830ac2
MD5 e0e48c0f08862977bb017e082e15b767
BLAKE2b-256 c8ceb29ef2a9c695b351e6d864a1fa00bc13769c68e53cdcba13cb7a6f8c200b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ConfigMaster-2.0.4-py3.2.egg
Algorithm Hash digest
SHA256 85add0c3000288babddd53e7194815e0d20dcd92a39e5a1492f372957f5b75aa
MD5 8d6c317ba61c34d55721f6e0d8eaa27d
BLAKE2b-256 19b50e2568dfc20ac70cdaa7b1835cc7f98bbc19d1cbfc164e73403b459b4dbf

See more details on using hashes here.

File details

Details for the file ConfigMaster-2.0.4-py3-none-any.whl.

File metadata

File hashes

Hashes for ConfigMaster-2.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 3ae58c482f47c9d6c6519bb2450b21bbf831bb91e7d5cce70d83a62430989ace
MD5 3bb5d1cf2ae4a4e901eb12c7ebc09448
BLAKE2b-256 1516db84862d8e606c858a8c5ba9298117db14904335f4c8fb9d1d247a083ec2

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