Skip to content

Safe app configuration from environment variables

Notifications You must be signed in to change notification settings

python-pkgz/envvarconf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

envvarconf

Python application

Safe app configuration from environment variables without extra dependencies

Install

pip install envvarconf

Example

Define our settings

from envvarconf import BaseSettings
from envvarconf.loaders import environ


class Settings(BaseSettings):
    SENTRY_DSN: str
    LOGGING_LEVEL: str = 'debug'

    HOST: str = "aaaakehgeiuhgiweurhiuerhf"*200
    PORT: int


if __name__ == "__main__":
    settings = Settings()
    settings.load(loader=environ.Loader())

    print("OK!")
    print(settings)

Run application without any environment definition

$ python3 main.py
There is errors in settings
 * SENTRY_DSN is not defined
 * PORT is not defined

Application settings:
SENTRY_DSN: <class 'str'> = NOT DEFINED!
LOGGING_LEVEL: <class 'str'> = debug
HOST: <class 'str'> = aaaakehgeiuhgi...
PORT: <class 'int'> = NOT DEFINED!

Define HOST variable:

$ HOST=1 python3 main.py
There is errors in settings
 * SENTRY_DSN is not defined
 * PORT is not defined

Application settings:
SENTRY_DSN: <class 'str'> = NOT DEFINED!
LOGGING_LEVEL: <class 'str'> = debug
HOST: <class 'str'> = 1
PORT: <class 'int'> = NOT DEFINED!

Define all variables

$ HOST=1 PORT=2 SENTRY_DSN=3 python3 main.py
OK!
<Settings SENTRY_DSN=3, LOGGING_LEVEL=debug, HOST=1, PORT=2>

About

Safe app configuration from environment variables

Resources

Stars

Watchers

Forks

Packages

No packages published