diff --git a/libs/community/langchain_community/utilities/bibtex.py b/libs/community/langchain_community/utilities/bibtex.py index 45d83aefea3..f9d4e880411 100644 --- a/libs/community/langchain_community/utilities/bibtex.py +++ b/libs/community/langchain_community/utilities/bibtex.py @@ -40,7 +40,7 @@ class BibtexparserWrapper(BaseModel): extra = Extra.forbid - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that the python package exists in environment.""" try: diff --git a/libs/community/langchain_community/utilities/cassandra_database.py b/libs/community/langchain_community/utilities/cassandra_database.py index 6b607c4c435..3d04c8cba68 100644 --- a/libs/community/langchain_community/utilities/cassandra_database.py +++ b/libs/community/langchain_community/utilities/cassandra_database.py @@ -482,7 +482,7 @@ class Table(BaseModel): class Config: frozen = True - @root_validator() + @root_validator(pre=False, skip_on_failure=True) def check_required_fields(cls, class_values: dict) -> dict: if not class_values["columns"]: raise ValueError("non-empty column list for must be provided") diff --git a/libs/community/langchain_community/utilities/clickup.py b/libs/community/langchain_community/utilities/clickup.py index 5d82a004168..6c05ec7dae1 100644 --- a/libs/community/langchain_community/utilities/clickup.py +++ b/libs/community/langchain_community/utilities/clickup.py @@ -323,7 +323,7 @@ class ClickupAPIWrapper(BaseModel): return data["access_token"] - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that api key and python package exists in environment.""" values["access_token"] = get_from_dict_or_env( diff --git a/libs/community/langchain_community/utilities/dalle_image_generator.py b/libs/community/langchain_community/utilities/dalle_image_generator.py index 6dddb710be8..fe7e8ddbaf9 100644 --- a/libs/community/langchain_community/utilities/dalle_image_generator.py +++ b/libs/community/langchain_community/utilities/dalle_image_generator.py @@ -89,7 +89,7 @@ class DallEAPIWrapper(BaseModel): values["model_kwargs"] = extra return values - @root_validator() + @root_validator(pre=False, skip_on_failure=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that api key and python package exists in environment.""" values["openai_api_key"] = get_from_dict_or_env( diff --git a/libs/community/langchain_community/utilities/dataforseo_api_search.py b/libs/community/langchain_community/utilities/dataforseo_api_search.py index 16c90fc4ff6..a2a1602c97a 100644 --- a/libs/community/langchain_community/utilities/dataforseo_api_search.py +++ b/libs/community/langchain_community/utilities/dataforseo_api_search.py @@ -42,7 +42,7 @@ class DataForSeoAPIWrapper(BaseModel): aiosession: Optional[aiohttp.ClientSession] = None """The aiohttp session to use for the DataForSEO SERP API.""" - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that login and password exists in environment.""" login = get_from_dict_or_env(values, "api_login", "DATAFORSEO_LOGIN") diff --git a/libs/community/langchain_community/utilities/dataherald.py b/libs/community/langchain_community/utilities/dataherald.py index a085e23bb15..48f39c712dd 100644 --- a/libs/community/langchain_community/utilities/dataherald.py +++ b/libs/community/langchain_community/utilities/dataherald.py @@ -26,7 +26,7 @@ class DataheraldAPIWrapper(BaseModel): extra = Extra.forbid - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that api key and python package exists in environment.""" dataherald_api_key = get_from_dict_or_env( diff --git a/libs/community/langchain_community/utilities/duckduckgo_search.py b/libs/community/langchain_community/utilities/duckduckgo_search.py index 2797f385d85..af109aa1beb 100644 --- a/libs/community/langchain_community/utilities/duckduckgo_search.py +++ b/libs/community/langchain_community/utilities/duckduckgo_search.py @@ -41,7 +41,7 @@ class DuckDuckGoSearchAPIWrapper(BaseModel): extra = Extra.forbid - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that python package exists in environment.""" try: diff --git a/libs/community/langchain_community/utilities/github.py b/libs/community/langchain_community/utilities/github.py index de6cdaf97bb..a437284087f 100644 --- a/libs/community/langchain_community/utilities/github.py +++ b/libs/community/langchain_community/utilities/github.py @@ -42,7 +42,7 @@ class GitHubAPIWrapper(BaseModel): extra = Extra.forbid - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that api key and python package exists in environment.""" github_repository = get_from_dict_or_env( diff --git a/libs/community/langchain_community/utilities/gitlab.py b/libs/community/langchain_community/utilities/gitlab.py index d17c1b8e72a..d7d7c2a9d7c 100644 --- a/libs/community/langchain_community/utilities/gitlab.py +++ b/libs/community/langchain_community/utilities/gitlab.py @@ -34,7 +34,7 @@ class GitLabAPIWrapper(BaseModel): extra = Extra.forbid - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that api key and python package exists in environment.""" diff --git a/libs/community/langchain_community/utilities/golden_query.py b/libs/community/langchain_community/utilities/golden_query.py index baeb3ddf96a..6ec5c6a69a3 100644 --- a/libs/community/langchain_community/utilities/golden_query.py +++ b/libs/community/langchain_community/utilities/golden_query.py @@ -28,7 +28,7 @@ class GoldenQueryAPIWrapper(BaseModel): extra = Extra.forbid - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that api key and python package exists in environment.""" golden_api_key = get_from_dict_or_env( diff --git a/libs/community/langchain_community/utilities/google_finance.py b/libs/community/langchain_community/utilities/google_finance.py index 95e5b0c2e15..a93ff38edcf 100644 --- a/libs/community/langchain_community/utilities/google_finance.py +++ b/libs/community/langchain_community/utilities/google_finance.py @@ -29,7 +29,7 @@ class GoogleFinanceAPIWrapper(BaseModel): extra = Extra.forbid - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that api key and python package exists in environment.""" values["serp_api_key"] = convert_to_secret_str( diff --git a/libs/community/langchain_community/utilities/google_jobs.py b/libs/community/langchain_community/utilities/google_jobs.py index d532cbffd02..b495ab8978d 100644 --- a/libs/community/langchain_community/utilities/google_jobs.py +++ b/libs/community/langchain_community/utilities/google_jobs.py @@ -29,7 +29,7 @@ class GoogleJobsAPIWrapper(BaseModel): extra = Extra.forbid - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that api key and python package exists in environment.""" values["serp_api_key"] = convert_to_secret_str( diff --git a/libs/community/langchain_community/utilities/google_lens.py b/libs/community/langchain_community/utilities/google_lens.py index 98b796fddad..a515b7fb89c 100644 --- a/libs/community/langchain_community/utilities/google_lens.py +++ b/libs/community/langchain_community/utilities/google_lens.py @@ -35,7 +35,7 @@ class GoogleLensAPIWrapper(BaseModel): extra = Extra.forbid - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that api key and python package exists in environment.""" values["serp_api_key"] = convert_to_secret_str( diff --git a/libs/community/langchain_community/utilities/google_places_api.py b/libs/community/langchain_community/utilities/google_places_api.py index c5c8d0f6190..a6ce9f957b3 100644 --- a/libs/community/langchain_community/utilities/google_places_api.py +++ b/libs/community/langchain_community/utilities/google_places_api.py @@ -43,7 +43,7 @@ class GooglePlacesAPIWrapper(BaseModel): extra = Extra.forbid arbitrary_types_allowed = True - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that api key is in your environment variable.""" gplaces_api_key = get_from_dict_or_env( diff --git a/libs/community/langchain_community/utilities/google_scholar.py b/libs/community/langchain_community/utilities/google_scholar.py index 49b2677d7f7..18a402df669 100644 --- a/libs/community/langchain_community/utilities/google_scholar.py +++ b/libs/community/langchain_community/utilities/google_scholar.py @@ -50,7 +50,7 @@ class GoogleScholarAPIWrapper(BaseModel): extra = Extra.forbid - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that api key and python package exists in environment.""" serp_api_key = get_from_dict_or_env(values, "serp_api_key", "SERP_API_KEY") diff --git a/libs/community/langchain_community/utilities/google_search.py b/libs/community/langchain_community/utilities/google_search.py index 68eae777123..e8140aaef50 100644 --- a/libs/community/langchain_community/utilities/google_search.py +++ b/libs/community/langchain_community/utilities/google_search.py @@ -69,7 +69,7 @@ class GoogleSearchAPIWrapper(BaseModel): res = cse.list(q=search_term, cx=self.google_cse_id, **kwargs).execute() return res.get("items", []) - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that api key and python package exists in environment.""" google_api_key = get_from_dict_or_env( diff --git a/libs/community/langchain_community/utilities/google_serper.py b/libs/community/langchain_community/utilities/google_serper.py index 6701b56e584..348e62d95f3 100644 --- a/libs/community/langchain_community/utilities/google_serper.py +++ b/libs/community/langchain_community/utilities/google_serper.py @@ -46,7 +46,7 @@ class GoogleSerperAPIWrapper(BaseModel): arbitrary_types_allowed = True - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that api key exists in environment.""" serper_api_key = get_from_dict_or_env( diff --git a/libs/community/langchain_community/utilities/google_trends.py b/libs/community/langchain_community/utilities/google_trends.py index 59df3448560..14d9291a708 100644 --- a/libs/community/langchain_community/utilities/google_trends.py +++ b/libs/community/langchain_community/utilities/google_trends.py @@ -33,7 +33,7 @@ class GoogleTrendsAPIWrapper(BaseModel): extra = Extra.forbid - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that api key and python package exists in environment.""" values["serp_api_key"] = convert_to_secret_str( diff --git a/libs/community/langchain_community/utilities/jira.py b/libs/community/langchain_community/utilities/jira.py index 334f06622fc..c03d3badfea 100644 --- a/libs/community/langchain_community/utilities/jira.py +++ b/libs/community/langchain_community/utilities/jira.py @@ -21,7 +21,7 @@ class JiraAPIWrapper(BaseModel): extra = Extra.forbid - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that api key and python package exists in environment.""" jira_username = get_from_dict_or_env( diff --git a/libs/community/langchain_community/utilities/merriam_webster.py b/libs/community/langchain_community/utilities/merriam_webster.py index 4904d01faa2..31b6571ec7b 100644 --- a/libs/community/langchain_community/utilities/merriam_webster.py +++ b/libs/community/langchain_community/utilities/merriam_webster.py @@ -32,7 +32,7 @@ class MerriamWebsterAPIWrapper(BaseModel): extra = Extra.forbid - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that api key exists in environment.""" merriam_webster_api_key = get_from_dict_or_env( diff --git a/libs/community/langchain_community/utilities/outline.py b/libs/community/langchain_community/utilities/outline.py index b9a4e3cad4d..c10b3e1cc5d 100644 --- a/libs/community/langchain_community/utilities/outline.py +++ b/libs/community/langchain_community/utilities/outline.py @@ -27,7 +27,7 @@ class OutlineAPIWrapper(BaseModel): outline_api_key: Optional[str] = None outline_search_endpoint: str = "/api/documents.search" - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that instance url and api key exists in environment.""" outline_instance_url = get_from_dict_or_env( diff --git a/libs/community/langchain_community/utilities/polygon.py b/libs/community/langchain_community/utilities/polygon.py index e98d772e364..906a34e6d44 100644 --- a/libs/community/langchain_community/utilities/polygon.py +++ b/libs/community/langchain_community/utilities/polygon.py @@ -17,7 +17,7 @@ class PolygonAPIWrapper(BaseModel): polygon_api_key: Optional[str] = None - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that api key in environment.""" polygon_api_key = get_from_dict_or_env( diff --git a/libs/community/langchain_community/utilities/pubmed.py b/libs/community/langchain_community/utilities/pubmed.py index 8b67f259735..ab541b02b31 100644 --- a/libs/community/langchain_community/utilities/pubmed.py +++ b/libs/community/langchain_community/utilities/pubmed.py @@ -48,7 +48,7 @@ class PubMedAPIWrapper(BaseModel): doc_content_chars_max: int = 2000 email: str = "your_email@example.com" - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that the python package exists in environment.""" try: diff --git a/libs/community/langchain_community/utilities/reddit_search.py b/libs/community/langchain_community/utilities/reddit_search.py index e17971b1b2c..6192c033b36 100644 --- a/libs/community/langchain_community/utilities/reddit_search.py +++ b/libs/community/langchain_community/utilities/reddit_search.py @@ -30,7 +30,7 @@ class RedditSearchAPIWrapper(BaseModel): reddit_client_secret: Optional[str] reddit_user_agent: Optional[str] - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that the API ID, secret and user agent exists in environment and check that praw module is present. diff --git a/libs/community/langchain_community/utilities/rememberizer.py b/libs/community/langchain_community/utilities/rememberizer.py index 4f46317da95..aaaa0f20414 100644 --- a/libs/community/langchain_community/utilities/rememberizer.py +++ b/libs/community/langchain_community/utilities/rememberizer.py @@ -13,7 +13,7 @@ class RememberizerAPIWrapper(BaseModel): top_k_results: int = 10 rememberizer_api_key: Optional[str] = None - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that api key in environment.""" rememberizer_api_key = get_from_dict_or_env( diff --git a/libs/community/langchain_community/utilities/searchapi.py b/libs/community/langchain_community/utilities/searchapi.py index 3934b59d0ed..ea6f9125ff0 100644 --- a/libs/community/langchain_community/utilities/searchapi.py +++ b/libs/community/langchain_community/utilities/searchapi.py @@ -32,7 +32,7 @@ class SearchApiAPIWrapper(BaseModel): arbitrary_types_allowed = True - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that API key exists in environment.""" searchapi_api_key = get_from_dict_or_env( diff --git a/libs/community/langchain_community/utilities/searx_search.py b/libs/community/langchain_community/utilities/searx_search.py index 0ddbf738c08..1387e907fad 100644 --- a/libs/community/langchain_community/utilities/searx_search.py +++ b/libs/community/langchain_community/utilities/searx_search.py @@ -229,10 +229,10 @@ class SearxSearchWrapper(BaseModel): return v - @root_validator() + @root_validator(pre=True) def validate_params(cls, values: Dict) -> Dict: """Validate that custom searx params are merged with default ones.""" - user_params = values["params"] + user_params = values.get("params", {}) default = _get_default_params() values["params"] = {**default, **user_params} diff --git a/libs/community/langchain_community/utilities/semanticscholar.py b/libs/community/langchain_community/utilities/semanticscholar.py index 7e9f03876e3..bfd9ef2c64d 100644 --- a/libs/community/langchain_community/utilities/semanticscholar.py +++ b/libs/community/langchain_community/utilities/semanticscholar.py @@ -50,7 +50,7 @@ class SemanticScholarAPIWrapper(BaseModel): "externalIds", ] - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that the python package exists in environment.""" try: diff --git a/libs/community/langchain_community/utilities/serpapi.py b/libs/community/langchain_community/utilities/serpapi.py index 35ecf38de38..53d818eeff5 100644 --- a/libs/community/langchain_community/utilities/serpapi.py +++ b/libs/community/langchain_community/utilities/serpapi.py @@ -57,7 +57,7 @@ class SerpAPIWrapper(BaseModel): extra = Extra.forbid arbitrary_types_allowed = True - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that api key and python package exists in environment.""" serpapi_api_key = get_from_dict_or_env( diff --git a/libs/community/langchain_community/utilities/stackexchange.py b/libs/community/langchain_community/utilities/stackexchange.py index 6ad72b42541..777022cdc82 100644 --- a/libs/community/langchain_community/utilities/stackexchange.py +++ b/libs/community/langchain_community/utilities/stackexchange.py @@ -19,7 +19,7 @@ class StackExchangeAPIWrapper(BaseModel): result_separator: str = "\n\n" """Separator between question,answer pairs.""" - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that the required Python package exists.""" try: diff --git a/libs/community/langchain_community/utilities/tensorflow_datasets.py b/libs/community/langchain_community/utilities/tensorflow_datasets.py index 8f96c9c0c29..197c2f4c0f8 100644 --- a/libs/community/langchain_community/utilities/tensorflow_datasets.py +++ b/libs/community/langchain_community/utilities/tensorflow_datasets.py @@ -60,7 +60,7 @@ class TensorflowDatasets(BaseModel): sample_to_document_function: Optional[Callable[[Dict], Document]] = None dataset: Any #: :meta private: - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that the python package exists in environment.""" try: diff --git a/libs/community/langchain_community/utilities/twilio.py b/libs/community/langchain_community/utilities/twilio.py index d1c3fce5827..563db6ef889 100644 --- a/libs/community/langchain_community/utilities/twilio.py +++ b/libs/community/langchain_community/utilities/twilio.py @@ -48,7 +48,7 @@ class TwilioAPIWrapper(BaseModel): extra = Extra.forbid arbitrary_types_allowed = False - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that api key and python package exists in environment.""" try: diff --git a/libs/community/langchain_community/utilities/wikidata.py b/libs/community/langchain_community/utilities/wikidata.py index c31009d78d6..8ea4122d915 100644 --- a/libs/community/langchain_community/utilities/wikidata.py +++ b/libs/community/langchain_community/utilities/wikidata.py @@ -92,7 +92,7 @@ class WikidataAPIWrapper(BaseModel): wikidata_props: List[str] = DEFAULT_PROPERTIES lang: str = DEFAULT_LANG_CODE - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that the python package exists in environment.""" try: diff --git a/libs/community/langchain_community/utilities/wikipedia.py b/libs/community/langchain_community/utilities/wikipedia.py index 3755368efce..4f0e4684d5e 100644 --- a/libs/community/langchain_community/utilities/wikipedia.py +++ b/libs/community/langchain_community/utilities/wikipedia.py @@ -26,13 +26,14 @@ class WikipediaAPIWrapper(BaseModel): load_all_available_meta: bool = False doc_content_chars_max: int = 4000 - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that the python package exists in environment.""" try: import wikipedia - wikipedia.set_lang(values["lang"]) + lang = values.get("lang", "en") + wikipedia.set_lang(lang) values["wiki_client"] = wikipedia except ImportError: raise ImportError( diff --git a/libs/community/langchain_community/utilities/wolfram_alpha.py b/libs/community/langchain_community/utilities/wolfram_alpha.py index 079453a0cb3..0c76ed159da 100644 --- a/libs/community/langchain_community/utilities/wolfram_alpha.py +++ b/libs/community/langchain_community/utilities/wolfram_alpha.py @@ -25,7 +25,7 @@ class WolframAlphaAPIWrapper(BaseModel): extra = Extra.forbid - @root_validator() + @root_validator(pre=True) def validate_environment(cls, values: Dict) -> Dict: """Validate that api key and python package exists in environment.""" wolfram_alpha_appid = get_from_dict_or_env(