Skip to main content

Easily find and read application configuration files.

Project description

ccaConfig

a config file utility. Will read yaml formatted config files from various locations in the following order, so that the 'nearer' files override the further ones. Finally, it checks the environment for variables and overrides any set in the config file.

The order of files to read is

/etc/appname.yaml
/etc/appname/appname.yaml
$HOME/.config/appname.yaml
$HOME/.appname.yaml
$(pwd)/appname.yaml

Any environment variables of the form

APPNAME_VARIABLENAME

will be found, chopped at the underscore, lower cased and set into the final configuration i.e: config[variablename] will exist if there is an environment variable APPNAME_VARIABLENAME.

Usage

from ccaconfig import ccaConfig

cf = ccaConfig(appname="appname")
config = cf.envOverride()

or, to not take environment variables into account:

from ccaconfig import ccaConfig

cf = ccaConfig(appname="appname")
config = cf.findConfig()

Two additional dictionaries can be supplied, the first defaultd can be used to set a default config, and the 2nd, overrided can be used for config variables that you do not want overridden by any config file found or from the environment.

from ccaconfig import ccaConfig

defd = {"environment": "dev"}
overd = {"product": "myapp"}
cf = ccaConfig(appname="appname", defaultd=defd, overrided=overd)
config = cf.envOverride()
# config["environment"] == "dev" if it is not overridden by a subsequent
# config file or from an environment variable
#
# config["product"] == "myapp" and will not be overridden, at all

Project details


Download files

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

Files for ccaconfig, version 0.3.3
Filename, size File type Python version Upload date Hashes
Filename, size ccaconfig-0.3.3-py3-none-any.whl (3.6 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size ccaconfig-0.3.3.tar.gz (3.4 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page