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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

Details for the file exenenv-1.2.tar.gz.

File metadata

  • Download URL: exenenv-1.2.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.1 CPython/3.10.6 Linux/5.15.0-1024-azure

File hashes

Hashes for exenenv-1.2.tar.gz
Algorithm Hash digest
SHA256 6a4be67108f0d1128804b919b798cb4f56acd04a446b9f3907a0bb8abf1ae258
MD5 c0522a6d8df532296b540278fc5e6ba0
BLAKE2b-256 172888f5aaf260091e76abc03c27507e2f8a7e31ff9ef0452843813d21e371a0

See more details on using hashes here.

File details

Details for the file exenenv-1.2-py3-none-any.whl.

File metadata

  • Download URL: exenenv-1.2-py3-none-any.whl
  • Upload date:
  • Size: 4.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.3.1 CPython/3.10.6 Linux/5.15.0-1024-azure

File hashes

Hashes for exenenv-1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ceb2de0c87a581c099d51076a246b5a43474ec466551fb7468a7078dea1000ee
MD5 639c7464296056415b0678050a786e6a
BLAKE2b-256 6b76980147f8fa3beadc6dc9e5451f373c7187961eb06ff36e29198450adb200

See more details on using hashes here.

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