Skip to main content

Yet Another Python Configuration

Project description

Yapconf

https://img.shields.io/pypi/v/yapconf.svg https://img.shields.io/travis/loganasherjones/yapconf.svg https://codecov.io/gh/loganasherjones/yapconf/branch/master/graph/badge.svg Documentation Status Updates

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.3 (2018-04-03)

  • Fixed Python2 unicode error (#41)

0.2.1 (2018-03-11) 0.2.2 (2018-03-28) —————— * Fixed Python2 compatibility error (#35)

0.2.1 (2018-03-11)

  • Added item to YapconfItemNotFound (#21)

  • Removed pytest-runner from setup_reuires (#22)

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


Download files

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

Source Distribution

yapconf-0.2.3.tar.gz (35.7 kB view details)

Uploaded Source

Built Distribution

yapconf-0.2.3-py2.py3-none-any.whl (20.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file yapconf-0.2.3.tar.gz.

File metadata

  • Download URL: yapconf-0.2.3.tar.gz
  • Upload date:
  • Size: 35.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for yapconf-0.2.3.tar.gz
Algorithm Hash digest
SHA256 7c7cd6df5a6318df2af77f1325ce80c56733ccac3ac7ccd31bb14c3f7314e6b0
MD5 b5e4ce8aeb7e0d319a28c3a917dd94ff
BLAKE2b-256 95d33eb1ccb00535c3f76fcc71205988cd052dcad19fd20c1e4fc14a5a24cfb4

See more details on using hashes here.

File details

Details for the file yapconf-0.2.3-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for yapconf-0.2.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 0b522805fec163bf9b776abb819c80ddf8fa2aad00fe2877778c44a22ad3ea8e
MD5 59b8f63df38f0872e2e6cbb19d31f334
BLAKE2b-256 1248f9614df9aa91d0b96a571c41e9d78c635019ef070ae5b65f8ca50dc5dfa0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page