This commit is contained in:
Eugene Yurtsev
2024-08-15 22:02:39 -04:00
parent 2b286e879c
commit 06b7aa7139

View File

@@ -344,6 +344,12 @@ def secret_from_env(key: str, /) -> Callable[[], SecretStr]: ...
def secret_from_env(key: str, /, *, default: str) -> Callable[[], SecretStr]: ...
@overload
def secret_from_env(
key: Sequence[str], /, *, default: None
) -> Callable[[], Optional[SecretStr]]: ...
@overload
def secret_from_env(
key: str, /, *, default: None
@@ -355,7 +361,7 @@ def secret_from_env(key: str, /, *, error_message: str) -> Callable[[], SecretSt
def secret_from_env(
key: str,
key: Union[str, Sequence[str]],
/,
*,
default: Union[str, _NoDefaultType, None] = _NoDefault,
@@ -376,9 +382,14 @@ def secret_from_env(
def get_secret_from_env() -> Optional[SecretStr]:
"""Get a value from an environment variable."""
if key in os.environ:
return SecretStr(os.environ[key])
elif isinstance(default, str):
if isinstance(key, (list, tuple)):
for k in key:
if k in os.environ:
return SecretStr(os.environ[k])
if isinstance(key, str):
if key in os.environ:
return SecretStr(os.environ[key])
if isinstance(default, str):
return SecretStr(default)
elif isinstance(default, type(None)):
return None