dotenvy-py
A Python port of Rust's dotenvy with first-occurrence-wins behavior.
Features
- Loads environment variables from
.envfiles - Implements "first occurrence wins" behavior, matching Rust's dotenvy
- Searches for env files in parent directories
- Allows prioritized loading of multiple env files
- Fully typed with PEP 484 annotations
- 100% compatible API with Rust's dotenvy
Installation
pip install dotenvy-py
Usage
Basic Usage
import dotenvy_py
# Load .env file from current directory
env_path = dotenvy_py.dotenv()
if env_path:
print(f"Loaded environment from: {env_path}")
else:
print("No .env file found")
Loading Specific File
import dotenvy_py
# Load specific .env file
env_path = dotenvy_py.from_filename(".env.development")
if env_path:
print(f"Loaded environment from: {env_path}")
Search in Parent Directories
import dotenvy_py
# Find an env file in the current or parent directories
env_path = dotenvy_py.find_upwards(".env.production")
if env_path:
print(f"Found environment file at: {env_path}")
# Load it
dotenvy_py.from_filename(env_path)
Priority Loading (like .env.game_client then .env)
import dotenvy_py
# Load files in priority order (first file has highest priority)
loaded_files = dotenvy_py.load_with_priority([".env.game_client", ".env"])
if loaded_files:
print(f"Loaded environment files: {', '.join(str(p) for p in loaded_files)}")
else:
print("No environment files found")
First Occurrence Wins Behavior
Unlike the standard Python python-dotenv library where later definitions override earlier ones, dotenvy-py implements the "first occurrence wins" behavior:
- Environment variables that already exist in the process environment take precedence over variables in
.envfiles - The first definition of a variable in a file (or across multiple files) is used, later definitions are ignored
- This matches the behavior of Rust's
dotenvycrate
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
dotenvy_py-0.1.0.tar.gz
(6.1 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dotenvy_py-0.1.0.tar.gz.
File metadata
- Download URL: dotenvy_py-0.1.0.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2400dbff4cff884696d4902b8c04e63f5244938e2035a4a5642c7c3e398aa57f
|
|
| MD5 |
f9c2a7f7f2f953c1d38b9fa25db3c83c
|
|
| BLAKE2b-256 |
dd0f4acd6e7b31a0e0f07339ab95d473ac5508b0fb620e1d379c08e4fc28a822
|
File details
Details for the file dotenvy_py-0.1.0-py3-none-any.whl.
File metadata
- Download URL: dotenvy_py-0.1.0-py3-none-any.whl
- Upload date:
- Size: 6.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
806a0d209d3dd700c6e550eba6f532c53031d2800e10287797ad2116204fda84
|
|
| MD5 |
e1d2016fb1be6185e818222db71534b2
|
|
| BLAKE2b-256 |
ceadc2255557985c2cf0a2f855bf0d38cecc5808c08f3a976a3daa3e611ee1f4
|