Bumps the langchain-deps group with 2 updates in the /libs/core directory: [langsmith](https://github.com/langchain-ai/langsmith-sdk) and [ruff](https://github.com/astral-sh/ruff). Bumps the langchain-deps group with 6 updates in the /libs/langchain directory: | Package | From | To | | --- | --- | --- | | [langsmith](https://github.com/langchain-ai/langsmith-sdk) | `0.7.1` | `0.7.3` | | [packaging](https://github.com/pypa/packaging) | `24.2` | `26.0` | | [ruff](https://github.com/astral-sh/ruff) | `0.15.0` | `0.15.1` | | [langchain-anthropic](https://github.com/langchain-ai/langchain) | `1.3.2` | `1.3.3` | | [langchain-aws](https://github.com/langchain-ai/langchain-aws) | `1.2.3` | `1.2.5` | | [fastapi](https://github.com/fastapi/fastapi) | `0.128.6` | `0.129.0` | Bumps the langchain-deps group with 2 updates in the /libs/langchain_v1 directory: [ruff](https://github.com/astral-sh/ruff) and [langchain-aws](https://github.com/langchain-ai/langchain-aws). Updates `langsmith` from 0.7.1 to 0.7.3 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/langchain-ai/langsmith-sdk/releases">langsmith's releases</a>.</em></p> <blockquote> <h2>v0.7.3</h2> <h2>What's Changed</h2> <ul> <li>fix: propagate tracingEnabled to nested traceables by <a href="https://github.com/hntrl"><code>@hntrl</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2427">langchain-ai/langsmith-sdk#2427</a></li> <li>chore(python): openai agents: delay span start for spans without inputs on start event by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2424">langchain-ai/langsmith-sdk#2424</a></li> <li>release(py): 0.7.3 by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2428">langchain-ai/langsmith-sdk#2428</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.2...v0.7.3">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.2...v0.7.3</a></p> <h2>v0.7.2</h2> <h2>What's Changed</h2> <ul> <li>release(js): 0.5.1 by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2389">langchain-ai/langsmith-sdk#2389</a></li> <li>fix(js): Remove <a href="https://github.com/internal"><code>@internal</code></a> by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2391">langchain-ai/langsmith-sdk#2391</a></li> <li>release(js): 0.5.2 by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2392">langchain-ai/langsmith-sdk#2392</a></li> <li>chore(deps-dev): bump openai from 5.8.2 to 6.18.0 in /js by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2378">langchain-ai/langsmith-sdk#2378</a></li> <li>chore(deps-dev): bump cross-env from 7.0.3 to 10.1.0 in /js by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2379">langchain-ai/langsmith-sdk#2379</a></li> <li>chore(deps-dev): bump the js-minor-and-patch group in /js with 4 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2376">langchain-ai/langsmith-sdk#2376</a></li> <li>chore(deps-dev): bump node-fetch from 2.7.0 to 3.3.2 in /js by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2380">langchain-ai/langsmith-sdk#2380</a></li> <li>Google ADK LangSmith tracing enhancements by <a href="https://github.com/j-broekhuizen"><code>@j-broekhuizen</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2394">langchain-ai/langsmith-sdk#2394</a></li> <li>chore: update dependabot.yml to comply with posture checks by <a href="https://github.com/jkennedyvz"><code>@jkennedyvz</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2393">langchain-ai/langsmith-sdk#2393</a></li> <li>chore(deps): bump cryptography from 46.0.3 to 46.0.5 in /python in the uv group across 1 directory by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2397">langchain-ai/langsmith-sdk#2397</a></li> <li>chore(deps-dev): bump the js-minor-and-patch group in /js with 6 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2398">langchain-ai/langsmith-sdk#2398</a></li> <li>chore(deps-dev): bump eslint-config-prettier from 8.10.0 to 10.1.8 in /js by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2399">langchain-ai/langsmith-sdk#2399</a></li> <li>chore(deps): bump packaging from 25.0 to 26.0 in /python by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2403">langchain-ai/langsmith-sdk#2403</a></li> <li>chore(deps-dev): bump pytest from 8.4.2 to 9.0.2 in /python by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2405">langchain-ai/langsmith-sdk#2405</a></li> <li>chore(deps): bump the py-minor-and-patch group across 1 directory with 20 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2406">langchain-ai/langsmith-sdk#2406</a></li> <li>fix(js): Log Vitest/Jest outputs even if test throws an error by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2408">langchain-ai/langsmith-sdk#2408</a></li> <li>fix(js): Remove async by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2409">langchain-ai/langsmith-sdk#2409</a></li> <li>release(js): 0.5.3 by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2410">langchain-ai/langsmith-sdk#2410</a></li> <li>fix: ignoring p-queue dep by <a href="https://github.com/jkennedyvz"><code>@jkennedyvz</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2414">langchain-ai/langsmith-sdk#2414</a></li> <li>feat(js): add feedback config CRUD and annotation queue rubric items (closes LSPE-67) by <a href="https://github.com/bentanny"><code>@bentanny</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2420">langchain-ai/langsmith-sdk#2420</a></li> <li>fix(js): Add on_start handler for traceable, use in evaluate by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2421">langchain-ai/langsmith-sdk#2421</a></li> <li>release(js): 0.5.4 by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2422">langchain-ai/langsmith-sdk#2422</a></li> <li>feat(python): add feedback config CRUD and annotation queue rubric items (closes LSPE-67) by <a href="https://github.com/bentanny"><code>@bentanny</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2419">langchain-ai/langsmith-sdk#2419</a></li> <li>feat(python): add exceptions_to_handle to <a href="https://github.com/traceable"><code>@traceable</code></a> by <a href="https://github.com/QuentinBrosse"><code>@QuentinBrosse</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2423">langchain-ai/langsmith-sdk#2423</a></li> <li>release(py): 0.7.2 by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2426">langchain-ai/langsmith-sdk#2426</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/j-broekhuizen"><code>@j-broekhuizen</code></a> made their first contribution in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2394">langchain-ai/langsmith-sdk#2394</a></li> <li><a href="https://github.com/bentanny"><code>@bentanny</code></a> made their first contribution in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2420">langchain-ai/langsmith-sdk#2420</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.1...v0.7.2">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.1...v0.7.2</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="e32d4c18a6"><code>e32d4c1</code></a> release(py): 0.7.3 (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2428">#2428</a>)</li> <li><a href="1c51bf881d"><code>1c51bf8</code></a> chore(python): openai agents: delay span start for spans without inputs on st...</li> <li><a href="a41bf22dad"><code>a41bf22</code></a> fix: propagate tracingEnabled to nested traceables (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2427">#2427</a>)</li> <li><a href="3a6e9dac4b"><code>3a6e9da</code></a> release(py): 0.7.2 (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2426">#2426</a>)</li> <li><a href="f665e865e7"><code>f665e86</code></a> feat(python): add exceptions_to_handle to <a href="https://github.com/traceable"><code>@traceable</code></a> (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2423">#2423</a>)</li> <li><a href="565c4a2c57"><code>565c4a2</code></a> feat(python): add feedback config CRUD and annotation queue rubric items (clo...</li> <li><a href="e1b1fe13c3"><code>e1b1fe1</code></a> release(js): 0.5.4 (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2422">#2422</a>)</li> <li><a href="6af564608a"><code>6af5646</code></a> fix(js): Add on_start handler for traceable, use in evaluate (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2421">#2421</a>)</li> <li><a href="fb0ce1d4bf"><code>fb0ce1d</code></a> feat(js): add feedback config CRUD and annotation queue rubric items (closes ...</li> <li><a href="61783fbd7c"><code>61783fb</code></a> fix: ignoring p-queue dep (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2414">#2414</a>)</li> <li>Additional commits viewable in <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.1...v0.7.3">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.15.0 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="a2f11d239f"><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="d29628e966"><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="8a04266765"><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="55d06c8879"><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="d056a9fa6d"><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="e22fa4f14d"><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="fa56c1550d"><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="4fd07d0e1c"><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="8c63bced13"><code>8c63bce</code></a> [ty] Include conditional symbols (like <code>datetime.UTC</code>) in auto-import in more...</li> <li><a href="46be94361b"><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.15.0...0.15.1">compare view</a></li> </ul> </details> <br /> Updates `langsmith` from 0.7.1 to 0.7.3 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/langchain-ai/langsmith-sdk/releases">langsmith's releases</a>.</em></p> <blockquote> <h2>v0.7.3</h2> <h2>What's Changed</h2> <ul> <li>fix: propagate tracingEnabled to nested traceables by <a href="https://github.com/hntrl"><code>@hntrl</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2427">langchain-ai/langsmith-sdk#2427</a></li> <li>chore(python): openai agents: delay span start for spans without inputs on start event by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2424">langchain-ai/langsmith-sdk#2424</a></li> <li>release(py): 0.7.3 by <a href="https://github.com/angus-langchain"><code>@angus-langchain</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2428">langchain-ai/langsmith-sdk#2428</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.2...v0.7.3">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.2...v0.7.3</a></p> <h2>v0.7.2</h2> <h2>What's Changed</h2> <ul> <li>release(js): 0.5.1 by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2389">langchain-ai/langsmith-sdk#2389</a></li> <li>fix(js): Remove <a href="https://github.com/internal"><code>@internal</code></a> by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2391">langchain-ai/langsmith-sdk#2391</a></li> <li>release(js): 0.5.2 by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2392">langchain-ai/langsmith-sdk#2392</a></li> <li>chore(deps-dev): bump openai from 5.8.2 to 6.18.0 in /js by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2378">langchain-ai/langsmith-sdk#2378</a></li> <li>chore(deps-dev): bump cross-env from 7.0.3 to 10.1.0 in /js by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2379">langchain-ai/langsmith-sdk#2379</a></li> <li>chore(deps-dev): bump the js-minor-and-patch group in /js with 4 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2376">langchain-ai/langsmith-sdk#2376</a></li> <li>chore(deps-dev): bump node-fetch from 2.7.0 to 3.3.2 in /js by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2380">langchain-ai/langsmith-sdk#2380</a></li> <li>Google ADK LangSmith tracing enhancements by <a href="https://github.com/j-broekhuizen"><code>@j-broekhuizen</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2394">langchain-ai/langsmith-sdk#2394</a></li> <li>chore: update dependabot.yml to comply with posture checks by <a href="https://github.com/jkennedyvz"><code>@jkennedyvz</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2393">langchain-ai/langsmith-sdk#2393</a></li> <li>chore(deps): bump cryptography from 46.0.3 to 46.0.5 in /python in the uv group across 1 directory by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2397">langchain-ai/langsmith-sdk#2397</a></li> <li>chore(deps-dev): bump the js-minor-and-patch group in /js with 6 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2398">langchain-ai/langsmith-sdk#2398</a></li> <li>chore(deps-dev): bump eslint-config-prettier from 8.10.0 to 10.1.8 in /js by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2399">langchain-ai/langsmith-sdk#2399</a></li> <li>chore(deps): bump packaging from 25.0 to 26.0 in /python by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2403">langchain-ai/langsmith-sdk#2403</a></li> <li>chore(deps-dev): bump pytest from 8.4.2 to 9.0.2 in /python by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2405">langchain-ai/langsmith-sdk#2405</a></li> <li>chore(deps): bump the py-minor-and-patch group across 1 directory with 20 updates by <a href="https://github.com/dependabot"><code>@dependabot</code></a>[bot] in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2406">langchain-ai/langsmith-sdk#2406</a></li> <li>fix(js): Log Vitest/Jest outputs even if test throws an error by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2408">langchain-ai/langsmith-sdk#2408</a></li> <li>fix(js): Remove async by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2409">langchain-ai/langsmith-sdk#2409</a></li> <li>release(js): 0.5.3 by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2410">langchain-ai/langsmith-sdk#2410</a></li> <li>fix: ignoring p-queue dep by <a href="https://github.com/jkennedyvz"><code>@jkennedyvz</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2414">langchain-ai/langsmith-sdk#2414</a></li> <li>feat(js): add feedback config CRUD and annotation queue rubric items (closes LSPE-67) by <a href="https://github.com/bentanny"><code>@bentanny</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2420">langchain-ai/langsmith-sdk#2420</a></li> <li>fix(js): Add on_start handler for traceable, use in evaluate by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2421">langchain-ai/langsmith-sdk#2421</a></li> <li>release(js): 0.5.4 by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2422">langchain-ai/langsmith-sdk#2422</a></li> <li>feat(python): add feedback config CRUD and annotation queue rubric items (closes LSPE-67) by <a href="https://github.com/bentanny"><code>@bentanny</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2419">langchain-ai/langsmith-sdk#2419</a></li> <li>feat(python): add exceptions_to_handle to <a href="https://github.com/traceable"><code>@traceable</code></a> by <a href="https://github.com/QuentinBrosse"><code>@QuentinBrosse</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2423">langchain-ai/langsmith-sdk#2423</a></li> <li>release(py): 0.7.2 by <a href="https://github.com/jacoblee93"><code>@jacoblee93</code></a> in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2426">langchain-ai/langsmith-sdk#2426</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/j-broekhuizen"><code>@j-broekhuizen</code></a> made their first contribution in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2394">langchain-ai/langsmith-sdk#2394</a></li> <li><a href="https://github.com/bentanny"><code>@bentanny</code></a> made their first contribution in <a href="https://redirect.github.com/langchain-ai/langsmith-sdk/pull/2420">langchain-ai/langsmith-sdk#2420</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.1...v0.7.2">https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.1...v0.7.2</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="e32d4c18a6"><code>e32d4c1</code></a> release(py): 0.7.3 (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2428">#2428</a>)</li> <li><a href="1c51bf881d"><code>1c51bf8</code></a> chore(python): openai agents: delay span start for spans without inputs on st...</li> <li><a href="a41bf22dad"><code>a41bf22</code></a> fix: propagate tracingEnabled to nested traceables (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2427">#2427</a>)</li> <li><a href="3a6e9dac4b"><code>3a6e9da</code></a> release(py): 0.7.2 (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2426">#2426</a>)</li> <li><a href="f665e865e7"><code>f665e86</code></a> feat(python): add exceptions_to_handle to <a href="https://github.com/traceable"><code>@traceable</code></a> (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2423">#2423</a>)</li> <li><a href="565c4a2c57"><code>565c4a2</code></a> feat(python): add feedback config CRUD and annotation queue rubric items (clo...</li> <li><a href="e1b1fe13c3"><code>e1b1fe1</code></a> release(js): 0.5.4 (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2422">#2422</a>)</li> <li><a href="6af564608a"><code>6af5646</code></a> fix(js): Add on_start handler for traceable, use in evaluate (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2421">#2421</a>)</li> <li><a href="fb0ce1d4bf"><code>fb0ce1d</code></a> feat(js): add feedback config CRUD and annotation queue rubric items (closes ...</li> <li><a href="61783fbd7c"><code>61783fb</code></a> fix: ignoring p-queue dep (<a href="https://redirect.github.com/langchain-ai/langsmith-sdk/issues/2414">#2414</a>)</li> <li>Additional commits viewable in <a href="https://github.com/langchain-ai/langsmith-sdk/compare/v0.7.1...v0.7.3">compare view</a></li> </ul> </details> <br /> Updates `packaging` from 24.2 to 26.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pypa/packaging/releases">packaging's releases</a>.</em></p> <blockquote> <h2>26.0</h2> <p>Read about the performance improvements here: <a href="https://iscinumpy.dev/post/packaging-faster">https://iscinumpy.dev/post/packaging-faster</a>.</p> <h2>What's Changed</h2> <p>Features:</p> <ul> <li>PEP 751: support pylock by <a href="https://github.com/sbidoul"><code>@sbidoul</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/900">pypa/packaging#900</a></li> <li>PEP 794: import name metadata by <a href="https://github.com/brettcannon"><code>@brettcannon</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/948">pypa/packaging#948</a></li> <li>Support writing metadata by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/846">pypa/packaging#846</a></li> <li>Support <code>__replace__</code> for <code>Version</code> by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/1003">pypa/packaging#1003</a></li> <li>Support positional pattern matching for <code>Version</code> and <code>Specifier</code> by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/1004">pypa/packaging#1004</a></li> </ul> <p>Behavior adaptations:</p> <ul> <li>PEP 440 handling of prereleases for <code>Specifier.contains</code>, <code>SpecifierSet.contains</code>, and <code>SpecifierSet.filter</code> by <a href="https://github.com/notatallshaw"><code>@notatallshaw</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/897">pypa/packaging#897</a></li> <li>Handle PEP 440 edge case in <code>SpecifierSet.filter</code> by <a href="https://github.com/notatallshaw"><code>@notatallshaw</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/942">pypa/packaging#942</a></li> <li>Adjust arbitrary equality intersection preservation in <code>SpecifierSet</code> by <a href="https://github.com/notatallshaw"><code>@notatallshaw</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/951">pypa/packaging#951</a></li> <li>Return <code>False</code> instead of raising for <code>.contains</code> with invalid version by <a href="https://github.com/Liam-DeVoe"><code>@Liam-DeVoe</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/932">pypa/packaging#932</a></li> <li>Support arbitrary equality on arbitrary strings for <code>Specifier</code> and <code>SpecifierSet</code>'s <code>filter</code> and <code>contains</code> method. by <a href="https://github.com/notatallshaw"><code>@notatallshaw</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/954">pypa/packaging#954</a></li> <li>Only try to parse as <code>Version</code> on certain marker keys, return <code>False</code> on unequal ordered comparsions by <a href="https://github.com/JP-Ellis"><code>@JP-Ellis</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/939">pypa/packaging#939</a></li> </ul> <p>Fixes:</p> <ul> <li>Update <code>_hash</code> when unpickling <code>Tag()</code> by <a href="https://github.com/dholth"><code>@dholth</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/860">pypa/packaging#860</a></li> <li>Correct comment and simplify implicit prerelease handling in <code>Specifier.prereleases</code> by <a href="https://github.com/notatallshaw"><code>@notatallshaw</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/896">pypa/packaging#896</a></li> <li>Use explicit <code>_GLibCVersion</code> <code>NamedTuple</code> in <code>_manylinux</code> by <a href="https://github.com/cthoyt"><code>@cthoyt</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/868">pypa/packaging#868</a></li> <li>Detect invalid license expressions containing <code>()</code> by <a href="https://github.com/bwoodsend"><code>@bwoodsend</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/879">pypa/packaging#879</a></li> <li>Correct regex for metadata <code>'name'</code> format by <a href="https://github.com/di"><code>@di</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/925">pypa/packaging#925</a></li> <li>Improve the message around expecting a semicolon by <a href="https://github.com/pradyunsg"><code>@pradyunsg</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/833">pypa/packaging#833</a></li> <li>Support nested parens in license expressions by <a href="https://github.com/Liam-DeVoe"><code>@Liam-DeVoe</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/931">pypa/packaging#931</a></li> <li>Add space before at symbol in <code>Requirements</code> string by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/953">pypa/packaging#953</a></li> <li>A root logger use found by ruff LOG, use <code>packaging</code> logger instead by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/965">pypa/packaging#965</a></li> <li>Better support for subclassing <code>Marker</code> and <code>Requirement</code> by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/1022">pypa/packaging#1022</a></li> <li>Normalize all extras, not just if it comes first by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/1024">pypa/packaging#1024</a></li> <li>Don't produce a broken repr if <code>Marker</code> fails to construct by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/1033">pypa/packaging#1033</a></li> </ul> <p>Performance:</p> <ul> <li>Avoid recompiling regexes in the tokenizer for a 3x speedup by <a href="https://github.com/hauntsaninja"><code>@hauntsaninja</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/1019">pypa/packaging#1019</a></li> <li>Improve performance in <code>_manylinux.py</code> by <a href="https://github.com/cthoyt"><code>@cthoyt</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/869">pypa/packaging#869</a></li> <li>Minor cleanups to <code>Version</code> by <a href="https://github.com/bearomorphism"><code>@bearomorphism</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/913">pypa/packaging#913</a></li> <li>Skip redundant creation of <code>Version</code>s in specifier comparison by <a href="https://github.com/notatallshaw"><code>@notatallshaw</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/986">pypa/packaging#986</a></li> <li>Cache <code>Specifier</code>'s Version by <a href="https://github.com/notatallshaw"><code>@notatallshaw</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/985">pypa/packaging#985</a></li> <li>Make <code>Version</code> a little faster by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/987">pypa/packaging#987</a></li> <li>Minor <code>Version</code> regex cleanup by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/990">pypa/packaging#990</a></li> <li>Faster regex on Python 3.11.5+ by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/988">pypa/packaging#988</a> and <a href="https://redirect.github.com/pypa/packaging/pull/1055">pypa/packaging#1055</a></li> <li>Lazily calculate <code>_key</code> in <code>Version</code> by <a href="https://github.com/notatallshaw"><code>@notatallshaw</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/989">pypa/packaging#989</a> and regression for <code>packaging_legacy</code> fixed by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/1048">pypa/packaging#1048</a></li> <li>Faster <code>canonicalize_version</code> by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/993">pypa/packaging#993</a></li> <li>Use <code>fullmatch</code> in a couple more places by <a href="https://github.com/henryiii"><code>@henryiii</code></a> in <a href="https://redirect.github.com/pypa/packaging/pull/992">pypa/packaging#992</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pypa/packaging/blob/main/CHANGELOG.rst">packaging's changelog</a>.</em></p> <blockquote> <p>26.0 - 2026-01-20</p> <pre><code> Features: <ul> <li>PEP 751: support pylock (:pull:<code>900</code>)</li> <li>PEP 794: import name metadata (:pull:<code>948</code>)</li> <li>Support for writing metadata to a file (:pull:<code>846</code>)</li> <li>Support <code>__replace__</code> on Version (:pull:<code>1003</code>)</li> <li>Support positional pattern matching for <code>Version</code> and <code>SpecifierSet</code> (:pull:<code>1004</code>)</li> </ul> <p>Behavior adaptations:</p> <ul> <li>PEP 440 handling of prereleases for <code>Specifier.contains</code>, <code>SpecifierSet.contains</code>, and <code>SpecifierSet.filter</code> (:pull:<code>897</code>)</li> <li>Handle PEP 440 edge case in <code>SpecifierSet.filter</code> (:pull:<code>942</code>)</li> <li>Adjust arbitrary equality intersection preservation in <code>SpecifierSet</code> (:pull:<code>951</code>)</li> <li>Return <code>False</code> instead of raising for <code>.contains</code> with invalid version (:pull:<code>932</code>)</li> <li>Support arbitrary equality on arbitrary strings for <code>Specifier</code> and <code>SpecifierSet</code>'s <code>filter</code> and <code>contains</code> method. (:pull:<code>954</code>)</li> <li>Only try to parse as <code>Version</code> on certain marker keys, return <code>False</code> on unequal ordered comparisons (:pull:<code>939</code>)</li> </ul> <p>Fixes:</p> <ul> <li>Update <code>_hash</code> when unpickling <code>Tag()</code> (:pull:<code>860</code>)</li> <li>Correct comment and simplify implicit prerelease handling in <code>Specifier.prereleases</code> (:pull:<code>896</code>)</li> <li>Use explicit <code>_GLibCVersion</code> <code>NamedTuple</code> in <code>_manylinux</code> (:pull:<code>868</code>)</li> <li>Detect invalid license expressions containing <code>()</code> (:pull:<code>879</code>)</li> <li>Correct regex for metadata <code>'name'</code> format (:pull:<code>925</code>)</li> <li>Improve the message around expecting a semicolon (:pull:<code>833</code>)</li> <li>Support nested parens in license expressions (:pull:<code>931</code>)</li> <li>Add space before at symbol in <code>Requirements</code> string (:pull:<code>953</code>)</li> <li>A root logger use found, use a <code>packaging</code> logger instead (:pull:<code>965</code>)</li> <li>Better support for subclassing <code>Marker</code> and <code>Requirement</code> (:pull:<code>1022</code>)</li> <li>Normalize all extras, not just if it comes first (:pull:<code>1024</code>)</li> <li>Don't produce a broken repr if <code>Marker</code> fails to construct (:pull:<code>1033</code>)</li> </ul> <p>Performance:</p> <ul> <li>Avoid recompiling regexes in the tokenizer for a 3x speedup (:pull:<code>1019</code>)</li> <li>Improve performance in <code>_manylinux.py</code> (:pull:<code>869</code>)</li> <li>Minor cleanups to <code>Version</code> (:pull:<code>913</code>)</li> <li>Skip redundant creation of <code>Version</code>'s in specifier comparison (:pull:<code>986</code>)</li> <li>Cache the <code>Specifier</code>'s <code>Version</code> (:pull:<code>985</code>)</li> <li>Make <code>Version</code> a little faster (:pull:<code>987</code>)</li> <li>Minor <code>Version</code> regex cleanup (:pull:<code>990</code>)</li> <li>Faster regex on Python 3.11.5+ for <code>Version</code> (:pull:<code>988</code>, :pull:<code>1055</code>)</li> <li>Lazily calculate <code>_key</code> in <code>Version</code> (:pull:<code>989</code>, :pull:<code>1048</code>)</li> <li>Faster <code>canonicalize_version</code> (:pull:<code>993</code>)</li> <li>Use <code>re.fullmatch</code> in a couple more places (:pull:<code>992</code>, :pull:<code>1029</code>)</li> <li>Use <code>map</code> instead of generator (:pull:<code>996</code>)</li> <li>Deprecate <code>._version</code> (<code>_Version</code>, a <code>NamedTuple</code>) (:pull:<code>995</code>, :pull:<code>1062</code>)<br /> </tr></table><br /> </code></pre></li> </ul> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="3b77a26f5a"><code>3b77a26</code></a> Bump for release</li> <li><a href="31371cce59"><code>31371cc</code></a> docs: prepare for 26.0 final (<a href="https://redirect.github.com/pypa/packaging/issues/1063">#1063</a>)</li> <li><a href="9627a8821f"><code>9627a88</code></a> perf: dual replace (<a href="https://redirect.github.com/pypa/packaging/issues/1064">#1064</a>)</li> <li><a href="d5398b8bc1"><code>d5398b8</code></a> fix: restore ._version as a compat shim (<a href="https://redirect.github.com/pypa/packaging/issues/1062">#1062</a>)</li> <li><a href="3a7b600a12"><code>3a7b600</code></a> Bump for development</li> <li><a href="d4eefdccf9"><code>d4eefdc</code></a> Bump for release</li> <li><a href="46189124fb"><code>4618912</code></a> docs: prepare for 26.0rc3 (<a href="https://redirect.github.com/pypa/packaging/issues/1060">#1060</a>)</li> <li><a href="0cf1b41b4b"><code>0cf1b41</code></a> ci: test on first public release of CPythons (<a href="https://redirect.github.com/pypa/packaging/issues/1056">#1056</a>)</li> <li><a href="716beb1c0a"><code>716beb1</code></a> perf: 10% faster stripping zeros (<a href="https://redirect.github.com/pypa/packaging/issues/1058">#1058</a>)</li> <li><a href="350a230670"><code>350a230</code></a> fix: support CPython 3.11.0-3.11.4 and older PyPy3.11 (<a href="https://redirect.github.com/pypa/packaging/issues/1055">#1055</a>)</li> <li>Additional commits viewable in <a href="https://github.com/pypa/packaging/compare/24.2...26.0">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.15.0 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... _Description has been truncated_ Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Packages
Important
This repository is structured as a monorepo, with various packages located in this libs/ directory. Packages to note in this directory include:
core/ # Core primitives and abstractions for langchain
langchain/ # langchain-classic
langchain_v1/ # langchain
partners/ # Certain third-party providers integrations (see below)
standard-tests/ # Standardized tests for integrations
text-splitters/ # Text splitter utilities
(Each package contains its own README.md file with specific details about that package.)
Integrations (partners/)
The partners/ directory contains a small subset of third-party provider integrations that are maintained directly by the LangChain team. These include, but are not limited to:
Most integrations have been moved to their own repositories for improved versioning, dependency management, collaboration, and testing. This includes packages from popular providers such as Google and AWS. Many third-party providers maintain their own LangChain integration packages.
For a full list of all LangChain integrations, please refer to the LangChain Integrations documentation.