diff --git a/libs/core/langchain_core/pydantic_v1/__init__.py b/libs/core/langchain_core/pydantic_v1/__init__.py index a00f50f7acc..846598170f7 100644 --- a/libs/core/langchain_core/pydantic_v1/__init__.py +++ b/libs/core/langchain_core/pydantic_v1/__init__.py @@ -1,7 +1,7 @@ def _raise_import_error() -> None: """Raise ImportError with a helpful message.""" raise ImportError( - "Please do not import from langchain_core.pydantic_v1.*." + "Please do not import from langchain_core.pydantic_v1. " "This module was a compatibility shim for pydantic v1, and should " "no longer be used " "Please update the code to import from Pydantic directly. " diff --git a/libs/core/langchain_core/pydantic_v1/dataclasses.py b/libs/core/langchain_core/pydantic_v1/dataclasses.py index a00f50f7acc..846598170f7 100644 --- a/libs/core/langchain_core/pydantic_v1/dataclasses.py +++ b/libs/core/langchain_core/pydantic_v1/dataclasses.py @@ -1,7 +1,7 @@ def _raise_import_error() -> None: """Raise ImportError with a helpful message.""" raise ImportError( - "Please do not import from langchain_core.pydantic_v1.*." + "Please do not import from langchain_core.pydantic_v1. " "This module was a compatibility shim for pydantic v1, and should " "no longer be used " "Please update the code to import from Pydantic directly. " diff --git a/libs/core/langchain_core/pydantic_v1/main.py b/libs/core/langchain_core/pydantic_v1/main.py index a00f50f7acc..846598170f7 100644 --- a/libs/core/langchain_core/pydantic_v1/main.py +++ b/libs/core/langchain_core/pydantic_v1/main.py @@ -1,7 +1,7 @@ def _raise_import_error() -> None: """Raise ImportError with a helpful message.""" raise ImportError( - "Please do not import from langchain_core.pydantic_v1.*." + "Please do not import from langchain_core.pydantic_v1. " "This module was a compatibility shim for pydantic v1, and should " "no longer be used " "Please update the code to import from Pydantic directly. " diff --git a/libs/core/tests/unit_tests/test_imports.py b/libs/core/tests/unit_tests/test_imports.py index 887811b5bd0..bd60ad99d96 100644 --- a/libs/core/tests/unit_tests/test_imports.py +++ b/libs/core/tests/unit_tests/test_imports.py @@ -12,6 +12,8 @@ def test_importable_all() -> None: if relative_path.endswith(".typed"): continue module_name = relative_path.split(".")[0] + if module_name.startswith("pydantic_v1"): + continue module = importlib.import_module("langchain_core." + module_name) all_ = getattr(module, "__all__", []) for cls_ in all_: @@ -42,6 +44,10 @@ def test_importable_all_via_subprocess() -> None: relative_path = Path(path).parts[-1] if relative_path.endswith(".typed"): continue + # pydantic_v1 has been deprecated and intentionally + # raises an ImportError when imported. + if relative_path.startswith("pydantic_v1"): + continue module_name = relative_path.split(".")[0] module_names.append(module_name) diff --git a/libs/langchain/langchain/pydantic_v1/__init__.py b/libs/langchain/langchain/pydantic_v1/__init__.py index 6fc19904561..0b81abb52c3 100644 --- a/libs/langchain/langchain/pydantic_v1/__init__.py +++ b/libs/langchain/langchain/pydantic_v1/__init__.py @@ -1,7 +1,7 @@ def _raise_import_error() -> None: """Raise ImportError with a helpful message.""" raise ImportError( - "Please do not import from langchain.pydantic_v1.*." + "Please do not import from langchain.pydantic_v1. " "This module was a compatibility shim for pydantic v1, and should " "no longer be used " "Please update the code to import from Pydantic directly. " diff --git a/libs/langchain/langchain/pydantic_v1/main.py b/libs/langchain/langchain/pydantic_v1/main.py index 6fc19904561..0b81abb52c3 100644 --- a/libs/langchain/langchain/pydantic_v1/main.py +++ b/libs/langchain/langchain/pydantic_v1/main.py @@ -1,7 +1,7 @@ def _raise_import_error() -> None: """Raise ImportError with a helpful message.""" raise ImportError( - "Please do not import from langchain.pydantic_v1.*." + "Please do not import from langchain.pydantic_v1. " "This module was a compatibility shim for pydantic v1, and should " "no longer be used " "Please update the code to import from Pydantic directly. " diff --git a/libs/langchain/tests/unit_tests/test_imports.py b/libs/langchain/tests/unit_tests/test_imports.py index 366a2aa3400..4c79afd460f 100644 --- a/libs/langchain/tests/unit_tests/test_imports.py +++ b/libs/langchain/tests/unit_tests/test_imports.py @@ -24,6 +24,11 @@ def test_import_all() -> None: # Without init module_name = module_name.rsplit(".", 1)[0] + # pydantic_v1 name space is deprecated and will intentionally raise an + # ImportError + if module_name.startswith("langchain.pydantic_v1"): + continue + mod = importlib.import_module(module_name) all = getattr(mod, "__all__", []) @@ -61,6 +66,11 @@ def test_import_all_using_dir() -> None: if module_name.startswith("langchain_community.") and COMMUNITY_NOT_INSTALLED: continue + # pydantic_v1 name space is deprecated and will intentionally raise an + # ImportError + if module_name.startswith("langchain.pydantic_v1"): + continue + try: mod = importlib.import_module(module_name) except ModuleNotFoundError as e: