[build-system] requires = [ "poetry-core>=1.0.0",] build-backend = "poetry.core.masonry.api" [tool.poetry] name = "langchain-core" version = "0.3.29" description = "Building applications with LLMs through composability" authors = [] license = "MIT" readme = "README.md" repository = "https://github.com/langchain-ai/langchain" [tool.mypy] exclude = [ "notebooks", "examples", "example_data", "langchain_core/pydantic", "tests/unit_tests/utils/test_function_calling.py",] disallow_untyped_defs = "True" [[tool.mypy.overrides]] module = [ "numpy", "pytest",] ignore_missing_imports = true [tool.ruff] target-version = "py39" [tool.poetry.urls] "Source Code" = "https://github.com/langchain-ai/langchain/tree/master/libs/core" "Release Notes" = "https://github.com/langchain-ai/langchain/releases?q=tag%3A%22langchain-core%3D%3D0%22&expanded=true" [tool.poetry.dependencies] python = ">=3.9,<4.0" langsmith = ">=0.1.125,<0.3" tenacity = ">=8.1.0,!=8.4.0,<10.0.0" jsonpatch = "^1.33" PyYAML = ">=5.3" packaging = ">=23.2,<25" typing-extensions = ">=4.7" [[tool.poetry.dependencies.pydantic]] version = "^2.5.2" python = "<3.12.4" [[tool.poetry.dependencies.pydantic]] version = "^2.7.4" python = ">=3.12.4" [tool.poetry.extras] [tool.ruff.lint] select = [ "ASYNC", "B", "C4", "COM", "DJ", "E", "EM", "EXE", "F", "FLY", "FURB", "I", "ICN", "INT", "LOG", "N", "NPY", "PD", "PIE", "Q", "RSE", "S", "SIM", "SLOT", "T10", "T201", "TID", "UP", "W", "YTT",] ignore = [ "COM812", "UP007", "W293", "S101", "S110", "S112",] [tool.coverage.run] omit = [ "tests/*",] [tool.pytest.ini_options] addopts = "--snapshot-warn-unused --strict-markers --strict-config --durations=5" markers = [ "requires: mark tests as requiring a specific library", "compile: mark placeholder test used to compile integration tests without running them",] asyncio_mode = "auto" filterwarnings = [ "ignore::langchain_core._api.beta_decorator.LangChainBetaWarning",] [tool.poetry.group.lint] optional = true [tool.poetry.group.typing] optional = true [tool.poetry.group.dev] optional = true [tool.poetry.group.test] optional = true [tool.poetry.group.test_integration] optional = true [tool.ruff.lint.pep8-naming] classmethod-decorators = [ "classmethod", "langchain_core.utils.pydantic.pre_init", "pydantic.field_validator", "pydantic.v1.root_validator",] [tool.ruff.lint.per-file-ignores] "tests/unit_tests/prompts/test_chat.py" = [ "E501",] "tests/unit_tests/runnables/test_runnable.py" = [ "E501",] "tests/unit_tests/runnables/test_graph.py" = [ "E501",] "tests/**" = [ "S",] "scripts/**" = [ "S",] [tool.poetry.group.lint.dependencies] ruff = "^0.5" [tool.poetry.group.typing.dependencies] mypy = ">=1.10,<1.11" types-pyyaml = "^6.0.12.2" types-requests = "^2.28.11.5" types-jinja2 = "^2.11.9" [tool.poetry.group.dev.dependencies] jupyter = "^1.0.0" setuptools = "^67.6.1" grandalf = "^0.8" [tool.poetry.group.test.dependencies] pytest = "^8" freezegun = "^1.2.2" pytest-mock = "^3.10.0" syrupy = "^4.0.2" pytest-watcher = "^0.3.4" pytest-asyncio = "^0.21.1" grandalf = "^0.8" responses = "^0.25.0" pytest-socket = "^0.7.0" pytest-xdist = "^3.6.1" [[tool.poetry.group.test.dependencies.numpy]] version = "^1.24.0" python = "<3.12" [[tool.poetry.group.test.dependencies.numpy]] version = ">=1.26.0,<3" python = ">=3.12" [tool.poetry.group.test_integration.dependencies] [tool.poetry.group.typing.dependencies.langchain-text-splitters] path = "../text-splitters" develop = true [tool.poetry.group.test.dependencies.langchain-tests] path = "../standard-tests" develop = true