Python package to assist configuration
Project description
yaconfig
Python package to assist configuration of Python software.
Installation
To install the latest release:
pip3 install yaconfig
Usage
This package is intended to be used by other package to assist their configuration. The recommended workflow follows:
- Add a config module. Its purpose should be to define the configuration variables (the metaconfig) and to provide a single instance of the actual configuration (the values) for your application. If you want to implement a more complex logic to handle multiple configuration, you can do it here. Simple example:
# File config.py
import yaconfig
metaconfig = yaconfig.MetaConfig(
yaconfig.Variable("text", type=str, default="Hello world", help="Text to output")
)
# Get a default configuration, which should be overridden when the execution starts
config = yaconfig.Config(metaconfig)
- In the entry point of your program, load the previous module and initialize the config using the desired method. The variables can be accessed from now on. Example:
# File main.py
from config import config # Just need the config object of the previous module
try:
config.load_json("config.json")
except FileNotFoundError:
print("config.json file not found. Using the default configuration instead.")
print(config["text"])
Note that if that file can be loaded as a module, you should avoid initializing the config. You can use __main__
or
build a launching script to prevent this.
- To document the configuration, you can use the methods of the metaconfig variable you have defined. This can be done manually from the interpreter or automated by writing a script. Some examples follow:
from config import metaconfig
metaconfig.generate_json_example() # Generate a conf.example.json file
metaconfig.generate_environment_example() # Generate a environment.sh file
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
yaconfig-0.2.0.tar.gz
(4.1 kB
view hashes)
Built Distribution
Close
Hashes for yaconfig-0.2.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd52103abf741de7a4490c0759c165d78d03e174af3c02363ab7d3a1584df77d |
|
MD5 | 3fa95d4c8d831ac39acc35c19cf9f6e8 |
|
BLAKE2b-256 | 4a7e5e76b2df19d32deac552546fdc846b2ba4ad696705743a071cf36d52f170 |