mirror of
https://github.com/hwchase17/langchain
synced 2024-11-06 03:20:49 +00:00
core[patch]: update test to catch circular imports (#23172)
This raises ImportError due to a circular import: ```python from langchain_core import chat_history ``` This does not: ```python from langchain_core import runnables from langchain_core import chat_history ``` Here we update `test_imports` to run each import in a separate subprocess. Open to other ways of doing this!
This commit is contained in:
parent
ae4c0ed25a
commit
2b08e9e265
@ -36,7 +36,6 @@ from langchain_core.runnables.config import (
|
||||
run_in_executor,
|
||||
)
|
||||
from langchain_core.runnables.fallbacks import RunnableWithFallbacks
|
||||
from langchain_core.runnables.history import RunnableWithMessageHistory
|
||||
from langchain_core.runnables.passthrough import (
|
||||
RunnableAssign,
|
||||
RunnablePassthrough,
|
||||
@ -79,7 +78,6 @@ __all__ = [
|
||||
"RunnablePick",
|
||||
"RunnableSequence",
|
||||
"RunnableWithFallbacks",
|
||||
"RunnableWithMessageHistory",
|
||||
"get_config_list",
|
||||
"aadd",
|
||||
"add",
|
||||
|
@ -26,7 +26,6 @@ EXPECTED_ALL = [
|
||||
"RunnablePick",
|
||||
"RunnableSequence",
|
||||
"RunnableWithFallbacks",
|
||||
"RunnableWithMessageHistory",
|
||||
"get_config_list",
|
||||
"aadd",
|
||||
"add",
|
||||
|
@ -1,7 +1,10 @@
|
||||
import glob
|
||||
import importlib
|
||||
import subprocess
|
||||
from pathlib import Path
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
def test_importable_all() -> None:
|
||||
for path in glob.glob("../core/langchain_core/*"):
|
||||
@ -13,3 +16,12 @@ def test_importable_all() -> None:
|
||||
all_ = getattr(module, "__all__", [])
|
||||
for cls_ in all_:
|
||||
getattr(module, cls_)
|
||||
|
||||
# Test import in isolation
|
||||
# Note: ImportErrors due to circular imports can be raised
|
||||
# for one sequence of imports but not another.
|
||||
result = subprocess.run(
|
||||
["python", "-c", f"import langchain_core.{module_name}"],
|
||||
)
|
||||
if result.returncode != 0:
|
||||
pytest.fail(f"Failed to import {module_name}.")
|
||||
|
Loading…
Reference in New Issue
Block a user