Skip to content

marcinn/dsenv

Repository files navigation

dsenv

Python PyPI - Python Version PyPI Downloads PyPI Version GitHub Stars License

Damn Simple Environment Variables loader for Python. Supports Python 3.7 and newer.

Install

pip install dsenv

Usage

from dsenv import load_env, load_merged_envs

# Load from ~/.env
load_env()

# Load from a custom path
load_env("./.env", override_env=False)

# Force override values already present in the environment
load_env("./.env", override_env=True)

# Merge multiple env files (later files win), but keep existing process env vars
load_merged_envs(".env", ".env.local", override_env=False)

# Merge multiple env files and override existing process env vars
load_merged_envs(".env", ".env.local", override_env=True)

Supported .env Syntax

  • KEY=VALUE
  • export KEY=VALUE
  • KEY="VALUE" or KEY='VALUE'
  • Comments with # on empty lines or after unquoted values

Tests

pytest

Or use tox (if you have multiple Python versions installed):

tox

TODO

  • Add more parser behavior tests (especially edge cases) before changing parsing rules.
  • Expand support for escape sequences in quoted values (starting with double quotes).
  • Refine comment parsing edge cases (quoted vs unquoted values, # handling).
  • Evaluate multiline values support.
  • Evaluate variable interpolation support.

License

BSD-3

About

Damn simple env vars management

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors