No project description provided
Project description
envcon: simplified environment variable parsing
envcon. easy environment variables parsing. envcon allows you to store configuration separated from your code, like The Twelve-Factor App suggests.
Contents
Features
- Type-casting
- Parse
.env
files as well as environment variables (os.environ
) (useful for development) - Default values
Install
pip install envcon
Basic usage
Assuming these environment variables are set (or written in .env file)
export MONGO_USER=myMongoUser
export MONGO_PASSWORD=shh_its_a_secret
export SECRET_NUMBER=0.42
export ONE_TO_TEN=1,2,3,4,5,6,7,8,9,10
export IS_ENABLED=true
export URL=http://www.google.com
Parse them with envcon...
from envcon import environment_configuration
@environment_configuration
class Configs:
SECRET_NUMBER: float
IS_ENABLED: bool
ONE_TO_TEN: list[int] # in python 3.8 use List[int] (from typing import List)
print(Configs.SECRET_NUMBER) # 0,42
print(type(Configs.SECRET_NUMBER)) # <class 'float'>
print(Configs.IS_ENABLED) # True
print(type(Configs.IS_ENABLED)) # <class 'bool'>
print(type(Configs.ONE_TO_TEN[0])) # <class 'int'>
@environment_configuration(prefix="MONGO_")
class MongoConfiguration:
USER: str
PASSWORD: str
print(MongoConfiguration.USER) # myMongoUser
Supported types
The following types hints are supported
Builtins and from typing
:
str
bool
int
float
list
dict
List
List[T]
Dict
Optional[T]
Reading .env
files
TODO
Handling prefixes
TODO
For local development, use a .env
file to override the default
configuration.
# .env
DEBUG=true
SECRET_KEY="not so secret"
Why...?
Why environment variables?
See The 12-factor App section on configuration.
Why not os.environ
?
While os.environ
is enough for simple use cases, a typical application
will need a way to manipulate and validate raw environment variables.
environs abstracts common tasks for handling environment variables.
environs will help you
- cast environment vars to the correct type
- specify required environment vars
- define default values
- parse list and dict values
- serialize your configuration
Why use envcon?
TODO
License
MIT licensed.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.