dependabot[bot] 4e57abd4ce chore: bump nltk from 3.9.4 to 3.10.0 in /libs/text-splitters (#38747)
Bumps [nltk](https://github.com/nltk/nltk) from 3.9.4 to 3.10.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/nltk/nltk/releases">nltk's
releases</a>.</em></p>
<blockquote>
<h2>v3.10.0-rc1</h2>
<h2>What's Changed</h2>
<ul>
<li>CHILDES corpus reader: lazy loading (fixes <a
href="https://redirect.github.com/nltk/nltk/issues/1340">#1340</a>) by
<a href="https://github.com/nschneid"><code>@​nschneid</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1341">nltk/nltk#1341</a></li>
<li>Stanseg by <a
href="https://github.com/casperlehmann"><code>@​casperlehmann</code></a>
in <a
href="https://redirect.github.com/nltk/nltk/pull/1350">nltk/nltk#1350</a></li>
<li>Add optional CCG semantics computation by <a
href="https://github.com/tanin47"><code>@​tanin47</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1321">nltk/nltk#1321</a></li>
<li>address of free software foundation updated by <a
href="https://github.com/Lightyagami1"><code>@​Lightyagami1</code></a>
in <a
href="https://redirect.github.com/nltk/nltk/pull/1347">nltk/nltk#1347</a></li>
<li>Added a verification for empty tokens by <a
href="https://github.com/gnardari"><code>@​gnardari</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1353">nltk/nltk#1353</a></li>
<li>use data.load for vader lexicon by <a
href="https://github.com/afgiel"><code>@​afgiel</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1303">nltk/nltk#1303</a></li>
<li>Ensure that proper exceptions are caught correctly by <a
href="https://github.com/pombredanne"><code>@​pombredanne</code></a> in
<a
href="https://redirect.github.com/nltk/nltk/pull/1343">nltk/nltk#1343</a></li>
<li>Reset CCGVar everytime we invoke lexicon.fromstring() and skip the
unicode test because it fails on python2.7 by <a
href="https://github.com/tanin47"><code>@​tanin47</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1354">nltk/nltk#1354</a></li>
<li>Add tanin as an author :) by <a
href="https://github.com/tanin47"><code>@​tanin47</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1355">nltk/nltk#1355</a></li>
<li>framenet.py: remove unnecessary str() call that causes problems for
names with Unicode characters by <a
href="https://github.com/nschneid"><code>@​nschneid</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1360">nltk/nltk#1360</a></li>
<li>remove <code>u</code> because it doesn't work in Python 3.0 to 3.2
by <a href="https://github.com/tanin47"><code>@​tanin47</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1362">nltk/nltk#1362</a></li>
<li>moved the import for dispersion_plot out of the else block by <a
href="https://github.com/dennisobrien"><code>@​dennisobrien</code></a>
in <a
href="https://redirect.github.com/nltk/nltk/pull/1364">nltk/nltk#1364</a></li>
<li>Raise warning for infinite recursion by <a
href="https://github.com/alvations"><code>@​alvations</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1365">nltk/nltk#1365</a></li>
<li>Patch None TypeError in align_blocks() by <a
href="https://github.com/alvations"><code>@​alvations</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1366">nltk/nltk#1366</a></li>
<li>Safer try-except for catching infinite recursion by <a
href="https://github.com/alvations"><code>@​alvations</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1368">nltk/nltk#1368</a></li>
<li>Collections refactor by <a
href="https://github.com/nschneid"><code>@​nschneid</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1382">nltk/nltk#1382</a></li>
<li>Handles fringe cases in BLEU by <a
href="https://github.com/alvations"><code>@​alvations</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1383">nltk/nltk#1383</a></li>
<li>Allow specifying substitution cost in edit distance by <a
href="https://github.com/dnc1994"><code>@​dnc1994</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1386">nltk/nltk#1386</a></li>
<li>Pl196x fixes by <a
href="https://github.com/pkasprzyk"><code>@​pkasprzyk</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1359">nltk/nltk#1359</a></li>
<li>Docs/ngrams by <a
href="https://github.com/ColCarroll"><code>@​ColCarroll</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1403">nltk/nltk#1403</a></li>
<li>Fix conll.py by <a
href="https://github.com/germanferrero"><code>@​germanferrero</code></a>
in <a
href="https://redirect.github.com/nltk/nltk/pull/1402">nltk/nltk#1402</a></li>
<li>Aline by <a
href="https://github.com/geoffbacon"><code>@​geoffbacon</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1407">nltk/nltk#1407</a></li>
<li>Handle empty files in a corpus by <a
href="https://github.com/alexisdimi"><code>@​alexisdimi</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1411">nltk/nltk#1411</a></li>
<li>fixed bug: StackDecoder would throw exception if it's unable to
finish… by <a href="https://github.com/hikui"><code>@​hikui</code></a>
in <a
href="https://redirect.github.com/nltk/nltk/pull/1405">nltk/nltk#1405</a></li>
<li>add hikui to authors by <a
href="https://github.com/hikui"><code>@​hikui</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1412">nltk/nltk#1412</a></li>
<li>removes download-cache pip flag from tox config by <a
href="https://github.com/fievelk"><code>@​fievelk</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1415">nltk/nltk#1415</a></li>
<li>Added three tokenizers, one detokenizer and two tokenizer-related
word/char list corpora by <a
href="https://github.com/alvations"><code>@​alvations</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1282">nltk/nltk#1282</a></li>
<li>Much faster Vader sentiment tagging by <a
href="https://github.com/georgeberry"><code>@​georgeberry</code></a> in
<a
href="https://redirect.github.com/nltk/nltk/pull/1409">nltk/nltk#1409</a></li>
<li>Fixes doctest in is_cjk() and REPP tokenizer wrapper by <a
href="https://github.com/alvations"><code>@​alvations</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1420">nltk/nltk#1420</a></li>
<li>Fixed doctest for UnicharsCorpusReader and
NonbreakingPrefixesCorpusReader by <a
href="https://github.com/alvations"><code>@​alvations</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1422">nltk/nltk#1422</a></li>
<li>Updated senna version in docstring by <a
href="https://github.com/alvations"><code>@​alvations</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1431">nltk/nltk#1431</a></li>
<li>Removes Python 2.6 and Python 3.1-3.3 code, Improves Python 3.5
syntax by <a href="https://github.com/adamn"><code>@​adamn</code></a> in
<a
href="https://redirect.github.com/nltk/nltk/pull/1429">nltk/nltk#1429</a></li>
<li>Cleanup by <a
href="https://github.com/dimazest"><code>@​dimazest</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1432">nltk/nltk#1432</a></li>
<li>Fix zero division &amp; log(0) in PunktTrainer._col_log_likelihood
by <a
href="https://github.com/mrecachinas"><code>@​mrecachinas</code></a> in
<a
href="https://redirect.github.com/nltk/nltk/pull/1247">nltk/nltk#1247</a></li>
<li>Update stanford_segmenter.py by <a
href="https://github.com/janissl"><code>@​janissl</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1444">nltk/nltk#1444</a></li>
<li>explained data format for constructor by <a
href="https://github.com/drevicko"><code>@​drevicko</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1450">nltk/nltk#1450</a></li>
<li>Use a more efficient idiom for flattening nested lists by <a
href="https://github.com/rmalouf"><code>@​rmalouf</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1447">nltk/nltk#1447</a></li>
<li>improved documentation of load_array() by <a
href="https://github.com/drevicko"><code>@​drevicko</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1452">nltk/nltk#1452</a></li>
<li>changed &quot;list or iterator&quot; to &quot;sequence&quot; by <a
href="https://github.com/drevicko"><code>@​drevicko</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1453">nltk/nltk#1453</a></li>
<li>Deal gracefully with degenerate cases. by <a
href="https://github.com/drevicko"><code>@​drevicko</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1454">nltk/nltk#1454</a></li>
<li>deal with (hopefully) all degenerate cases by <a
href="https://github.com/drevicko"><code>@​drevicko</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1455">nltk/nltk#1455</a></li>
<li>Enable unordered comparison for gaac clustering by <a
href="https://github.com/alvations"><code>@​alvations</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1456">nltk/nltk#1456</a></li>
<li>Rewrite porter.py by <a
href="https://github.com/ExplodingCabbage"><code>@​ExplodingCabbage</code></a>
in <a
href="https://redirect.github.com/nltk/nltk/pull/1261">nltk/nltk#1261</a></li>
<li>Update naivebayes.py by <a
href="https://github.com/andyreagan"><code>@​andyreagan</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1461">nltk/nltk#1461</a></li>
<li>Fixes bug where download status not returned. by <a
href="https://github.com/nsfabina"><code>@​nsfabina</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1468">nltk/nltk#1468</a></li>
<li>Use lcon and rcon variables in conllned() when trace is False -
Issue <a
href="https://redirect.github.com/nltk/nltk/issues/1474">#1474</a> by <a
href="https://github.com/timleslie"><code>@​timleslie</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1475">nltk/nltk#1475</a></li>
<li>Use shutil.copyfileobj for unzipping by <a
href="https://github.com/ikorolev93"><code>@​ikorolev93</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1478">nltk/nltk#1478</a></li>
<li>Fixing Chen&amp;Cherry method 6 smoothing in BLEU score by <a
href="https://github.com/alvations"><code>@​alvations</code></a> in <a
href="https://redirect.github.com/nltk/nltk/pull/1477">nltk/nltk#1477</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/nltk/nltk/blob/develop/ChangeLog">nltk's
changelog</a>.</em></p>
<blockquote>
<p>Version 3.10.0 2026-06-11</p>
<ul>
<li>Enforce the stricter <code>nltk.pathsec</code> security policy by
default</li>
<li>Document the new security model and migration guidance</li>
<li>Harden resource loading against path traversal and
SSRF/DNS-rebinding</li>
<li>Harden downloader path handling and block XML entity expansion</li>
<li>Close remaining corpus-reader security edge cases</li>
<li>Replace unsafe <code>exec()</code> usage in the utility CLI</li>
<li>Warn on unpickling user-provided pickles</li>
<li>Add HuggingFace datasets integration
(<code>nltk.huggingface</code>)</li>
<li>Align TnT with Brants (2000) specifications</li>
<li>Fix PorterStemmer irregular-form lowercasing in NLTK mode</li>
<li>Fix TransitionParser sparse index dtype for scikit-learn 1.9</li>
<li>Fix TextCat tie handling</li>
<li>Fix WordNet object comparisons for incompatible types</li>
<li>Cache WordNet max depth lazily for
<code>lch_similarity()</code></li>
<li>Fix CCG variable direction, substitution, and type-raising bugs</li>
<li>Fix Jaro similarity for single-character and empty-string cases</li>
<li>Improve CI and release-maintenance workflows</li>
</ul>
<p>Thanks to the following contributors to 3.10.0:
13rac1, alvations, bowiechen, devesh-2002, ekaf, elias-ba,
haosenwang1018, HyperPS, ihitamandal, jancallewaert, jhnwnstd,
JuanIMartinezB, Lemm1, LinZiyuu, Mr-Neutr0n, PastelStorm,
scruge1, Syzygy2048, ylwango613, yzhaoinuw</p>
<p>Version 3.9.4 2026-03-24</p>
<ul>
<li>Support Python 3.14</li>
<li>Fix bug in Levenshtein distance when substitution_cost &gt; 2</li>
<li>Fix bug in Treebank detokeniser re quote ordering</li>
<li>Fix bug in Jaro similarity for empty strings</li>
<li>Several security enhancements</li>
<li>Fix GHSA-rf74-v2fm-23pw: unbounded recursion in
JSONTaggedDecoder</li>
<li>Implement TextTiling vocabulary introduction method (Hearst
1997)</li>
<li>Fix ALINE feature matrix errors and add comprehensive tests</li>
<li>Support multiple VerbNet versions, fix longid/shortid regex for
VerbNet ids</li>
<li>Let downloader fallback to md5 when sha256 is unavailable</li>
<li>Several other minor bugfixes and code cleanups</li>
</ul>
<p>Thanks to the following contributors to 3.9.4:
Min-Yen Kan, Eric Kafe, Emily Voss, bowiechen, Hrudhai01,
jancallewaert, Mr-Neutr0n, pollak.peter89, ylwango613,</p>
<p>Version 3.9.3 2026-02-21</p>
<ul>
<li>Fix CVE-2025-14009: secure ZIP extraction in nltk.downloader (<a
href="https://redirect.github.com/nltk/nltk/issues/3468">#3468</a>)</li>
<li>Block path traversal/arbitrary reads in nltk.data for protocol-less
refs (<a
href="https://redirect.github.com/nltk/nltk/issues/3467">#3467</a>)</li>
<li>Block path traversal/abs paths in corpus readers and FS pointers (<a
href="https://redirect.github.com/nltk/nltk/issues/3479">#3479</a>, <a
href="https://redirect.github.com/nltk/nltk/issues/3480">#3480</a>)</li>
<li>Validate external StanfordSegmenter JARs using SHA256 (<a
href="https://redirect.github.com/nltk/nltk/issues/3477">#3477</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="bd49f9011d"><code>bd49f90</code></a>
allow escaped brackets in Tree.fromstring (<a
href="https://redirect.github.com/nltk/nltk/issues/3694">#3694</a>)</li>
<li><a
href="27b8ad6cd5"><code>27b8ad6</code></a>
don't crash chomsky_normal_form on terminals with siblings (<a
href="https://redirect.github.com/nltk/nltk/issues/3693">#3693</a>)</li>
<li><a
href="52227d2afe"><code>52227d2</code></a>
Use os.name for Windows path handling (<a
href="https://redirect.github.com/nltk/nltk/issues/3605">#3605</a>)</li>
<li><a
href="06c0e2cc94"><code>06c0e2c</code></a>
Avoid RIBES zero division on empty inputs (<a
href="https://redirect.github.com/nltk/nltk/issues/3604">#3604</a>)</li>
<li><a
href="a167389c02"><code>a167389</code></a>
Treat missing unzip output as stale (<a
href="https://redirect.github.com/nltk/nltk/issues/3607">#3607</a>)</li>
<li><a
href="c94c967a33"><code>c94c967</code></a>
Fix EOF empty document bug in IEER corpus reader (<a
href="https://redirect.github.com/nltk/nltk/issues/3648">#3648</a>)</li>
<li><a
href="94a259c815"><code>94a259c</code></a>
Enforce restrictive primitive type checking in pathsec wrappers (<a
href="https://redirect.github.com/nltk/nltk/issues/3692">#3692</a>)</li>
<li><a
href="5ac475d2ab"><code>5ac475d</code></a>
fix(security): isolate Stanford Java options and clean temp files (<a
href="https://redirect.github.com/nltk/nltk/issues/3683">#3683</a>)</li>
<li><a
href="986f26e71b"><code>986f26e</code></a>
ci(deps): bump the github-actions group with 3 updates (<a
href="https://redirect.github.com/nltk/nltk/issues/3691">#3691</a>)</li>
<li><a
href="f26b375303"><code>f26b375</code></a>
fix(security): prevent pickle RCE in TransitionParser model loading
(CWE-502)...</li>
<li>Additional commits viewable in <a
href="https://github.com/nltk/nltk/compare/3.9.4...v3.10.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=nltk&package-manager=uv&previous-version=3.9.4&new-version=3.10.0)](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 show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
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>
2026-07-13 23:41:23 -07:00

The agent engineering platform.

PyPI - License PyPI - Downloads Version Twitter / X

LangChain is a framework for building agents and LLM-powered applications. It helps you chain together interoperable components and third-party integrations to simplify AI application development — all while future-proofing decisions as the underlying technology evolves.

Tip

Just getting started? Check out Deep Agents — a higher-level package built on LangChain for agents that have built-in capabilites for common usage patterns such as planning, subagents, file system usage, and more.

Quickstart

uv add langchain
from langchain.chat_models import init_chat_model

model = init_chat_model("openai:gpt-5.5")
result = model.invoke("Hello, world!")

If you're looking for more advanced customization or agent orchestration, check out LangGraph, our framework for building controllable agent workflows.

For an equivalent JS/TS library, check out LangChain.js.

Tip

For developing, debugging, and deploying AI agents and LLM applications, see LangSmith.

LangChain ecosystem

While the LangChain framework can be used standalone, it also integrates seamlessly with any LangChain product, giving developers a full suite of tools when building LLM applications.

  • Deep Agents — Build agents that can plan, use subagents, and leverage file systems for complex tasks
  • LangGraph — Build agents that can reliably handle complex tasks with our low-level agent orchestration framework
  • Integrations — Chat & embedding models, tools & toolkits, and more
  • LangSmith — Agent evals, observability, and debugging for LLM apps
  • LangSmith Deployment — Deploy and scale agents with a purpose-built platform for long-running, stateful workflows

Why use LangChain?

LangChain helps developers build applications powered by LLMs through a standard interface for models, embeddings, vector stores, and more.

  • Real-time data augmentation — Easily connect LLMs to diverse data sources and external/internal systems, drawing from LangChain's vast library of integrations with model providers, tools, vector stores, retrievers, and more
  • Model interoperability — Swap models in and out as your engineering team experiments to find the best choice for your application's needs. As the industry frontier evolves, adapt quickly — LangChain's abstractions keep you moving without losing momentum
  • Rapid prototyping — Quickly build and iterate on LLM applications with LangChain's modular, component-based architecture. Test different approaches and workflows without rebuilding from scratch, accelerating your development cycle
  • Production-ready features — Deploy reliable applications with built-in support for monitoring, evaluation, and debugging through integrations like LangSmith. Scale with confidence using battle-tested patterns and best practices
  • Vibrant community and ecosystem — Leverage a rich ecosystem of integrations, templates, and community-contributed components. Benefit from continuous improvements and stay up-to-date with the latest AI developments through an active open-source community
  • Flexible abstraction layers — Work at the level of abstraction that suits your needs — from high-level chains for quick starts to low-level components for fine-grained control. LangChain grows with your application's complexity

Resources

Description
Building applications with LLMs through composability
Readme MIT Cite this repository 4.9 GiB
Languages
Python 85.9%
omnetpp-msg 13.5%
Makefile 0.4%
Shell 0.1%