pedroburon / python-envtools

Python toolchain for environment variables use

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

python-envtools

image

image

Useful environment toolchain for python

override_environment

Context Processor that overrides environment vars.

>>> @override_environment(DEBUG=False, FOO="Bar")
>>> def foo():
>>>     print(os.getenv("FOO"))
>>>     return os.getenv("DEBUG")
>>> foo()
FOO
"DEBUG"
>>> with override_environment(DEBUG="False", FOO="Bar"):
>>>     print(os.getenv("FOO"))
>>>     os.getenv("DEBUG")
FOO
"DEBUG"

configure_logging

Wrap a configDict inside configure_logging, then logging level could be controlled by environment variables

LOGGING = configure_logging({
    "loggers": {
        "module": {
            "handlers": ["console"],
            "level": "INFO",
        },
    }
})

For this example, environment variable must be set as LOGGING_LEVEL_module=DEBUG.

get_env

Similar to os.getenv() but evaluates string content (default) into simple python types.

>>> os.environ['FOO'] = "1"
>>> os.getenv('FOO')
"1"
>>> get_env('FOO')
1

>>> os.environ['FOO'] = "bar"
>>> get_env('FOO')
"bar"

>>> os.environ['FOO'] = "True"
>>> os.getenv('FOO')
"True"
>>> get_env('FOO')
True

>>> os.environ['FOO'] = "[1,2,3]"
>>> os.getenv('FOO')
"[1,2,3]"
>>> get_env('FOO')
[1, 2, 3]

it works for list, tuples, dictionaries, numbers, booleans and strings. And is safe!

About

Python toolchain for environment variables use

License:MIT License


Languages

Language:Python 100.0%