mirror of
https://github.com/hwchase17/langchain.git
synced 2025-08-12 06:13:36 +00:00
Co-authored-by: Maxime Grenu <69890511+cluster2600@users.noreply.github.com> Co-authored-by: Claude <claude@anthropic.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: jmaillefaud <jonathan.maillefaud@evooq.ch> Co-authored-by: Eugene Yurtsev <eyurtsev@gmail.com> Co-authored-by: tanwirahmad <tanwirahmad@users.noreply.github.com> Co-authored-by: Christophe Bornet <cbornet@hotmail.com> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: niceg <79145285+growmuye@users.noreply.github.com> Co-authored-by: Chaitanya varma <varmac301@gmail.com> Co-authored-by: dishaprakash <57954147+dishaprakash@users.noreply.github.com> Co-authored-by: Chester Curme <chester.curme@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Kanav Bansal <13186335+bansalkanav@users.noreply.github.com> Co-authored-by: Aleksandr Filippov <71711753+alex-feel@users.noreply.github.com> Co-authored-by: Alex Feel <afilippov@spotware.com>
36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
"""A unit test meant to catch accidental introduction of non-optional dependencies."""
|
|
|
|
from collections.abc import Mapping
|
|
from pathlib import Path
|
|
from typing import Any
|
|
|
|
import pytest
|
|
import toml
|
|
from packaging.requirements import Requirement
|
|
|
|
HERE = Path(__file__).parent
|
|
|
|
PYPROJECT_TOML = HERE / "../../pyproject.toml"
|
|
|
|
|
|
@pytest.fixture
|
|
def uv_conf() -> dict[str, Any]:
|
|
"""Load the pyproject.toml file."""
|
|
with PYPROJECT_TOML.open() as f:
|
|
return toml.load(f)
|
|
|
|
|
|
def test_required_dependencies(uv_conf: Mapping[str, Any]) -> None:
|
|
"""A test that checks if a new non-optional dependency is being introduced.
|
|
|
|
If this test is triggered, it means that a contributor is trying to introduce a new
|
|
required dependency. This should be avoided in most situations.
|
|
"""
|
|
# Get the dependencies from the [tool.poetry.dependencies] section
|
|
dependencies = uv_conf["project"]["dependencies"]
|
|
required_dependencies = {Requirement(dep).name for dep in dependencies}
|
|
|
|
assert sorted(required_dependencies) == sorted(
|
|
["langchain-core", "langchain-text-splitters", "langgraph", "pydantic"]
|
|
)
|