Skip to main content

dotenv-utils

Release Status Doc Status Test Status Coverage Status

A tiny, self-contained package for parsing environment variables. Works well in conjunction with python-dotenv.

For a full-fledged solution, look at environs instead.

Docs

You can find the documentation for the project online.

Installation

You can install the package via pip, with pip install dotenv-utils.

Usage

Basic usage looks like this:

# Load environment variables with python-dotenv (optional):
from dotenv import load_dotenv

load_dotenv()

# Basic functions to parse values and lists of values
from dotenv_utils import get_var, get_var_list

# Read a required variable (raises if missing):
SECRET_KEY: str = get_var("SECRET_KEY")  # e.g., "s3cr3t"

# Read an optional variable with default:
PROTOCOL: str = get_var("PROTOCOL", default="tcp")  # may be undefined

# Use a cast to set the value type:
PORT: int = get_var("PORT", cast=int)  # e.g., "22"

# Read a list from a semicolon-separated variable:
ALLOWED_HOSTS: list[str] = get_var_list(  # e.g., "example.com; my.domain.tld"
   "ALLOWED_HOSTS",
   default=["localhost"],
)

# By default, values are split by `;`. Pass, e.g., `sep=","` to use commas.
PORTS: list[int] = get_var_list(  # e.g., "22, 53, 80"
   "PORTS",
   sep=",",  # use commas
   cast=int,  # cast elements to int
)

# Examples of useful convenience functions from `dotenv_utils.casts`:
from dotenv_utils.casts import str2bool, str2timedelta
from datetime import timedelta

# The `str2bool` function will handle common ways to specify true/false as strings
DEBUG: bool = get_var("DEBUG", default=False, cast=str2bool)

# You can also use more exotic types - check the docs to see what's available
default_ttl = str2timedelta("5m")  # default arg is not cast - similar to argparse
CACHE_TTL: timedelta = get_var("CACHE_TTL", default=default_ttl, cast=str2timedelta)

Contributing

Contributions are welcome! To get started:

  1. Fork the repository and clone your fork.
  2. Create and activate a virtual environment.
    python -m venv .venv
    source .venv/bin/activate
    
  3. Install development dependencies in editable mode.
    python -m pip install -e .[dev]
    
  4. Run the test suite and linters, and build1 the documentation.
    # see make help for all available rules
    make chores  # outputs are logged in logs/
    make docs  # output goes to docs/build
    
    The chores should not give you any complaints.
  5. If everything looks good, you can open a pull request. Use Conventional Commits in your commit messages.
  1. Documentation is built with Sphinx. Certain LaTeX packages might be required for the PDF.

Release files for dotenv-utils 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dotenv-utils 0.2.1
File Size Uploaded
dotenv_utils-0.2.1.tar.gz 13.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dotenv-utils 0.2.1
File Interpreter ABI Platform
dotenv_utils-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size:20.0 kB

Release files / dotenv_utils-0.2.1.tar.gz

Download URL dotenv_utils-0.2.1.tar.gz
Size 13.3 kB
Tags Source
SHA-256 checksum
How to use checksums
1f9e4845ff1c76892484dab902db281c8c9588b88f5160f1622873fa5d54930b
BLAKE2b-256 checksum
How to use checksums
2bc98abcda9d350011087c868198cbf3190b719343d5a896b67fe08c7bb47adc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2025.

Transparency log

Release files / dotenv_utils-0.2.1-py3-none-any.whl

Download URL dotenv_utils-0.2.1-py3-none-any.whl
Size 6.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dd51f6c2315428c3c8e7dcedd279934161eb59796983770e8f1fe6c67c1b508c
BLAKE2b-256 checksum
How to use checksums
27a39891bf1896e418c09f3915c1eb936e07f8be7429fbf97b9b7537022560f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 20, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page