Environment to python dictionary parser util
Project description
Environment to python dictionary parser util
pip install env2dict
About
This small package provides an ability of easy setting/overriding Python variables from environment. It is expected that u will use it to override your configuration data without changing configuration files itself, what is especially useful for containers-oriented applications.
Syntax
To use it, u need to define environment variables matches the pattern: PrefixBodyOperationSuffix where:
- Prefix is any word to determine target variables; for instance,
DD
prefix means to use only variables starts withDD
; can be empty, what means to select all available variables (not recommended) - Body is the name of the target configuration parameter
- OperationSuffix is the one of next available suffixes (by default, but u can change your defaults):
_NUMBER
to convert variable value to integer (environment variables are always strings)_FLOAT
to convert variable value to float_FLAG
to convert variable value tooptional[boolean]
at that values:1
/yes
/Yes
/True
/true
equaltrue
0
/no
/No
/False
/false
equalfalse
None
/null
/NULL
equalnull
_LIST
means to parse variable value to string list_LIST_APPEND
means to parse variable value to string list and append to existing list instead of override_JSON
means to parse variable value as json string- no suffix means that no conversion will be performed, so variable value will stay a string
Moreover, u can put nested dicts values using __
separator (or other on your choice) in the environment variable name.
Note also that u can combine these suffixes to perform more complicated transformations.
Examples
- env variable
DD_S_COUNT_NUMBER=10
(with prefixDD_
conversation) will be converted toS_COUNT=10
Python object DD_S_COUNT=10
🠚S_COUNT="10"
DD_USE_THIS_FLAG=yes
🠚USE_THIS=True
DD_USE_THIS_FLAG=true
🠚USE_THIS=True
DD_USE_THIS_FLAG=no
🠚USE_THIS=False
DD_ALLOWED_HOSTS_LIST_APPEND=127.0.0.1;dev.ocr.com;dev.web.com
will append a list['127.0.0.1', 'dev.ocr.com', 'dev.web.com']
toALLOWED_HOSTS
variableDD_READ_ME_JSON={\"a\": 1, \"b\": [1, 2]}
will be translated toREAD_ME={'a': 1, 'b': [1, 2]}
DD_SOME_DICT__KEY1__KEY2=postgres
will create a dictionarySOME_DICT={'KEY1': {'KEY2': 'postgres'}}
if it doesn't exist and will add a field in existing dictionary by aforementioned routeDD_A__B_LIST_APPEND_JSON=[1, 2, 3, [1, 2, \"3\"]]
will append[1, 2, 3, [1, 2, "3"]]
to the end of valueV
fromA={"B": V}
How to use
from env2dict import parse_vars
new_vars = parse_vars(
prefix='DD_',
initial_vars=None,
source=None
)
More info
Please take a look at:
parse_vars
function docstringtests
directory of this package repo.
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
Built Distribution
File details
Details for the file env2dict-0.0.5.tar.gz
.
File metadata
- Download URL: env2dict-0.0.5.tar.gz
- Upload date:
- Size: 6.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.8.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d5aaa409c05207d67995d83693a0d07a5a479001c1101b5a8ffab58ad72801f |
|
MD5 | c05304fdf97e93789e05b5dd6e6f75a3 |
|
BLAKE2b-256 | 0fa6dd8c5165d2ab51fbdf52a7aa7211c2486dc4174bfca7e7c0d7184d12fea0 |
File details
Details for the file env2dict-0.0.5-py3-none-any.whl
.
File metadata
- Download URL: env2dict-0.0.5-py3-none-any.whl
- Upload date:
- Size: 6.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.8.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4dee48a83e5af3bafaa415a0d932805fab8919c4503866a2df68bc8a86b5fdcf |
|
MD5 | ed12c98352015bd8bcb095a78a56ad44 |
|
BLAKE2b-256 | 93ade2d5a3d7d51f22820e5661df77b4909b0798863a9c55fcc4db1d9a92d73d |