Code Monkey home page Code Monkey logo

python-configuration-wrapper's Introduction

Python Configuration Wrapper

This lib is basically a wrapper of the python-configuration.

It aims at making configuration easy !

Features

Read multi-level configuration values from multiple sources (precedency ordered):

  1. Command line arguments given by --additional-config or -C parameter.

    Example:

    python app.py -C "database.dialect=postgresql" --additional-config "database.host=postgres.mydomain.org" -C "database.user=admin"
    
  2. Environment variables starting with prefix set in the CONFIG_PREFIX environment variable. Level separator is __ (double underscore).

    Example:

    CONFIG_PREFIX=TEST TEST__database__user=root python app.py
    
  3. Config directories given by --config-path or -P parameter. The value of this parameter must be a directory path in which the sub-directories are multi-level keys, and plain-text files content are values. It's very practical when using secrets in containers.

    Example:

    mkdir /var/run/secrets/database -p
    echo -n 123456 > /var/run/secrets/database/password
    python app.py --config-path /var/run/secrets
    
  4. Config files given by --config-file or -F parameter. File formats must be among those handled by python-configuration:

    • json
    • ini
    • yaml
    • toml
    • python

    Example:

    python app.py -F config.json --config-file config.yaml
    

    If no config file is given, the lib will look for config.{yaml|json|ini|toml|python} in the working directory.

Installation

pip install python-configuration-wrapper

Usage

# import the config object from the module
# you can do this in every python file you want
from python_configuration_wrapper import config

# get some value from a multi-level key
myvalue = config.myfirstlevel.mysecondlevel.mykey

Example

See test

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.