Envolved
Envolved is a library to make environment variable parsing powerful and effortless.
documentation: https://envolved.readthedocs.io/en/latest/
from envolved import env_var, EnvVar
foo: EnvVar[int] = env_var('FOO', type=int, default=0)
value_of_foo = foo.get()
from typing import List, Optional
from envolved.parsers import CollectionParser
foo = env_var('FOO', type=CollectionParser(',', int))
foo.get()
from dataclasses import dataclass
@dataclass
class ConnectionSetting:
host: str
port: int
user: Optional[str]
password: Optional[str]
connection_settings: EnvVar[ConnectionSetting] = env_var('service_', type=ConnectionSetting, args={
'host': env_var('hostname'),
'port': env_var('port'),
'user': env_var('username', type=str),
'password': env_var('password', type=str, default=None)
})
service_connection_settings: ConnectionSetting = connection_settings.get()