Yet Another Python Configuration
Project description
Yapconf
Yet Another Python Configuration. A simple way to manage configurations for python applications.
Yapconf allows you to easily manage your python application’s configuration. It handles everything involving your application’s configuration. Often times exposing your configuration in sensible ways can be difficult. You have to consider loading order, and lots of boilerplate code to update your configuration correctly. Now what about CLI support? Migrating old configs to the new config? Yapconf can help you.
Features
Yapconf helps manage your python application’s configuration
JSON/YAML config file support
Argparse integration
Environment Loading
Bootstrapping
Migrate old configurations to new configurations
Quick Start
To install Yapconf, run this command in your terminal:
$ pip install yapconf
Then you can use Yapconf yourself!
from yapconf import YapconfSpec
# First define a specification
my_spec = YapconfSpec({"foo": {"type": "str", "default": "bar"}}, env_prefix='MY_APP_')
# Then load the configuration in whatever order you want!
# load_config will automatically look for the 'foo' value in
# '/path/to/config.yml', then the environment, finally
# falling back to the default if it was not found elsewhere
config = my_spec.load_config('/path/to/config.yml', 'ENVIRONMENT')
print(config.foo)
print(config['foo'])
You can also add these arguments to the command line very easily
import argparse
parser = argparse.ArgumentParser()
# This will add --foo as an argument to your python program
my_spec.add_arguments(parser)
cli_args = vars(parser.parse_args(sys.argv[1:]))
# Now you can load these via load_config:
config = my_spec.load_config(cli_args, '/path/to/config.yml', 'ENVIRONMENT')
For more detailed information and better walkthroughs, checkout the documentation!
Documentation
Documentation is available at https://yapconf.readthedocs.io
Credits
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.
History
0.2.0 (2018-03-11)
Added auto kebab-case for CLI arguments (#7)
Added the flag to apply environment prefixes (#11)
Added choices to item specification (#14)
Added alt_env_names to item specification (#13)
0.1.1 (2018-02-08)
Fixed bug where None was a respected value.
0.1.0 (2018-02-01)
First release on PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for yapconf-0.2.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0fd4790cc7cde712c2c5e29d230d7fb32d4b59709fd0a4b177c64df59ee0f47e |
|
MD5 | a9d06d80687dd84d0c41393ba5f290a1 |
|
BLAKE2b-256 | f780510b4d297f7793e930886cc23c82c9ff1565c6a851c80b59743a1d506240 |