mirror of
https://github.com/langchain-ai/langgraph.git
synced 2026-08-20 06:35:46 +02:00
270621db66
Bumps the all-dependencies group in /libs/prebuilt with 3 updates: [langchain-core](https://github.com/langchain-ai/langchain), [syrupy](https://github.com/syrupy-project/syrupy) and [ruff](https://github.com/astral-sh/ruff). Updates `langchain-core` from 1.2.7 to 1.2.12 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/langchain-ai/langchain/releases">langchain-core's releases</a>.</em></p> <blockquote> <h2>langchain-core==1.2.12</h2> <p>Changes since langchain-core==1.2.11</p> <p>release(core): 1.2.12 (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35192">#35192</a>) fix(core): fix setting <code>ChatGeneration.text</code> (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35191">#35191</a>)</p> <h2>langchain-core==1.2.11</h2> <p>Changes since langchain-core==1.2.10</p> <p>release(core): 1.2.11 (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35144">#35144</a>) fix(openai): sanitize urls when counting tokens in images (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35143">#35143</a>) chore(core): clean up docstring mismatch and redundant logic in langchain-core (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35064">#35064</a>) fix(core): replace bare except with Exception in tracer (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35138">#35138</a>)</p> <h2>langchain-core==1.2.10</h2> <p>Changes since langchain-core==1.2.9</p> <p>release(core): 1.2.10 (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35136">#35136</a>) chore(deps): bump the langchain-deps group across 3 directories with 40 updates (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35129">#35129</a>) chore(deps): bump the langchain-deps group across 3 directories with 11 updates (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35121">#35121</a>) feat(core): add ContextOverflowError, raise in anthropic and openai (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35099">#35099</a>) feat(model-profiles): add <code>text_inputs</code> and <code>text_outputs</code> (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35084">#35084</a>) feat(core): count tokens from tool schemas in <code>count_tokens_approximately</code> (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35098">#35098</a>) docs(core): add missing <code>name</code> docstring for <code>RunnableSerializable</code> (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35088">#35088</a>)</p> <h2>langchain-core==1.2.9</h2> <p>Changes since langchain-core==1.2.8</p> <p>release(core): 1.2.9 (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35025">#35025</a>) fix(core): adjust cap when scaling approximate token counts (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35017">#35017</a>) revert: precompile hex color regex pattern at module level (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35016">#35016</a>) chore: add <code>make type</code> target (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35015">#35015</a>) revert: "chore: add typing target in <code>Makefile</code>" (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35013">#35013</a>) chore: add typing target in <code>Makefile</code> (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35012">#35012</a>) fix(core): apply cap when scaling approximate token counts (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35005">#35005</a>) feat(core): allow scaling by reported usage when counting tokens approximately (<a href="https://redirect.github.com/langchain-ai/langchain/issues/34996">#34996</a>) test(core): increase <code>delta_time</code> for flaky test (<a href="https://redirect.github.com/langchain-ai/langchain/issues/34982">#34982</a>) chore: enrich <code>pyproject.toml</code> files (<a href="https://redirect.github.com/langchain-ai/langchain/issues/34980">#34980</a>)</p> <h2>langchain-core==1.2.8</h2> <p>Changes since langchain-core==1.2.7</p> <p>release(core): 1.2.8 (<a href="https://redirect.github.com/langchain-ai/langchain/issues/34975">#34975</a>) docs(core): add examples for <code>pretty_repr</code>, <code>pretty_print</code> (<a href="https://redirect.github.com/langchain-ai/langchain/issues/34968">#34968</a>) docs(core): use proper admonition for <code>get_buffer_string</code> (<a href="https://redirect.github.com/langchain-ai/langchain/issues/34967">#34967</a>) docs: add usage examples to core classes (<a href="https://redirect.github.com/langchain-ai/langchain/issues/34841">#34841</a>) chore(core): fix docstring format (<a href="https://redirect.github.com/langchain-ai/langchain/issues/34966">#34966</a>) chore(deps): bump the uv group across 20 directories with 3 updates (<a href="https://redirect.github.com/langchain-ai/langchain/issues/34941">#34941</a>) docs: add example to create_message function docstring (<a href="https://redirect.github.com/langchain-ai/langchain/issues/34851">#34851</a>) docs(core): clarify <a href="https://github.com/tool"><code>@tool</code></a> decorator argument and return type requirements (<a href="https://redirect.github.com/langchain-ai/langchain/issues/34860">#34860</a>)</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/langchain-ai/langchain/commit/b06716fb879f0d656ce4d1dad4a9710a61e8ec1e"><code>b06716f</code></a> release(core): 1.2.12 (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35192">#35192</a>)</li> <li><a href="https://github.com/langchain-ai/langchain/commit/16cabfa212782d03b00e08658fb3e74160a1dd45"><code>16cabfa</code></a> fix(core): fix setting <code>ChatGeneration.text</code> (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35191">#35191</a>)</li> <li><a href="https://github.com/langchain-ai/langchain/commit/8f859bd91f122b532689db199f69a6464a1bf7ef"><code>8f859bd</code></a> release(huggingface): 1.2.1 (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35182">#35182</a>)</li> <li><a href="https://github.com/langchain-ai/langchain/commit/19ddd42891514aba6d2c92cd32a915e7bb4b7b31"><code>19ddd42</code></a> fix(ollama): raise error when clients are not initialized (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35185">#35185</a>)</li> <li><a href="https://github.com/langchain-ai/langchain/commit/a50d86c353bdf611bd0b908d5fc3d737086dba98"><code>a50d86c</code></a> docs(langchain-classic): clarify MultiVectorRetriever usage (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35053">#35053</a>)</li> <li><a href="https://github.com/langchain-ai/langchain/commit/f89e30eb131d48c5354dd98c068a229b4c585f2d"><code>f89e30e</code></a> chore(huggingface): version bump for huggingface-hub and transformers deps (#...</li> <li><a href="https://github.com/langchain-ai/langchain/commit/6ac12b330a5c4912c37aa3bd888bc086d5d387f7"><code>6ac12b3</code></a> chore: bump pillow from 11.3.0 to 12.1.1 in /libs/partners/openai (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35177">#35177</a>)</li> <li><a href="https://github.com/langchain-ai/langchain/commit/d41dedae978dfd4e4ee82d57fc1f0c530d827b90"><code>d41deda</code></a> fix(langchain-classic): validate ensemble retriever weights (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35078">#35078</a>)</li> <li><a href="https://github.com/langchain-ai/langchain/commit/9d0bd8376cdd19dc19ac34d15a34dabe94361d8b"><code>9d0bd83</code></a> chore: bump pillow from 11.3.0 to 12.1.1 in /libs/partners/perplexity (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35176">#35176</a>)</li> <li><a href="https://github.com/langchain-ai/langchain/commit/f22f5d5d673d2db5dc8a68991cdc063664c6f96b"><code>f22f5d5</code></a> chore(deps): bump pillow from 11.3.0 to 12.1.1 in /libs/langchain (<a href="https://redirect.github.com/langchain-ai/langchain/issues/35175">#35175</a>)</li> <li>Additional commits viewable in <a href="https://github.com/langchain-ai/langchain/compare/langchain-core==1.2.7...langchain-core==1.2.12">compare view</a></li> </ul> </details> <br /> Updates `syrupy` from 5.0.0 to 5.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/syrupy-project/syrupy/releases">syrupy's releases</a>.</em></p> <blockquote> <h2>v5.1.0</h2> <h1><a href="https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0">5.1.0</a> (2026-01-25)</h1> <h3>Features</h3> <ul> <li>add serializer plugin system; plugins for data models (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1062">#1062</a>) (<a href="https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a">df9bc8f</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/syrupy-project/syrupy/blob/main/CHANGELOG.md">syrupy's changelog</a>.</em></p> <blockquote> <h1><a href="https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0">5.1.0</a> (2026-01-25)</h1> <h3>Features</h3> <ul> <li>add serializer plugin system; plugins for data models (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1062">#1062</a>) (<a href="https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a">df9bc8f</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/syrupy-project/syrupy/commit/7096efdee61a8e1bc47492bdd0bc860766df40e9"><code>7096efd</code></a> chore(release): 5.1.0 [skip ci]</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/07aa00dd48d65e74814cec863b5f236e09afb464"><code>07aa00d</code></a> chore(deps): update dependency attrs to v25 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1063">#1063</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/1f29ae061e9557e205e50fb2f9971ee95c4bd08e"><code>1f29ae0</code></a> docs: add bwrob as a contributor for code (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1064">#1064</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/df9bc8f6b3a222dde82167e10a2e6bb57456305a"><code>df9bc8f</code></a> feat: add serializer plugin system; plugins for data models (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1062">#1062</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/841257deaf598df7c3d154b8e2d694f8bb7e5055"><code>841257d</code></a> chore(deps): update dependency coverage to v7.13.1 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1061">#1061</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/2d8dfa7f7bb2a5f7c0210107dbb65b62a615d434"><code>2d8dfa7</code></a> chore(deps): update codecov/codecov-action action to v5.5.2 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1056">#1056</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/f5f9ef77027983d3b62d8cc5bfc3a9ef058fe509"><code>f5f9ef7</code></a> chore(deps): update dependency debugpy to v1.8.18 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1057">#1057</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/eaeb6ae11f57aa3e595d4c45e7be4a3ed2d66dfc"><code>eaeb6ae</code></a> chore(deps): update dependency pytest to v9.0.2 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1055">#1055</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/263b23b768ef761c3f7e1faa0671b0709c1887b1"><code>263b23b</code></a> chore(deps): update python docker tag to v3.14.1 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1054">#1054</a>)</li> <li><a href="https://github.com/syrupy-project/syrupy/commit/a0dd77b023fee34ff0968a822e0d0740c9c7fb93"><code>a0dd77b</code></a> chore(deps): update actions/checkout action to v6.0.1 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1053">#1053</a>)</li> <li>Additional commits viewable in <a href="https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.14.13 to 0.15.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/releases">ruff's releases</a>.</em></p> <blockquote> <h2>0.15.1</h2> <h2>Release Notes</h2> <p>Released on 2026-02-12.</p> <h3>Preview features</h3> <ul> <li>[<code>airflow</code>] Add ruff rules to catch deprecated Airflow imports for Airflow 3.1 (<code>AIR321</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22376">#22376</a>)</li> <li>[<code>airflow</code>] Third positional parameter not named <code>ti_key</code> should be flagged for <code>BaseOperatorLink.get_link</code> (<code>AIR303</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22828">#22828</a>)</li> <li>[<code>flake8-gettext</code>] Fix false negatives for plural argument of <code>ngettext</code> (<code>INT001</code>, <code>INT002</code>, <code>INT003</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/21078">#21078</a>)</li> <li>[<code>pyflakes</code>] Fix infinite loop in preview fix for <code>unused-import</code> (<code>F401</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/23038">#23038</a>)</li> <li>[<code>pygrep-hooks</code>] Detect non-existent mock methods in standalone expressions (<code>PGH005</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22830">#22830</a>)</li> <li>[<code>pylint</code>] Allow dunder submodules and improve diagnostic range (<code>PLC2701</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22804">#22804</a>)</li> <li>[<code>pyupgrade</code>] Improve diagnostic range for tuples (<code>UP024</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/23013">#23013</a>)</li> <li>[<code>refurb</code>] Check subscripts in tuple do not use lambda parameters in <code>reimplemented-operator</code> (<code>FURB118</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/23079">#23079</a>)</li> <li>[<code>ruff</code>] Detect mutable defaults in <code>field</code> calls (<code>RUF008</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/23046">#23046</a>)</li> <li>[<code>ruff</code>] Ignore std <code>cmath.inf</code> (<code>RUF069</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/23120">#23120</a>)</li> <li>[<code>ruff</code>] New rule <code>float-equality-comparison</code> (<code>RUF069</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/20585">#20585</a>)</li> <li>Don't format unlabeled Markdown code blocks (<a href="https://redirect.github.com/astral-sh/ruff/pull/23106">#23106</a>)</li> <li>Markdown formatting support in LSP (<a href="https://redirect.github.com/astral-sh/ruff/pull/23063">#23063</a>)</li> <li>Support Quarto Markdown language markers (<a href="https://redirect.github.com/astral-sh/ruff/pull/22947">#22947</a>)</li> <li>Support formatting <code>pycon</code> Markdown code blocks (<a href="https://redirect.github.com/astral-sh/ruff/pull/23112">#23112</a>)</li> <li>Use extension mapping to select Markdown code block language (<a href="https://redirect.github.com/astral-sh/ruff/pull/22934">#22934</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Avoid false positive for undefined variables in <code>FAST001</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/23224">#23224</a>)</li> <li>Avoid introducing syntax errors for <code>FAST003</code> autofix (<a href="https://redirect.github.com/astral-sh/ruff/pull/23227">#23227</a>)</li> <li>Avoid suggesting <code>InitVar</code> for <code>__post_init__</code> that references PEP 695 type parameters (<a href="https://redirect.github.com/astral-sh/ruff/pull/23226">#23226</a>)</li> <li>Deduplicate type variables in generic functions (<a href="https://redirect.github.com/astral-sh/ruff/pull/23225">#23225</a>)</li> <li>Fix exception handler parenthesis removal for Python 3.14+ (<a href="https://redirect.github.com/astral-sh/ruff/pull/23126">#23126</a>)</li> <li>Fix f-string middle panic when parsing t-strings (<a href="https://redirect.github.com/astral-sh/ruff/pull/23232">#23232</a>)</li> <li>Wrap <code>RUF020</code> target for multiline fixes (<a href="https://redirect.github.com/astral-sh/ruff/pull/23210">#23210</a>)</li> <li>Wrap <code>UP007</code> target for multiline fixes (<a href="https://redirect.github.com/astral-sh/ruff/pull/23208">#23208</a>)</li> <li>Fix missing diagnostics for last range suppression in file (<a href="https://redirect.github.com/astral-sh/ruff/pull/23242">#23242</a>)</li> <li>[<code>pyupgrade</code>] Fix syntax error on string with newline escape and comment (<code>UP037</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22968">#22968</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>Use <code>ruff</code> instead of <code>Ruff</code> as the program name in GitHub output format (<a href="https://redirect.github.com/astral-sh/ruff/pull/23240">#23240</a>)</li> <li>[<code>PT006</code>] Fix syntax error when unpacking nested tuples in <code>parametrize</code> fixes (<a href="https://redirect.github.com/astral-sh/ruff/issues/22441">#22441</a>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22464">#22464</a>)</li> <li>[<code>airflow</code>] Catch deprecated attribute access from context key for Airflow 3.0 (<code>AIR301</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22850">#22850</a>)</li> <li>[<code>airflow</code>] Capture deprecated arguments and a decorator (<code>AIR301</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/23170">#23170</a>)</li> <li>[<code>flake8-boolean-trap</code>] Add <code>multiprocessing.Value</code> to excluded functions for <code>FBT003</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/23010">#23010</a>)</li> <li>[<code>flake8-bugbear</code>] Add a secondary annotation showing the previous occurrence (<code>B033</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22634">#22634</a>)</li> <li>[<code>flake8-type-checking</code>] Add sub-diagnostic showing the runtime use of an annotation (<code>TC004</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/23091">#23091</a>)</li> <li>[<code>isort</code>] Support configurable import section heading comments (<a href="https://redirect.github.com/astral-sh/ruff/pull/23151">#23151</a>)</li> <li>[<code>ruff</code>] Improve the diagnostic for <code>RUF012</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/23202">#23202</a>)</li> </ul> <h3>Formatter</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's changelog</a>.</em></p> <blockquote> <h2>0.15.1</h2> <p>Released on 2026-02-12.</p> <h3>Preview features</h3> <ul> <li>[<code>airflow</code>] Add ruff rules to catch deprecated Airflow imports for Airflow 3.1 (<code>AIR321</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22376">#22376</a>)</li> <li>[<code>airflow</code>] Third positional parameter not named <code>ti_key</code> should be flagged for <code>BaseOperatorLink.get_link</code> (<code>AIR303</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22828">#22828</a>)</li> <li>[<code>flake8-gettext</code>] Fix false negatives for plural argument of <code>ngettext</code> (<code>INT001</code>, <code>INT002</code>, <code>INT003</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/21078">#21078</a>)</li> <li>[<code>pyflakes</code>] Fix infinite loop in preview fix for <code>unused-import</code> (<code>F401</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/23038">#23038</a>)</li> <li>[<code>pygrep-hooks</code>] Detect non-existent mock methods in standalone expressions (<code>PGH005</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22830">#22830</a>)</li> <li>[<code>pylint</code>] Allow dunder submodules and improve diagnostic range (<code>PLC2701</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22804">#22804</a>)</li> <li>[<code>pyupgrade</code>] Improve diagnostic range for tuples (<code>UP024</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/23013">#23013</a>)</li> <li>[<code>refurb</code>] Check subscripts in tuple do not use lambda parameters in <code>reimplemented-operator</code> (<code>FURB118</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/23079">#23079</a>)</li> <li>[<code>ruff</code>] Detect mutable defaults in <code>field</code> calls (<code>RUF008</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/23046">#23046</a>)</li> <li>[<code>ruff</code>] Ignore std <code>cmath.inf</code> (<code>RUF069</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/23120">#23120</a>)</li> <li>[<code>ruff</code>] New rule <code>float-equality-comparison</code> (<code>RUF069</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/20585">#20585</a>)</li> <li>Don't format unlabeled Markdown code blocks (<a href="https://redirect.github.com/astral-sh/ruff/pull/23106">#23106</a>)</li> <li>Markdown formatting support in LSP (<a href="https://redirect.github.com/astral-sh/ruff/pull/23063">#23063</a>)</li> <li>Support Quarto Markdown language markers (<a href="https://redirect.github.com/astral-sh/ruff/pull/22947">#22947</a>)</li> <li>Support formatting <code>pycon</code> Markdown code blocks (<a href="https://redirect.github.com/astral-sh/ruff/pull/23112">#23112</a>)</li> <li>Use extension mapping to select Markdown code block language (<a href="https://redirect.github.com/astral-sh/ruff/pull/22934">#22934</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Avoid false positive for undefined variables in <code>FAST001</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/23224">#23224</a>)</li> <li>Avoid introducing syntax errors for <code>FAST003</code> autofix (<a href="https://redirect.github.com/astral-sh/ruff/pull/23227">#23227</a>)</li> <li>Avoid suggesting <code>InitVar</code> for <code>__post_init__</code> that references PEP 695 type parameters (<a href="https://redirect.github.com/astral-sh/ruff/pull/23226">#23226</a>)</li> <li>Deduplicate type variables in generic functions (<a href="https://redirect.github.com/astral-sh/ruff/pull/23225">#23225</a>)</li> <li>Fix exception handler parenthesis removal for Python 3.14+ (<a href="https://redirect.github.com/astral-sh/ruff/pull/23126">#23126</a>)</li> <li>Fix f-string middle panic when parsing t-strings (<a href="https://redirect.github.com/astral-sh/ruff/pull/23232">#23232</a>)</li> <li>Wrap <code>RUF020</code> target for multiline fixes (<a href="https://redirect.github.com/astral-sh/ruff/pull/23210">#23210</a>)</li> <li>Wrap <code>UP007</code> target for multiline fixes (<a href="https://redirect.github.com/astral-sh/ruff/pull/23208">#23208</a>)</li> <li>Fix missing diagnostics for last range suppression in file (<a href="https://redirect.github.com/astral-sh/ruff/pull/23242">#23242</a>)</li> <li>[<code>pyupgrade</code>] Fix syntax error on string with newline escape and comment (<code>UP037</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22968">#22968</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>Use <code>ruff</code> instead of <code>Ruff</code> as the program name in GitHub output format (<a href="https://redirect.github.com/astral-sh/ruff/pull/23240">#23240</a>)</li> <li>[<code>PT006</code>] Fix syntax error when unpacking nested tuples in <code>parametrize</code> fixes (<a href="https://redirect.github.com/astral-sh/ruff/issues/22441">#22441</a>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22464">#22464</a>)</li> <li>[<code>airflow</code>] Catch deprecated attribute access from context key for Airflow 3.0 (<code>AIR301</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22850">#22850</a>)</li> <li>[<code>airflow</code>] Capture deprecated arguments and a decorator (<code>AIR301</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/23170">#23170</a>)</li> <li>[<code>flake8-boolean-trap</code>] Add <code>multiprocessing.Value</code> to excluded functions for <code>FBT003</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/23010">#23010</a>)</li> <li>[<code>flake8-bugbear</code>] Add a secondary annotation showing the previous occurrence (<code>B033</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/22634">#22634</a>)</li> <li>[<code>flake8-type-checking</code>] Add sub-diagnostic showing the runtime use of an annotation (<code>TC004</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/23091">#23091</a>)</li> <li>[<code>isort</code>] Support configurable import section heading comments (<a href="https://redirect.github.com/astral-sh/ruff/pull/23151">#23151</a>)</li> <li>[<code>ruff</code>] Improve the diagnostic for <code>RUF012</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/23202">#23202</a>)</li> </ul> <h3>Formatter</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/astral-sh/ruff/commit/a2f11d239f91cf8daedb0764ec15fcfe29c5ae6d"><code>a2f11d2</code></a> Prepare for 0.15.1 (<a href="https://redirect.github.com/astral-sh/ruff/issues/23253">#23253</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/d29628e9665baa17272aad489398eb72b70e60ff"><code>d29628e</code></a> Remove docker-run-action (<a href="https://redirect.github.com/astral-sh/ruff/issues/23254">#23254</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/8a042667651d7b1cdfc1742478d2b29b04d91be0"><code>8a04266</code></a> [ty] Allow discovering dependencies in system Python environments (<a href="https://redirect.github.com/astral-sh/ruff/issues/22994">#22994</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/55d06c8879761c5500e9558502abc84cefcb7163"><code>55d06c8</code></a> Ensure pending suppression diagnostics are reported (<a href="https://redirect.github.com/astral-sh/ruff/issues/23242">#23242</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/d056a9fa6dfb842f2c0d439bf7b1a8099e5734ea"><code>d056a9f</code></a> [<code>isort</code>] support for configurable import section heading comments (<a href="https://redirect.github.com/astral-sh/ruff/issues/23151">#23151</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/e22fa4f14d8fae550249e452d11bc53756df5c7a"><code>e22fa4f</code></a> [ty] Fix method calls on subclasses of <code>Any</code> (<a href="https://redirect.github.com/astral-sh/ruff/issues/23248">#23248</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/fa56c1550d723e458b91dc2405d5537d40401d5c"><code>fa56c15</code></a> [ty] Fix bound method access on <code>None</code> (<a href="https://redirect.github.com/astral-sh/ruff/issues/23246">#23246</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/4fd07d0e1cbbb4e4c3f5b4c1f04f2d8b3f4a2bf2"><code>4fd07d0</code></a> Make range suppression test snapshot actually useful (<a href="https://redirect.github.com/astral-sh/ruff/issues/23251">#23251</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/8c63bced13b21d1952a56e6a096d9c2ec4af442f"><code>8c63bce</code></a> [ty] Include conditional symbols (like <code>datetime.UTC</code>) in auto-import in more...</li> <li><a href="https://github.com/astral-sh/ruff/commit/46be94361b3b4c54be911eb88bfbd9666eb06a6d"><code>46be943</code></a> Exclude WASM artifacts from GitHub releases (<a href="https://redirect.github.com/astral-sh/ruff/issues/23221">#23221</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.14.13...0.15.1">compare view</a></li> </ul> </details> <br /> 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 <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 </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
LangGraph Prebuilt
This library defines high-level APIs for creating and executing LangGraph agents and tools.
Important
This library is meant to be bundled with
langgraph, don't install it directly
Agents
langgraph-prebuilt provides an implementation of a tool-calling ReAct-style agent - create_react_agent:
pip install langchain-anthropic
from langchain_anthropic import ChatAnthropic
from langgraph.prebuilt import create_react_agent
# Define the tools for the agent to use
def search(query: str):
"""Call to surf the web."""
# This is a placeholder, but don't tell the LLM that...
if "sf" in query.lower() or "san francisco" in query.lower():
return "It's 60 degrees and foggy."
return "It's 90 degrees and sunny."
tools = [search]
model = ChatAnthropic(model="claude-3-7-sonnet-latest")
app = create_react_agent(model, tools)
# run the agent
app.invoke(
{"messages": [{"role": "user", "content": "what is the weather in sf"}]},
)
Tools
ToolNode
langgraph-prebuilt provides an implementation of a node that executes tool calls - ToolNode:
from langgraph.prebuilt import ToolNode
from langchain_core.messages import AIMessage
def search(query: str):
"""Call to surf the web."""
# This is a placeholder, but don't tell the LLM that...
if "sf" in query.lower() or "san francisco" in query.lower():
return "It's 60 degrees and foggy."
return "It's 90 degrees and sunny."
tool_node = ToolNode([search])
tool_calls = [{"name": "search", "args": {"query": "what is the weather in sf"}, "id": "1"}]
ai_message = AIMessage(content="", tool_calls=tool_calls)
# execute tool call
tool_node.invoke({"messages": [ai_message]})
ValidationNode
langgraph-prebuilt provides an implementation of a node that validates tool calls against a pydantic schema - ValidationNode:
from pydantic import BaseModel, field_validator
from langgraph.prebuilt import ValidationNode
from langchain_core.messages import AIMessage
class SelectNumber(BaseModel):
a: int
@field_validator("a")
def a_must_be_meaningful(cls, v):
if v != 37:
raise ValueError("Only 37 is allowed")
return v
validation_node = ValidationNode([SelectNumber])
validation_node.invoke({
"messages": [AIMessage("", tool_calls=[{"name": "SelectNumber", "args": {"a": 42}, "id": "1"}])]
})
Agent Inbox
The library contains schemas for using the Agent Inbox with LangGraph agents. Learn more about how to use Agent Inbox here.
from langgraph.types import interrupt
from langgraph.prebuilt.interrupt import HumanInterrupt, HumanResponse
def my_graph_function():
# Extract the last tool call from the `messages` field in the state
tool_call = state["messages"][-1].tool_calls[0]
# Create an interrupt
request: HumanInterrupt = {
"action_request": {
"action": tool_call['name'],
"args": tool_call['args']
},
"config": {
"allow_ignore": True,
"allow_respond": True,
"allow_edit": False,
"allow_accept": False
},
"description": _generate_email_markdown(state) # Generate a detailed markdown description.
}
# Send the interrupt request inside a list, and extract the first response
response = interrupt([request])[0]
if response['type'] == "response":
# Do something with the response
...