https://github.com/sayanarijit/enva
A simple, consolidated settings.py
https://github.com/sayanarijit/enva
Last synced: 4 months ago
JSON representation
A simple, consolidated settings.py
- Host: GitHub
- URL: https://github.com/sayanarijit/enva
- Owner: sayanarijit
- License: mit
- Created: 2022-06-21T11:56:27.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-12-19T07:25:18.000Z (almost 3 years ago)
- Last Synced: 2025-04-08T09:52:05.372Z (6 months ago)
- Language: Python
- Homepage: https://arijitbasu.in/notes/Configuration%20Environments%20and%20Secrets/
- Size: 121 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# enva
A simple, consolidated `settings.py`.
Why? Read my opinion on [Configuration, Environments and Secrets](https://arijitbasu.in/notes/Configuration%20Environments%20and%20Secrets/).
Usage:
```python
# export ENVIRONMENT=PRODUCTION
# export DATABASE_URL="postgres://prod:prod@localhost:5432/postgres"import enva
# You can define as many environments as you want.
env = enva.define("ENVIRONMENT", dev="DEVELOPMENT", stage="STAGING", prod="PRODUCTION")
# Or env = enva.define("ENVIRONMENT", "dev", "stage", "prod")DATABASE_URL = env(
"postgres://localhost:5432/postgres", # Default value
dev="postgres://dev:dev@localhost:5432/postgres", # When $ENVIRONMENT == DEVELOPMENT
stage="postgres://stage:stage@localhost:5432/postgres", # When $ENVIRONMENT == STAGING
prod=enva.environ("DATABASE_URL", type=str), # When $ENVIRONMENT == PRODUCTION
)print(DATABASE_URL)
# postgres://prod:prod@localhost:5432/postgres
```