mirror of
https://github.com/hwchase17/langchain.git
synced 2026-07-12 19:31:24 +00:00
Bumps the uv group with 1 update in the /libs/core directory: [setuptools](https://github.com/pypa/setuptools). Updates `setuptools` from 67.8.0 to 78.1.1 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pypa/setuptools/blob/main/NEWS.rst">setuptools's changelog</a>.</em></p> <blockquote> <h1>v78.1.1</h1> <h2>Bugfixes</h2> <ul> <li>More fully sanitized the filename in PackageIndex._download. (<a href="https://redirect.github.com/pypa/setuptools/issues/4946">#4946</a>)</li> </ul> <h1>v78.1.0</h1> <h2>Features</h2> <ul> <li>Restore access to _get_vc_env with a warning. (<a href="https://redirect.github.com/pypa/setuptools/issues/4874">#4874</a>)</li> </ul> <h1>v78.0.2</h1> <h2>Bugfixes</h2> <ul> <li>Postponed removals of deprecated dash-separated and uppercase fields in <code>setup.cfg</code>. All packages with deprecated configurations are advised to move before 2026. (<a href="https://redirect.github.com/pypa/setuptools/issues/4911">#4911</a>)</li> </ul> <h1>v78.0.1</h1> <h2>Misc</h2> <ul> <li><a href="https://redirect.github.com/pypa/setuptools/issues/4909">#4909</a></li> </ul> <h1>v78.0.0</h1> <h2>Bugfixes</h2> <ul> <li>Reverted distutils changes that broke the monkey patching of command classes. (<a href="https://redirect.github.com/pypa/setuptools/issues/4902">#4902</a>)</li> </ul> <h2>Deprecations and Removals</h2> <ul> <li>Setuptools no longer accepts options containing uppercase or dash characters in <code>setup.cfg</code>.</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="8e4868a036"><code>8e4868a</code></a> Bump version: 78.1.0 → 78.1.1</li> <li><a href="100e9a61ad"><code>100e9a6</code></a> Merge pull request <a href="https://redirect.github.com/pypa/setuptools/issues/4951">#4951</a></li> <li><a href="8faf1d7e0c"><code>8faf1d7</code></a> Add news fragment.</li> <li><a href="2ca4a9fe47"><code>2ca4a9f</code></a> Rely on re.sub to perform the decision in one expression.</li> <li><a href="e409e80029"><code>e409e80</code></a> Extract _sanitize method for sanitizing the filename.</li> <li><a href="250a6d1797"><code>250a6d1</code></a> Add a check to ensure the name resolves relative to the tmpdir.</li> <li><a href="d8390feaa9"><code>d8390fe</code></a> Extract _resolve_download_filename with test.</li> <li><a href="4e1e89392d"><code>4e1e893</code></a> Merge <a href="https://github.com/jaraco/skeleton">https://github.com/jaraco/skeleton</a></li> <li><a href="3a3144f0d2"><code>3a3144f</code></a> Fix typo: <code>pyproject.license</code> -> <code>project.license</code> (<a href="https://redirect.github.com/pypa/setuptools/issues/4931">#4931</a>)</li> <li><a href="d751068fd2"><code>d751068</code></a> Fix typo: pyproject.license -> project.license</li> <li>Additional commits viewable in <a href="https://github.com/pypa/setuptools/compare/v67.8.0...v78.1.1">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself) - `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself) - `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself) - `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency - `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/langchain-ai/langchain/network/alerts). </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
137 lines
4.2 KiB
TOML
137 lines
4.2 KiB
TOML
[build-system]
|
|
requires = ["hatchling"]
|
|
build-backend = "hatchling.build"
|
|
|
|
[project]
|
|
name = "langchain-core"
|
|
description = "Building applications with LLMs through composability"
|
|
license = {text = "MIT"}
|
|
readme = "README.md"
|
|
authors = []
|
|
|
|
version = "1.2.7"
|
|
requires-python = ">=3.10.0,<4.0.0"
|
|
dependencies = [
|
|
"langsmith>=0.3.45,<1.0.0",
|
|
"tenacity!=8.4.0,>=8.1.0,<10.0.0",
|
|
"jsonpatch>=1.33.0,<2.0.0",
|
|
"PyYAML>=5.3.0,<7.0.0",
|
|
"typing-extensions>=4.7.0,<5.0.0",
|
|
"packaging>=23.2.0,<26.0.0",
|
|
"pydantic>=2.7.4,<3.0.0",
|
|
"uuid-utils>=0.12.0,<1.0",
|
|
]
|
|
|
|
[project.urls]
|
|
Homepage = "https://docs.langchain.com/"
|
|
Documentation = "https://reference.langchain.com/python/langchain_core/"
|
|
Source = "https://github.com/langchain-ai/langchain/tree/master/libs/core"
|
|
Changelog = "https://github.com/langchain-ai/langchain/releases?q=%22langchain-core%3D%3D1%22"
|
|
Twitter = "https://x.com/LangChain"
|
|
Slack = "https://www.langchain.com/join-community"
|
|
Reddit = "https://www.reddit.com/r/LangChain/"
|
|
|
|
[dependency-groups]
|
|
lint = ["ruff>=0.14.11,<0.15.0"]
|
|
typing = [
|
|
"mypy>=1.19.1,<1.20.0",
|
|
"types-pyyaml>=6.0.12.2,<7.0.0.0",
|
|
"types-requests>=2.28.11.5,<3.0.0.0",
|
|
"langchain-text-splitters",
|
|
]
|
|
dev = [
|
|
"jupyter>=1.0.0,<2.0.0",
|
|
"setuptools>=67.6.1,<79.0.0",
|
|
"grandalf>=0.8.0,<1.0.0",
|
|
]
|
|
test = [
|
|
"pytest>=8.0.0,<9.0.0",
|
|
"freezegun>=1.2.2,<2.0.0",
|
|
"pytest-mock>=3.10.0,<4.0.0",
|
|
"syrupy>=4.0.2,<5.0.0",
|
|
"pytest-watcher>=0.3.4,<1.0.0",
|
|
"pytest-asyncio>=0.21.1,<1.0.0",
|
|
"grandalf>=0.8.0,<1.0.0",
|
|
"responses>=0.25.0,<1.0.0",
|
|
"pytest-socket>=0.7.0,<1.0.0",
|
|
"pytest-xdist<4.0.0,>=3.6.1",
|
|
"blockbuster>=1.5.18,<1.6.0",
|
|
"numpy>=1.26.4; python_version<'3.13'",
|
|
"numpy>=2.1.0; python_version>='3.13'",
|
|
"langchain-tests",
|
|
"pytest-benchmark",
|
|
"pytest-codspeed",
|
|
]
|
|
test_integration = []
|
|
|
|
[tool.uv.sources]
|
|
langchain-tests = { path = "../standard-tests" }
|
|
langchain-text-splitters = { path = "../text-splitters" }
|
|
|
|
|
|
[tool.mypy]
|
|
plugins = ["pydantic.mypy"]
|
|
strict = true
|
|
enable_error_code = "deprecated"
|
|
|
|
# TODO: activate for 'strict' checking
|
|
disallow_any_generics = false
|
|
|
|
|
|
[tool.ruff.format]
|
|
docstring-code-format = true
|
|
|
|
[tool.ruff.lint]
|
|
select = [ "ALL",]
|
|
ignore = [
|
|
"C90", # McCabe complexity
|
|
"COM812", # Messes with the formatter
|
|
"CPY", # No copyright
|
|
"FIX002", # Line contains TODO
|
|
"PERF203", # Rarely useful
|
|
"PLR09", # Too many something (arg, statements, etc)
|
|
"TD002", # Missing author in TODO
|
|
"TD003", # Missing issue link in TODO
|
|
|
|
# TODO rules
|
|
"ANN401", # No Any types
|
|
"BLE", # Blind exceptions
|
|
"ERA", # No commented-out code
|
|
]
|
|
unfixable = [
|
|
"B028", # People should intentionally tune the stacklevel
|
|
]
|
|
|
|
flake8-annotations.allow-star-arg-any = true
|
|
flake8-annotations.mypy-init-return = true
|
|
flake8-builtins.ignorelist = ["id", "input", "type"]
|
|
flake8-type-checking.runtime-evaluated-base-classes = [ "pydantic.BaseModel", "langchain_core.load.serializable.Serializable", "langchain_core.runnables.base.RunnableSerializable", "langchain_core.language_models.base.BaseLanguageModel", "langchain_core.outputs.generation.Generation", "langchain_core.tools.base.BaseTool",]
|
|
pep8-naming.classmethod-decorators = [ "classmethod", "langchain_core.utils.pydantic.pre_init", "pydantic.field_validator", "pydantic.v1.root_validator",]
|
|
|
|
[tool.ruff.lint.flake8-tidy-imports]
|
|
ban-relative-imports = "all"
|
|
|
|
[tool.ruff.lint.pydocstyle]
|
|
convention = "google"
|
|
ignore-var-parameters = true # ignore missing documentation for *args and **kwargs parameters
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"langchain_core/utils/mustache.py" = [ "PLW0603",]
|
|
"langchain_core/sys_info.py" = [ "T201",]
|
|
"tests/unit_tests/test_tools.py" = [ "ARG",]
|
|
"tests/**" = [ "D1", "PLR2004", "S", "SLF",]
|
|
"scripts/**" = [ "INP", "S",]
|
|
|
|
[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"
|
|
asyncio_default_fixture_loop_scope = "function"
|
|
filterwarnings = [ "ignore::langchain_core._api.beta_decorator.LangChainBetaWarning",]
|