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/Library/Preferences/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.config import ccaConfig

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

or, to not take environment variables into account:

from ccaconfig.config 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.config 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.

Source Distribution

ccaconfig-0.4.0.tar.gz (2.8 kB view details)

Uploaded Source

Built Distribution

ccaconfig-0.4.0-py3-none-any.whl (3.5 kB view details)

Uploaded Python 3

File details

Details for the file ccaconfig-0.4.0.tar.gz.

File metadata

  • Download URL: ccaconfig-0.4.0.tar.gz
  • Upload date:
  • Size: 2.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.11.8 Linux/6.6.19-1-MANJARO

File hashes

Hashes for ccaconfig-0.4.0.tar.gz
Algorithm Hash digest
SHA256 277e4c1cd8750c7192cc1a283455871ed24b78e4bed04331b5b74299e8059dbd
MD5 029f77961e284f3ddfc103fc9846bf80
BLAKE2b-256 2cd5de3151b2817c78e01ef5a6c944c703b3ce71b770af22505cbf44e8d0d269

See more details on using hashes here.

File details

Details for the file ccaconfig-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: ccaconfig-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 3.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.11.8 Linux/6.6.19-1-MANJARO

File hashes

Hashes for ccaconfig-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b01c7b1e49943aa98391941bee21844b662e62551c437f79ecb029132d755415
MD5 314211f990b1497ab21d17287576a1fe
BLAKE2b-256 d87f416e76b89e89040b5da8a01690829fe5ab292762bcd5083fd91ce64d8ef0

See more details on using hashes here.

Supported by

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