Skip to main content

No project description provided

Project description

environs: 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

envcon-0.1.3.tar.gz (5.7 kB view hashes)

Uploaded Source

Built Distribution

envcon-0.1.3-py3-none-any.whl (6.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page