Smart tiny config library for flask-like config
Project description
desing_config.py
Smart tiny config library for flask-like config
How to install
pip install design-config
You can find source code of library on GitHub
How to use
import os
from design_config import DesignConfig, D, ___
class Config(DesignConfig):
""" is D("") """
PROP_ZERO = ___
""" is 'hello' """
PROP_ONE = 'Hello'
""" 'World' if in init_data_dict not PROP_TWO
As usually init_data_dict is os.environ """
PROP_TWO = D('World')
""" 'Hello World!' or 'hello {PROP_TWO}!' for any PROP_TWO """
PROP_THREE = '{PROP_ONE} {PROP_TWO}!'
config = Config()
If your global environment variables contain $PROP_TWO , it will be replaced in the config with the appropriate value. Otherwise, it will remain by default (World)
D
means "default"
config.PROP_THREE # "Hello World!"
config['PROP_THREE'] # "Hello World!"
config['{PROP_THREE}!!'] # "Hello World!!!"
config['{PROP_FOUR}'] # "PROP_FOUR"
config('{PROP_ONE} Tom') # "Hello Tom"
config('PROP_FOUR', 'London') # "London"
config('PROP_TWO', 'London') # "World"
config('{PROP_ZERO}', 'London') # ""
config('{PROP_FOUR}', 'London') # "PROP_FOUR"
config.path('{PROP_ONE}', 'some_folder', '{PROP_TWO}2') # os.path.join("Hello","some_folder","World2")
Also you can use int
, bool
, and float
values:
class Config(DesignConfig):
PROP_FIVE = D(55)
PROP_SIX = D(True)
PROP_SEVEN = D(7.7)
config = Config({
'PROP_FIVE': '5',
'PROP_SIX': 'FALSE',
'PROP_SEVEN': '7e7'
})
config.PROP_FIVE # 5
config.PROP_SIX # False
config.PROP_SEVEN # 7e7
You can use DesignConfig with Flask like that:
class MyFlaskConfig(DesignConfig):
VERSION = '2'
FLASK_DEBUG = D(True)
IS_PRODUCTION = D(False)
DEBUG = D(True)
PROJECT_PATH = D('/base')
REDIS_HOST = D('localhost')
REDIS_PORT = D('6379')
"""..."""
config = MyFlaskConfig()
my_flask_app = Flask(__name__, static_folder='static', static_url_path='')
my_flask_app.config.from_object(config)
"""..."""
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
design_config-0.0.4.tar.gz
(3.6 kB
view details)
Built Distribution
File details
Details for the file design_config-0.0.4.tar.gz
.
File metadata
- Download URL: design_config-0.0.4.tar.gz
- Upload date:
- Size: 3.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ed0b6a0fd39dee0df389e8971467b3d3c97340506964851ff1e071cc728363db |
|
MD5 | 1b68df8ddda5a62e6691424a46e2576f |
|
BLAKE2b-256 | 024d071ceeed71ab341abfd194a63e30639b34ca1862f5a45c6e6713ec3a658c |
File details
Details for the file design_config-0.0.4-py3-none-any.whl
.
File metadata
- Download URL: design_config-0.0.4-py3-none-any.whl
- Upload date:
- Size: 3.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 940aa38e139bf03d86d3a826f335846960fe200bedd120482150db470d4dcdc4 |
|
MD5 | 8acf23d672c0105a1645608ca5fea31b |
|
BLAKE2b-256 | 6754681ad1dce7baf349e5561ae98e843c462aa4e81629c1f3668bb59dd312b2 |