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
Release history Release notifications | RSS feed
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)
Built Distribution
exenenv-1.2-py3-none-any.whl
(4.7 kB
view details)
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a4be67108f0d1128804b919b798cb4f56acd04a446b9f3907a0bb8abf1ae258 |
|
MD5 | c0522a6d8df532296b540278fc5e6ba0 |
|
BLAKE2b-256 | 172888f5aaf260091e76abc03c27507e2f8a7e31ff9ef0452843813d21e371a0 |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | ceb2de0c87a581c099d51076a246b5a43474ec466551fb7468a7078dea1000ee |
|
MD5 | 639c7464296056415b0678050a786e6a |
|
BLAKE2b-256 | 6b76980147f8fa3beadc6dc9e5451f373c7187961eb06ff36e29198450adb200 |