Skip to main content

A lightweight environment variables validator in python

Project description

EnvGuardian

A lightweight python environment variables validator

EnvGuardian is a lightweight Python library designed to ensure the presence of all required environment variables when your project is executed, thereby minimizing the occurrence of runtime errors. This functionality proves particularly valuable in scenarios where environment variables are specified in a .env or .env.example file, ensuring that all team members possess up-to-date versions of the mandatory variables in .env files.

By leveraging EnvGuardian, your development team can rest assured that the necessary environment variables are appropriately set before the project is run, safeguarding against common errors resulting from missing or incorrectly configured environment variables. This proactive approach not only enhances the stability and reliability of your applications but also promotes seamless collaboration among team members by streamlining the management of environment configurations.

Installation

pip install envguardian

Usage

In your project root create an Env.py file and define a variable called env_schema like so

# Env.py
from envguardian import Env

env_schema = {
    'DB_NAME': Env.string(),
    'ENVIRONMENT': Env.enum(['development', 'stage']),
    'PORT': Env.integer(),
    'DEBUG': Env.boolean(),
    'SOME_VAR': Env.float()
}

Somewhere else in your project, ideally, the entry point of your project, validate like so

from envguardian import Env

Env.validate()

If the validation fails, expect something like this, .validate() will throw a ValueError Exception.

Exception: {'DB_NAME': '`None` is not a string', 'ENVIRONMENT': "`None` is not one of: ['development', 'stage']", 'PORT': '`None` is not an integer', 'SOME_VAR': '`None` is not a float'}

You can also use EnvGuardian to get environment variables with their correct type, provided you have defined them in env_schema and the variable is present in environment variables.

from envguardian import Env

print(type(Env.get('DEBUG')))

Output : <class 'bool'>

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

envguardian-1.1.0.tar.gz (3.1 kB view details)

Uploaded Source

Built Distribution

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

envguardian-1.1.0-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

File details

Details for the file envguardian-1.1.0.tar.gz.

File metadata

  • Download URL: envguardian-1.1.0.tar.gz
  • Upload date:
  • Size: 3.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.11.4 Darwin/20.6.0

File hashes

Hashes for envguardian-1.1.0.tar.gz
Algorithm Hash digest
SHA256 7c9c59736c7c49e4906a345c528b59f5e4064aa6c62e6d1ae9128249124279e9
MD5 d78f6c887f629d9543ea70f1416fae2e
BLAKE2b-256 6c8bb83f87e60bad47a8d805ddb0c87ee2dbfa4741bd1e184d7195bea1e509d5

See more details on using hashes here.

File details

Details for the file envguardian-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: envguardian-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 4.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.11.4 Darwin/20.6.0

File hashes

Hashes for envguardian-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 73d556b177e8f8436c3e00a85e95e3e7b35f45cf49ee7225862448468a08b258
MD5 130f1f9ac6fa4c2077f16f81a9162749
BLAKE2b-256 095cdc244d6c8c6f74f7b7f48f5788ba3584984d28dba8867ac36507b4ddcb60

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