Skip to main content

Environment variables verifier and type converter.

Project description

ExenENV

Environment variables verifier and type converter.

Installation

Library is available for installation from PyPI

$ pip install exenenv

Basic Usage

import os
from exenenv import EnvironmentProfile

os.environ["REQUIRED_VARIABLE"] = "20"  # assume it's set to this


class Environment(EnvironmentProfile):
    REQUIRED_VARIABLE: int
    DEFAULT_VALUE_VARIABLE: float = 30.0


env = Environment()
env.load()

print(f"{env.REQUIRED_VARIABLE=}\n{env.DEFAULT_VALUE_VARIABLE=}")
env.REQUIRED_VARIABLE=20
env.DEFAULT_VALUE_VARIABLE=30.0

Using EnvVars

import os
from exenenv import EnvironmentProfile, EnvVar

os.environ.update({
    "REQUIRED_VAR": "10",
    "ALT_NAME_VAR": "40",
    "CONVERTER_VAR": "gamer,coder,python"
})  # assume our environment is this


class Environment(EnvironmentProfile):
    REQUIRED_VAR: int
    DEFAULT_VALUE_VAR: str = EnvVar(default=20)
    OTHER_VAR: int = EnvVar(env_name="ALT_NAME_VAR")
    CONVERTER_VAR: list[str] = EnvVar(converter=lambda x: x.split(","))


env = Environment()
env.load()

print(f"""\
{env.REQUIRED_VAR=}
{env.DEFAULT_VALUE_VAR=}
{env.OTHER_VAR=}
{env.CONVERTER_VAR=}
""")
env.REQUIRED_VAR=10
env.DEFAULT_VALUE_VAR=20
env.OTHER_VAR=40
env.CONVERTER_VAR=['gamer', 'coder', 'python']

Union Typehints

Since v1.2, library supports converting to one of provided types.

import os
from exenenv import EnvironmentProfile

os.environ.update({
    "UNION_VAR": "union"
})


class Environment(EnvironmentProfile):
    UNION_VAR: int | str
    OPTIONAL_VAR: float | None = None


env = Environment()
env.load()

print(f"{env.UNION_VAR=}\n{env.OPTIONAL_VAR=}")
env.UNION_VAR='union'
env.OPTIONAL_VAR=None

In this case, converting to UNION_VAR to int, so library used next provided type. Default value for OPTIONAL_VAR still has to be declared explicitly.

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

exenenv-1.2.tar.gz (4.3 kB view hashes)

Uploaded Source

Built Distribution

exenenv-1.2-py3-none-any.whl (4.7 kB view hashes)

Uploaded Python 3

Supported by

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