poetry-plugin-dotenv - is the plugin that automatically loads environment variables from a dotenv file into the environment before poetry commands are run.
Project description
🔮 Overview
poetry-plugin-dotenv
- is the plugin that automatically loads environment variables from a dotenv file into the environment before poetry
commands are run.
Features
- 📦 Doesn't require any dependencies
- 📝 Supports templates, interpolating variables using POSIX variable expansions
- 🔮 Fully type safe
- 🥷🏻 100% tests coverage and "A" grade for maintainability
⚙️ Installation
poetry self add poetry-plugin-dotenv
👩🏻💻 Usage
By default, plugin will load the .env
file from the current working directory or "higher directories".
To prevent poetry
from loading the dotenv file, set the POETRY_DONT_LOAD_DOTENV
environment variable.
If your dotenv file is located in a different path or has a different name you may set the POETRY_DOTENV_LOCATION
environment variable.
# .env
DB__HOST=localhost
DB__DBNAME=prod
DB__USER=admin
DB__PASSWORD=admin
DB__ENGINE=postgresql://${DB__USER}:${DB__PASSWORD}@${DB__HOST}/${DB__DBNAME}
# .env.dev
DB__HOST=localhost
DB__DBNAME=dev
DB__USER=root
DB__PASSWORD=root
DB__ENGINE=postgresql://${DB__USER}:${DB__PASSWORD}@${DB__HOST}/${DB__DBNAME}
# main.py
import os
if __name__ == "__main__":
try:
print(f"Host: {os.environ['DB__HOST']!r}")
print(f"Name: {os.environ['DB__DBNAME']!r}")
print(f"Username: {os.environ['DB__USER']!r}")
print(f"Password: {os.environ['DB__PASSWORD']!r}")
print(f"Engine: {os.environ['DB__ENGINE']!r}")
except KeyError:
print("Environment variables not set!")
poetry run -vvv python main.py
# Loading environment variables from '.env'.
# Host: 'localhost'
# Name: 'prod'
# Username: 'admin'
# Password: 'admin'
# Engine 'postgresql://admin:admin@localhost/prod'
export POETRY_DOTENV_LOCATION=.env.dev && poetry run -vvv python main.py
# Loading environment variables from '.env.dev'.
# Host: 'localhost'
# Name: 'dev'
# Username: 'root'
# Password: 'root'
# Engine 'postgresql://root:root@localhost/dev'
export POETRY_DONT_LOAD_DOTENV=1 && poetry run -vvv python main.py
# Not loading environment variables.
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
Built Distribution
Hashes for poetry_plugin_dotenv-0.6.12.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8073ab4eed000719077af6e72deae4b2ee952fc743417b2038e9eb96dd64058f |
|
MD5 | 3d81e2cc6ef6c4e33b93015419a6ee0d |
|
BLAKE2b-256 | 335ad00c8f4268cfbce7975a1dd672be5c5aea2a4ba07ba7b7d01506f976d886 |
Hashes for poetry_plugin_dotenv-0.6.12-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6b7f4e52e6d02bc6f78e7c87ed5e8f9dc71566a71dbb2a6c491e8397c2736c1d |
|
MD5 | 31d8c94642e2ff93ab2785a45893b3a4 |
|
BLAKE2b-256 | 2a2ebda1365afae37f3fc11bc97c75364cb93882039018ee2cacd9ed6f6d0f49 |