Simple environment variable configuration for Python
Project description
envconfig
envconfig
is a simple but effective way to configure your Python application through environment variables.
Inspired by kelseyhightower/envconfig.
Features:
- Extremely simple setup,
- Zero third-party dependencies,
- Well tested,
- Well documented,
- Fun to use ;)
Quickstart
import envconfig
class Config:
# Declare two config variables with type string.
aws_access_key_id: str
aws_secret_access_key: str
# Provide a default - envconfig uses the type that the attribute is initialized with
# so you don't need to repeat yourself.
aws_region = 'us-east-1'
# HTTP config
num_retries = 15
retry_strategy: str
timeout: int = 15 # seconds
# Create an instance of your config object and let envconfig process it!
config = Config()
envconfig.process(config)
# Access class attributes
aws_client = Client(
access_key_id=config.aws_access_key_id,
secret_access_key=config.aws_secret_access_key,
region=config.aws_region,
)
Development
Cloning and Building
envconfig
is written in Python 3.6 and is tested on Python 3.6 and above.
Simply check out the repository, create a virtualenv
, and go to town!
git clone https://github.com/makramkd/envconfig # or git@github.com:makramkd/envconfig.git if you prefer
cd envconfig
pyenv local 3.6.3 # ensure python 3.6
python -m venv .venv # create venv
source .venv/bin/activate
pip install -r test_requirements.txt # for coverage, flake8
You can install envconfig
in your virtual environment by running:
python setup.py install
Running unit tests and linter
All unit tests are built using the unittest
module from the standard library.
python -m unittest discover tests/
Or, if you want a coverage report:
coverage run -m unittest discover tests
coverage report # show coverage report on stdout
coverage html && open htmlcov/index.html # show interactive coverage report in the browser
To run the linter:
./run_linter.sh
Contributions
Contributing is easy. Create a pull request, add tests, and get it approved!
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.
Source Distribution
pyenvconfig-0.1.0.tar.gz
(4.4 kB
view hashes)
Built Distribution
Close
Hashes for pyenvconfig-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 38425413ad5a712d69264782b869e8fae1e6673ab028c4ee453c5527bc069415 |
|
MD5 | aaede6862d805be9d6c519a190ce19f4 |
|
BLAKE2b-256 | 27ed276858a6818271a455709d863b182f06e878aeef9d7b850bcdf18d4dcba3 |