From 06b7aa713967823a0cedaa5216e01bb51e4d8d13 Mon Sep 17 00:00:00 2001 From: Eugene Yurtsev Date: Thu, 15 Aug 2024 22:02:39 -0400 Subject: [PATCH] x --- libs/core/langchain_core/utils/utils.py | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/libs/core/langchain_core/utils/utils.py b/libs/core/langchain_core/utils/utils.py index 0956ea1dd90..89b7f1d7a7f 100644 --- a/libs/core/langchain_core/utils/utils.py +++ b/libs/core/langchain_core/utils/utils.py @@ -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