Skip to main content

A minimal Python library to validate environment variables at startup. Zero dependencies.

Project description

envgate

CI codecov PyPI version Python License: MIT

A minimal Python library to validate environment variables at startup. Zero dependencies.

Why?

Instead of your app crashing at runtime because DATABASE_URL is missing, envgate validates everything at startup and tells you exactly what's wrong.

Installation

pip install envgate

Quick Start

from envgate import get_env, validate

# Get a single variable with type coercion
port = get_env("PORT", type="int", default=8000)
debug = get_env("DEBUG", type="bool", default=False)

# Or validate multiple variables at once
config = validate({
    "DATABASE_URL": {"type": "str"},
    "REDIS_URL": {"type": "str"},
    "PORT": {"type": "int", "default": 8000},
    "DEBUG": {"type": "bool", "default": False},
})

If DATABASE_URL is missing:

envgate.exceptions.MissingEnvVarError: Environment variable 'DATABASE_URL' is not set.

Supported Types

Type Example values
str Any string (default)
int "42", "-7", "0"
float "3.14", "42", "-2.5"
bool "true", "1", "yes", "on" / "false", "0", "no", "off"

Contributing

Contributions are welcome! Check out the CONTRIBUTING.md for guidelines.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

envgate-0.2.0.tar.gz (4.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

envgate-0.2.0-py3-none-any.whl (6.0 kB view details)

Uploaded Python 3

File details

Details for the file envgate-0.2.0.tar.gz.

File metadata

  • Download URL: envgate-0.2.0.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for envgate-0.2.0.tar.gz
Algorithm Hash digest
SHA256 3a3651bb8ac9f6bead2423a104eb3f0d6353f128b6d1f8272b0c8bf545ccc34e
MD5 7b89ba6373a1e15548ea636addd1b79e
BLAKE2b-256 ffc43f3e6e9bcaa457cc2744dc632a58929a87ceb82a0f67b635a42eba8ad6c0

See more details on using hashes here.

File details

Details for the file envgate-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: envgate-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 6.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for envgate-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 709ea330fef565daac81ac8e3b2ddd9ae7d8acf3b63581af4067bb29b756f4db
MD5 aac3b7f4aa649f118b8121d3b082600d
BLAKE2b-256 909ba795850d29c923a53f68c654da25a153894abc381cac4f5907310ad09a30

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page