Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: openai/openai-python
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v3.47.0
Choose a base ref
...
head repository: openai/openai-python
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v3.48.0
Choose a head ref
  • 8 commits
  • 56 files changed
  • 7 contributors

Commits on Nov 5, 2026

  1. feat(api): add stream options for agent sessions (#4251)

    Adds options for controlling padding in agent session event streams.
    
    - Accept stream_options when creating a session and include_obfuscation when streaming its events
    - Expose optional obfuscation padding on session events
    - Keep event padding enabled by default
    marcuswood-oai authored Nov 5, 2026
    Configuration menu
    Copy the full SHA
    c6fc264 View commit details
    Browse the repository at this point in the history

Commits on Nov 6, 2026

  1. docs: consolidate AGENTS.md guidance (#4254)

    ## Changes being requested
    
    Reduce AGENTS.md from 786 to 505 words (36%) by linking the existing
    contributor security and Python support policies, consolidating
    generated-file ownership, and shortening repeated prose.
    
    Retain the unique agent requirements, CODEOWNER/security regression
    gates, complete Python-version validation command sequence, automation
    isolation, and large-payload compatibility/test constraints. Preserve
    the generated-file-ownership anchor.
    
    ## Additional context & links
    
    Validation:
    - Completed basic diff and semantic-preservation review, including proxy
    security review, Python-floor changes, automation authority, and
    large-payload regression scenarios.
    - Verified all local file links and heading anchors; retained original
    section anchors.
    - Compared the validation shell block byte-for-byte with the original;
    unchanged.
    - Diff whitespace check passed.
    - No Python lint/build/runtime tests run: only AGENTS.md changed;
    repository lint/format scripts do not check this Markdown file.
    jbeckwith-oai authored Nov 6, 2026
    Configuration menu
    Copy the full SHA
    44b1555 View commit details
    Browse the repository at this point in the history

Commits on Nov 7, 2026

  1. chore(api): retain agent scheduling support (#4255)

    ## Summary
    
    Retains the existing agent scheduling APIs.
    
    ## Changes
    
    - Preserve the existing agent scheduling APIs.
    
    Co-authored-by: jbeckwith-oai <[email protected]>
    jbeckwith-oai and jbeckwith-oai authored Nov 7, 2026
    Configuration menu
    Copy the full SHA
    a1175a3 View commit details
    Browse the repository at this point in the history

Commits on Nov 8, 2026

  1. feat(api): recognize gpt-6-rosalind in beta Responses (#4257)

    ## Summary
    
    Includes gpt-6-rosalind in beta Responses model type hints.
    
    ## Changes
    
    - Include gpt-6-rosalind among known beta Responses model values.
    
    Co-authored-by: dpiet-oai <[email protected]>
    dpiet-oai and dpiet-oai authored Nov 8, 2026
    Configuration menu
    Copy the full SHA
    3774b7e View commit details
    Browse the repository at this point in the history

Commits on Nov 9, 2026

  1. chore(deps-dev): bump the python-maintenance group with 5 updates (#4258

    )
    
    Bumps the python-maintenance group with 5 updates:
    
    | Package | From | To |
    | --- | --- | --- |
    | [botocore](https://github.com/boto/botocore) | `1.43.119` | `1.43.123`
    |
    | [ty](https://github.com/astral-sh/ty) | `0.0.92` | `0.0.95` |
    | [pytest](https://github.com/pytest-dev/pytest) | `9.1.1` | `9.2.0` |
    | [trio](https://github.com/python-trio/trio) | `0.34.0` | `0.35.0` |
    | [hatchling](https://github.com/pypa/hatch) | `1.32.4` | `1.33.0` |
    
    Updates `botocore` from 1.43.119 to 1.43.123
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/boto/botocore/commit/c2b1d5167979786c0c9225485e9dba568e8db8f4"><code>c2b1d51</code></a>
    Merge branch 'release-1.43.123'</li>
    <li><a
    href="https://github.com/boto/botocore/commit/2dba97053e1f7614d727cbbf335b225bdb94f59b"><code>2dba970</code></a>
    Bumping version to 1.43.123</li>
    <li><a
    href="https://github.com/boto/botocore/commit/70ea7e376aff09029ace10f830a7b39ec481f4e1"><code>70ea7e3</code></a>
    Update endpoints model</li>
    <li><a
    href="https://github.com/boto/botocore/commit/e98435807abeea13316091908de45380931f9267"><code>e984358</code></a>
    Update to latest models</li>
    <li><a
    href="https://github.com/boto/botocore/commit/76af6f8964c1f2f3a209508e09b2863bb2299f1f"><code>76af6f8</code></a>
    Merge branch 'release-1.43.122'</li>
    <li><a
    href="https://github.com/boto/botocore/commit/7f517a30f80daa50e2ab84c9b1cfa073c4d8cf58"><code>7f517a3</code></a>
    Merge branch 'release-1.43.122' into develop</li>
    <li><a
    href="https://github.com/boto/botocore/commit/88fd8aa174bb44f4b90f904a54de91652bc712ed"><code>88fd8aa</code></a>
    Bumping version to 1.43.122</li>
    <li><a
    href="https://github.com/boto/botocore/commit/f16acbc44fb5ec64131c80db1676596e82491337"><code>f16acbc</code></a>
    Update to latest models</li>
    <li><a
    href="https://github.com/boto/botocore/commit/3c9efec65ff08d246702b0eceaae197157ef1a23"><code>3c9efec</code></a>
    fix(s3): prevent generate_presigned_post from mutating Conditions (<a
    href="https://redirect.github.com/boto/botocore/issues/3847">#3847</a>)
    (<a
    href="https://redirect.github.com/boto/botocore/issues/3">#3</a>...</li>
    <li><a
    href="https://github.com/boto/botocore/commit/750c41deb4a479d05ddfe7fe67f5595c75adf18e"><code>750c41d</code></a>
    Update awscrt version to 0.38.0 (<a
    href="https://redirect.github.com/boto/botocore/issues/3850">#3850</a>)</li>
    <li>Additional commits viewable in <a
    href="https://github.com/boto/botocore/compare/1.43.119...1.43.123">compare
    view</a></li>
    </ul>
    </details>
    <br />
    
    Updates `ty` from 0.0.92 to 0.0.95
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a
    href="https://github.com/astral-sh/ty/releases">ty's
    releases</a>.</em></p>
    <blockquote>
    <h2>0.0.95</h2>
    <h2>Release Notes</h2>
    <p>Released on 2026-10-29.</p>
    <h3>Bug fixes</h3>
    <ul>
    <li>Accept another unpacked TypeVarTuple as a default (<a
    href="https://redirect.github.com/astral-sh/ruff/pull/29752">#29752</a>)</li>
    <li>Accept keyword arguments for <code>TypeAliasType</code> name and
    value (<a
    href="https://redirect.github.com/astral-sh/ruff/pull/29802">#29802</a>)</li>
    <li>Detect traversal budget exhaustion in products of lower bounds (<a
    href="https://redirect.github.com/astral-sh/ruff/pull/29679">#29679</a>)</li>
    <li>Fix recursive protocol materialization self-comparison (<a
    href="https://redirect.github.com/astral-sh/ruff/pull/29809">#29809</a>)</li>
    <li>Reject out-of-scope type variables in PEP 695 pack defaults (<a
    href="https://redirect.github.com/astral-sh/ruff/pull/29805">#29805</a>)</li>
    <li>Use a trailing ParamSpec default after a TypeVarTuple (<a
    href="https://redirect.github.com/astral-sh/ruff/pull/29755">#29755</a>)</li>
    </ul>
    <h3>LSP server</h3>
    <ul>
    <li>Parenthesize assignment and generator expressions in argument hint
    edits (<a
    href="https://redirect.github.com/astral-sh/ruff/pull/29797">#29797</a>)</li>
    <li>Place argument name inlay hints before grouping parentheses (<a
    href="https://redirect.github.com/astral-sh/ruff/pull/29794">#29794</a>)</li>
    <li>Place variable type inlay hints after grouping parentheses (<a
    href="https://redirect.github.com/astral-sh/ruff/pull/29795">#29795</a>)</li>
    </ul>
    <h3>Contributors</h3>
    <ul>
    <li><a href="https://github.com/carljm"><code>@​carljm</code></a></li>
    <li><a
    href="https://github.com/AlexWaygood"><code>@​AlexWaygood</code></a></li>
    <li><a
    href="https://github.com/charliermarsh"><code>@​charliermarsh</code></a></li>
    </ul>
    <h2>Install ty 0.0.95</h2>
    <h3>Install prebuilt binaries via shell script</h3>
    <pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf
    https://releases.astral.sh/github/ty/releases/download/0.0.95/ty-installer.sh
    | sh
    </code></pre>
    <h3>Install prebuilt binaries via powershell script</h3>
    <pre lang="sh"><code>powershell -ExecutionPolicy Bypass -c &quot;irm
    https://releases.astral.sh/github/ty/releases/download/0.0.95/ty-installer.ps1
    | iex&quot;
    </code></pre>
    <h2>Download ty 0.0.95</h2>
    <table>
    <thead>
    <tr>
    <th>File</th>
    <th>Platform</th>
    <th>Checksum</th>
    </tr>
    </thead>
    <tbody>
    <tr>
    <td><a
    href="https://releases.astral.sh/github/ty/releases/download/0.0.95/ty-aarch64-apple-darwin.tar.gz">ty-aarch64-apple-darwin.tar.gz</a></td>
    <td>Apple Silicon macOS</td>
    <td><a
    href="https://releases.astral.sh/github/ty/releases/download/0.0.95/ty-aarch64-apple-darwin.tar.gz.sha256">checksum</a></td>
    </tr>
    <tr>
    <td><a
    href="https://releases.astral.sh/github/ty/releases/download/0.0.95/ty-x86_64-apple-darwin.tar.gz">ty-x86_64-apple-darwin.tar.gz</a></td>
    <td>Intel macOS</td>
    <td><a
    href="https://releases.astral.sh/github/ty/releases/download/0.0.95/ty-x86_64-apple-darwin.tar.gz.sha256">checksum</a></td>
    </tr>
    <tr>
    <td><a
    href="https://releases.astral.sh/github/ty/releases/download/0.0.95/ty-aarch64-pc-windows-msvc.zip">ty-aarch64-pc-windows-msvc.zip</a></td>
    <td>ARM64 Windows</td>
    <td><a
    href="https://releases.astral.sh/github/ty/releases/download/0.0.95/ty-aarch64-pc-windows-msvc.zip.sha256">checksum</a></td>
    </tr>
    <tr>
    <td><a
    href="https://releases.astral.sh/github/ty/releases/download/0.0.95/ty-i686-pc-windows-msvc.zip">ty-i686-pc-windows-msvc.zip</a></td>
    <td>x86 Windows</td>
    <td><a
    href="https://releases.astral.sh/github/ty/releases/download/0.0.95/ty-i686-pc-windows-msvc.zip.sha256">checksum</a></td>
    </tr>
    <tr>
    <td><a
    href="https://releases.astral.sh/github/ty/releases/download/0.0.95/ty-x86_64-pc-windows-msvc.zip">ty-x86_64-pc-windows-msvc.zip</a></td>
    <td>x64 Windows</td>
    <td><a
    href="https://releases.astral.sh/github/ty/releases/download/0.0.95/ty-x86_64-pc-windows-msvc.zip.sha256">checksum</a></td>
    </tr>
    <tr>
    <td><a
    href="https://releases.astral.sh/github/ty/releases/download/0.0.95/ty-aarch64-unknown-linux-gnu.tar.gz">ty-aarch64-unknown-linux-gnu.tar.gz</a></td>
    <td>ARM64 Linux</td>
    <td><a
    href="https://releases.astral.sh/github/ty/releases/download/0.0.95/ty-aarch64-unknown-linux-gnu.tar.gz.sha256">checksum</a></td>
    </tr>
    </tbody>
    </table>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a
    href="https://github.com/astral-sh/ty/blob/main/CHANGELOG.md">ty's
    changelog</a>.</em></p>
    <blockquote>
    <h2>0.0.95</h2>
    <p>Released on 2026-10-29.</p>
    <h3>Bug fixes</h3>
    <ul>
    <li>Accept another unpacked TypeVarTuple as a default (<a
    href="https://redirect.github.com/astral-sh/ruff/pull/29752">#29752</a>)</li>
    <li>Accept keyword arguments for <code>TypeAliasType</code> name and
    value (<a
    href="https://redirect.github.com/astral-sh/ruff/pull/29802">#29802</a>)</li>
    <li>Detect traversal budget exhaustion in products of lower bounds (<a
    href="https://redirect.github.com/astral-sh/ruff/pull/29679">#29679</a>)</li>
    <li>Fix recursive protocol materialization self-comparison (<a
    href="https://redirect.github.com/astral-sh/ruff/pull/29809">#29809</a>)</li>
    <li>Reject out-of-scope type variables in PEP 695 pack defaults (<a
    href="https://redirect.github.com/astral-sh/ruff/pull/29805">#29805</a>)</li>
    <li>Use a trailing ParamSpec default after a TypeVarTuple (<a
    href="https://redirect.github.com/astral-sh/ruff/pull/29755">#29755</a>)</li>
    </ul>
    <h3>LSP server</h3>
    <ul>
    <li>Parenthesize assignment and generator expressions in argument hint
    edits (<a
    href="https://redirect.github.com/astral-sh/ruff/pull/29797">#29797</a>)</li>
    <li>Place argument name inlay hints before grouping parentheses (<a
    href="https://redirect.github.com/astral-sh/ruff/pull/29794">#29794</a>)</li>
    <li>Place variable type inlay hints after grouping parentheses (<a
    href="https://redirect.github.com/astral-sh/ruff/pull/29795">#29795</a>)</li>
    </ul>
    <h3>Contributors</h3>
    <ul>
    <li><a href="https://github.com/carljm"><code>@​carljm</code></a></li>
    <li><a
    href="https://github.com/AlexWaygood"><code>@​AlexWaygood</code></a></li>
    <li><a
    href="https://github.com/charliermarsh"><code>@​charliermarsh</code></a></li>
    </ul>
    <h2>0.0.94</h2>
    <p>Released on 2026-10-28.</p>
    <h3>Bug fixes</h3>
    <ul>
    <li>Correctly handle line continuation when fixing unused ignore
    comments (<a
    href="https://redirect.github.com/astral-sh/ruff/pull/29781">#29781</a>)</li>
    <li>Fix Linux x86-64 startup on older kernels (<a
    href="https://redirect.github.com/astral-sh/ty/pull/4853">#4853</a>)</li>
    <li>Fix a panic when a comprehension filter depends on a later binding
    (<a
    href="https://redirect.github.com/astral-sh/ruff/pull/29786">#29786</a>)</li>
    <li>Fix a panic when sorting diagnostics without a source location (<a
    href="https://redirect.github.com/astral-sh/ruff/pull/29780">#29780</a>)</li>
    <li>Fix panic on a chained assignment with a missing value (<a
    href="https://redirect.github.com/astral-sh/ruff/pull/29787">#29787</a>)</li>
    <li>Reject defaulted TypeVars after a TypeVarTuple in legacy generic
    classes (<a
    href="https://redirect.github.com/astral-sh/ruff/pull/29753">#29753</a>)</li>
    </ul>
    <h3>Other changes</h3>
    <ul>
    <li>Django: suppress invalid-override errors for <code>Meta</code>
    configurations (<a
    href="https://redirect.github.com/astral-sh/ruff/pull/29769">#29769</a>)</li>
    </ul>
    <h3>Contributors</h3>
    <ul>
    <li><a href="https://github.com/sharkdp"><code>@​sharkdp</code></a></li>
    <li><a
    href="https://github.com/charliermarsh"><code>@​charliermarsh</code></a></li>
    <li><a
    href="https://github.com/MichaReiser"><code>@​MichaReiser</code></a></li>
    </ul>
    <h2>0.0.93</h2>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/astral-sh/ty/commit/48c5ea1baf6144dc9918ae60040aaa4198b251ce"><code>48c5ea1</code></a>
    Bump version to 0.0.95 (<a
    href="https://redirect.github.com/astral-sh/ty/issues/4870">#4870</a>)</li>
    <li><a
    href="https://github.com/astral-sh/ty/commit/13ef399a5f95ab8be08f596551d09de7f063682a"><code>13ef399</code></a>
    Speed up releases by using larger runners for all Windows builds (<a
    href="https://redirect.github.com/astral-sh/ty/issues/4805">#4805</a>)</li>
    <li><a
    href="https://github.com/astral-sh/ty/commit/f8ea270e0b125116ce52868b16384819183056af"><code>f8ea270</code></a>
    Bump version to 0.0.94 (<a
    href="https://redirect.github.com/astral-sh/ty/issues/4857">#4857</a>)</li>
    <li><a
    href="https://github.com/astral-sh/ty/commit/7a36fc91318b07a58d0aa27753db4db1d212032a"><code>7a36fc9</code></a>
    Fix Linux x86-64 startup on older kernels (<a
    href="https://redirect.github.com/astral-sh/ty/issues/4853">#4853</a>)</li>
    <li><a
    href="https://github.com/astral-sh/ty/commit/3db5e4df7becd3ca55fd06c78e98bf7c8a38e469"><code>3db5e4d</code></a>
    Bump version to 0.0.93 (<a
    href="https://redirect.github.com/astral-sh/ty/issues/4842">#4842</a>)</li>
    <li><a
    href="https://github.com/astral-sh/ty/commit/f8fd0e8b5ce954b5a7f4e38431d805dd58e50e2d"><code>f8fd0e8</code></a>
    Update astral-sh/setup-uv action to v10.3.2 (<a
    href="https://redirect.github.com/astral-sh/ty/issues/4843">#4843</a>)</li>
    <li><a
    href="https://github.com/astral-sh/ty/commit/c1ca420006c7e5ef62ddfa16267fd7531a0a1000"><code>c1ca420</code></a>
    Update uv to v0.13.6 (<a
    href="https://redirect.github.com/astral-sh/ty/issues/4845">#4845</a>)</li>
    <li><a
    href="https://github.com/astral-sh/ty/commit/4c5c9079ac053fa3f879ee7625ec5c28a0817de4"><code>4c5c907</code></a>
    Update prek dependencies (<a
    href="https://redirect.github.com/astral-sh/ty/issues/4844">#4844</a>)</li>
    <li><a
    href="https://github.com/astral-sh/ty/commit/0445d6497ae22a0c480b23807cd71f47889053d8"><code>0445d64</code></a>
    Optimize Linux x86-64 ty releases with LLVM BOLT (<a
    href="https://redirect.github.com/astral-sh/ty/issues/4833">#4833</a>)</li>
    <li>See full diff in <a
    href="https://github.com/astral-sh/ty/compare/0.0.92...0.0.95">compare
    view</a></li>
    </ul>
    </details>
    <br />
    
    Updates `pytest` from 9.1.1 to 9.2.0
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a
    href="https://github.com/pytest-dev/pytest/releases">pytest's
    releases</a>.</em></p>
    <blockquote>
    <h2>9.2.0</h2>
    <h1>pytest 9.2.0 (2026-10-27)</h1>
    <h2>Removals and backward incompatible breaking changes</h2>
    <ul>
    <li>
    <p><a
    href="https://redirect.github.com/pytest-dev/pytest/issues/14716">#14716</a>:
    <code>-c</code> now raises a usage error for a path that does not exist,
    is a directory, or is in a format pytest has no loader for. Such paths
    were previously either ignored or reported as an unhandled
    <code>FileNotFoundError</code>.</p>
    </li>
    <li>
    <p><a
    href="https://redirect.github.com/pytest-dev/pytest/issues/8593">#8593</a>:
    The <code>indirect</code>, <code>ids</code> and <code>scope</code>
    arguments of <code>Metafunc.parametrize()
    &lt;pytest.Metafunc.parametrize&gt;</code> -- and therefore of
    <code>@pytest.mark.parametrize &lt;pytest.mark.parametrize
    ref&gt;</code> -- are now keyword-only.</p>
    <p>Passing them positionally was a common source of confusing errors,
    e.g. <code>parametrize(&quot;arg1&quot;, &quot;arg2&quot;, [(1,
    2)])</code> made the argvalues land in <code>indirect</code> and failed
    with <code>indirect fixture '(1, 2)' doesn't exist</code>; such mistakes
    now fail with an understandable <code>TypeError</code>. The type
    annotations have always declared these arguments as keyword-only.</p>
    </li>
    <li>
    <p><a
    href="https://redirect.github.com/pytest-dev/pytest/issues/993">#993</a>:
    Plugin import failures at startup are now reported and classified
    instead of escaping as a raw traceback with the accidental exit code
    <code>1</code>:</p>
    <ul>
    <li>a plugin that cannot be found -- via <code>-p</code>,
    <code>pytest_plugins</code> or <code>PYTEST_PLUGINS</code> -- exits with
    <code>pytest.ExitCode</code> <code>USAGE_ERROR</code> (<code>4</code>),
    like a <code>conftest.py</code> that fails to import;</li>
    <li>a plugin that is found but raises while importing -- including a
    broken <code>pytest11</code> entry point or a missing plugin dependency
    -- exits with <code>pytest.ExitCode</code> <code>INTERNAL_ERROR</code>
    (<code>3</code>), with the traceback preserved.</li>
    </ul>
    <p><code>pytest.main</code> now returns these codes instead of raising
    <code>ImportError</code>. Also fixed an <code>IndexError</code> from
    pytest's own internals when the plugin raised an exception with no
    arguments.</p>
    </li>
    </ul>
    <h2>Deprecations (removal in next major release)</h2>
    <ul>
    <li>
    <p><a
    href="https://redirect.github.com/pytest-dev/pytest/issues/14742">#14742</a>:
    The private <code>_pytest.python.CallSpec2</code> name has been renamed
    to <code>CallSpec</code>.
    The old <code>CallSpec2</code> alias remains available for now and will
    be removed in pytest 10 or 11.</p>
    </li>
    <li>
    <p><a
    href="https://redirect.github.com/pytest-dev/pytest/issues/14755">#14755</a>:
    Schedule <em>yield_fixture</em> decorator for removal in pytest 10 or
    11.</p>
    </li>
    <li>
    <p><a
    href="https://redirect.github.com/pytest-dev/pytest/issues/14774">#14774</a>:
    Similarly to the deprecation of class-scoped fixtures defined as
    instance methods in pytest 9.1,
    <em>all</em> higher-scoped fixtures (<code>module</code>,
    <code>package</code>, and <code>session</code>) defined
    as instance methods are now deprecated.</p>
    <p>They suffer from the same issue the original deprecation only fixed
    for
    class-scoped fixtures, see <code>10819</code> and
    <code>14011</code>.</p>
    </li>
    <li>
    <p><a
    href="https://redirect.github.com/pytest-dev/pytest/issues/14808">#14808</a>:
    Passing a non-string value to a <code>string</code>-typed ini option now
    emits a <code>pytest.PytestRemovedIn10Warning</code>. This affects
    <code>[tool.pytest.ini_options]</code> in <code>pyproject.toml</code>.
    In pytest 10 this will raise a <code>TypeError</code>, matching the
    behavior of the corresponding TOML config path.</p>
    </li>
    <li>
    <p><a
    href="https://redirect.github.com/pytest-dev/pytest/issues/7323">#7323</a>:
    Passing <code>bytes</code> to <code>TerminalReporter.write_line()</code>
    is now deprecated, pass a <code>str</code> instead.</p>
    </li>
    </ul>
    <h2>New features</h2>
    <ul>
    <li><a
    href="https://redirect.github.com/pytest-dev/pytest/issues/14743">#14743</a>:
    <!-- raw HTML omitted -->Full diff:<!-- raw HTML omitted --> now
    contains a legend explaining the <!-- raw HTML omitted -->+<!-- raw HTML
    omitted --> &amp; <!-- raw HTML omitted -->-<!-- raw HTML omitted -->
    symbols in diff output.</li>
    <li><a
    href="https://redirect.github.com/pytest-dev/pytest/issues/2781">#2781</a>:
    When <code>strict_markers</code> is enabled, marker names used in
    <code>-m</code> expressions are now validated against registered
    markers.</li>
    <li><a
    href="https://redirect.github.com/pytest-dev/pytest/issues/6881">#6881</a>:
    Added the <code>parametrize_long_str_id_strategy</code> configuration
    option to control how long <code>str</code>/<code>bytes</code> parameter
    values are handled in auto-generated test IDs. Explicit IDs set via
    <code>ids=[...]</code> or <code>pytest.param(..., id=...)</code> are not
    affected. Available strategies: <code>short</code> (default, values over
    100 chars fall back to <code>argname+index</code>), <code>sha256</code>
    (SHA-256 hex digest), <code>legacy</code> (keep full value), and
    <code>disallow</code> (error requesting explicit IDs).</li>
    </ul>
    <h2>Improvements in existing functionality</h2>
    <ul>
    <li><a
    href="https://redirect.github.com/pytest-dev/pytest/issues/10745">#10745</a>:
    A <code>RecursionError</code> whose recursion origin cannot be located
    now shows only the
    first and last 10 stack frames, matching what pytest already did when
    locating
    the origin failed outright. Previously the full traceback -- often
    around a
    thousand near-identical frames -- was rendered, which was both slow and
    unreadable. Pass <code>--full-trace</code> to see every frame.</li>
    </ul>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/pytest-dev/pytest/commit/ae1d0ff57b8bd4252da9ade7353523ac0ac73281"><code>ae1d0ff</code></a>
    Prepare release version 9.2.0</li>
    <li><a
    href="https://github.com/pytest-dev/pytest/commit/143ce31dea9b12ff2ab6add04361ee01ab114931"><code>143ce31</code></a>
    pre-commit: exclude codespell on generated release announcements</li>
    <li><a
    href="https://github.com/pytest-dev/pytest/commit/532dc5fc78f57de5115c5ecc9c6c29257787ada7"><code>532dc5f</code></a>
    tox: add attrs dependency to regen, needed in reportingdemo.rst</li>
    <li><a
    href="https://github.com/pytest-dev/pytest/commit/a7b2446ee41a7298d3a0bc22c52f3b8bacae1566"><code>a7b2446</code></a>
    Merge pull request <a
    href="https://redirect.github.com/pytest-dev/pytest/issues/15245">#15245</a>
    from pytest-dev/claude/project-thread-9jcf91</li>
    <li><a
    href="https://github.com/pytest-dev/pytest/commit/679d09c6945156746e17e9ec0b1c8309bbde3ad3"><code>679d09c</code></a>
    [pre-commit.ci] pre-commit autoupdate (<a
    href="https://redirect.github.com/pytest-dev/pytest/issues/15266">#15266</a>)</li>
    <li><a
    href="https://github.com/pytest-dev/pytest/commit/41d12cdbb4a35a7877768d93d8dc50a9117a8d8c"><code>41d12cd</code></a>
    docs: clarify typing for yield fixtures</li>
    <li><a
    href="https://github.com/pytest-dev/pytest/commit/b9022ba04a33bfc76b5c9aefb8974755a80bf5ce"><code>b9022ba</code></a>
    Merge pull request <a
    href="https://redirect.github.com/pytest-dev/pytest/issues/15182">#15182</a>
    from 1871698/docs/improve-getting-started-description</li>
    <li><a
    href="https://github.com/pytest-dev/pytest/commit/16f87a7f364a7362fbfbb204c79a47ad567b4fbd"><code>16f87a7</code></a>
    docs: improve getting-started.rst test execution description</li>
    <li><a
    href="https://github.com/pytest-dev/pytest/commit/082ed70e314ee8e1ab117763d17fe801648f7508"><code>082ed70</code></a>
    Merge pull request <a
    href="https://redirect.github.com/pytest-dev/pytest/issues/15255">#15255</a>
    from pytest-dev/claude/project-thread-eoi3d6</li>
    <li><a
    href="https://github.com/pytest-dev/pytest/commit/ae37a013763e9c4a143245eda1acdc3c27961685"><code>ae37a01</code></a>
    Merge pull request <a
    href="https://redirect.github.com/pytest-dev/pytest/issues/15227">#15227</a>
    from pytest-dev/claude/project-thread-4etye4</li>
    <li>Additional commits viewable in <a
    href="https://github.com/pytest-dev/pytest/compare/9.1.1...9.2.0">compare
    view</a></li>
    </ul>
    </details>
    <br />
    
    Updates `trio` from 0.34.0 to 0.35.0
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a
    href="https://github.com/python-trio/trio/releases">trio's
    releases</a>.</em></p>
    <blockquote>
    <h2>v0.35.0</h2>
    <p><strong>Full Changelog</strong>: <a
    href="https://github.com/python-trio/trio/compare/v0.34.0...v0.35.0">https://github.com/python-trio/trio/compare/v0.34.0...v0.35.0</a></p>
    <h2>Features</h2>
    <ul>
    <li>Mark that Trio supports 3.15. (<a
    href="https://redirect.github.com/python-trio/trio/issues/3563">python-trio/trio#3563</a>)</li>
    </ul>
    <h2>Bugfixes</h2>
    <ul>
    <li>Ensure that Trio consistently encodes all hostnames using IDNA 2008.
    (<a
    href="https://redirect.github.com/python-trio/trio/issues/11">python-trio/trio#11</a>)</li>
    <li>Avoid erroring when running in a CPython built for an Android API
    version less than 24. (<a
    href="https://redirect.github.com/python-trio/trio/issues/3493">python-trio/trio#3493</a>)</li>
    <li>Ensure <code>trio.lowlevel.notify_closing</code> works even on
    events that have been deleted, e.g. because they were registered as one
    shot events. (<a
    href="https://redirect.github.com/python-trio/trio/issues/3502">python-trio/trio#3502</a>)</li>
    <li><code>trio.Process</code> no longer emits an
    <code>EncodingWarning</code> on Linux when Python runs with
    <code>-X warn_default_encoding</code> (or
    <code>PYTHONWARNDEFAULTENCODING=1</code>). (<a
    href="https://redirect.github.com/python-trio/trio/issues/3555">python-trio/trio#3555</a>)</li>
    </ul>
    <h2>Miscellaneous internal changes</h2>
    <ul>
    <li>The typing for <code>async-file-objects</code> is now consistent
    about what it exposes based on what is exposed by the underlying object.
    (<a
    href="https://redirect.github.com/python-trio/trio/issues/3542">python-trio/trio#3542</a>)</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/python-trio/trio/commit/3b280b0b8eb86188edddd4d2e62fc947f0328f1e"><code>3b280b0</code></a>
    Bump version to 0.35.0</li>
    <li><a
    href="https://github.com/python-trio/trio/commit/023d1e3d2f8d8db11074797c368f077cb2287d2f"><code>023d1e3</code></a>
    Merge pull request <a
    href="https://redirect.github.com/python-trio/trio/issues/3566">#3566</a>
    from A5rocks/idna-consistently</li>
    <li><a
    href="https://github.com/python-trio/trio/commit/b0265fdc322b49356ffef4a1188a390d904c53d5"><code>b0265fd</code></a>
    Merge pull request <a
    href="https://redirect.github.com/python-trio/trio/issues/3567">#3567</a>
    from EmmanuelNiyonshuti/remove-stale-py314-beta-skipif</li>
    <li><a
    href="https://github.com/python-trio/trio/commit/9dc2007b2da11c9bb2963d864a2b238263a715aa"><code>9dc2007</code></a>
    remove stale py314-beta skipif on test_static_sees_all_symbols test</li>
    <li><a
    href="https://github.com/python-trio/trio/commit/f71cbdab875758abc5478f983ed53cb3bbc0357d"><code>f71cbda</code></a>
    Merge branch 'main' into idna-consistently</li>
    <li><a
    href="https://github.com/python-trio/trio/commit/9f2df4e0ed2b97b7d8065dd8652c6bbadc4a0946"><code>9f2df4e</code></a>
    Merge pull request <a
    href="https://redirect.github.com/python-trio/trio/issues/3563">#3563</a>
    from A5rocks/py3.15</li>
    <li><a
    href="https://github.com/python-trio/trio/commit/0d50d81a7915c464f8fd4cb98fcd98a049eadf43"><code>0d50d81</code></a>
    Use 3.15 in CI</li>
    <li><a
    href="https://github.com/python-trio/trio/commit/b5ed232e96b34cee45c82d49422ab61111aabdbb"><code>b5ed232</code></a>
    Encode hostnames consistently</li>
    <li><a
    href="https://github.com/python-trio/trio/commit/354708edcbd3f01cc8673bdf3ba3561c44bbb2ad"><code>354708e</code></a>
    Bump dependencies from commit 009bc2 (<a
    href="https://redirect.github.com/python-trio/trio/issues/3559">#3559</a>)</li>
    <li><a
    href="https://github.com/python-trio/trio/commit/009bc2d13850738e7762fea16097c507d599c0bf"><code>009bc2d</code></a>
    Update AsyncFileWrapper for consistency between what we need/what we
    declare ...</li>
    <li>Additional commits viewable in <a
    href="https://github.com/python-trio/trio/compare/v0.34.0...v0.35.0">compare
    view</a></li>
    </ul>
    </details>
    <br />
    
    Updates `hatchling` from 1.32.4 to 1.33.0
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a
    href="https://github.com/pypa/hatch/releases">hatchling's
    releases</a>.</em></p>
    <blockquote>
    <h2>Hatchling v1.33.0</h2>
    <p><em><strong>Added:</strong></em></p>
    <ul>
    <li>Officially support Python 3.15.</li>
    </ul>
    </blockquote>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/pypa/hatch/commit/c93b5427189f68a1f113b7f282b5ad11cecf00f0"><code>c93b542</code></a>
    release Hatch v1.18.2</li>
    <li><a
    href="https://github.com/pypa/hatch/commit/b69f97a07e65ffd2d957d89d7e3d390f3822add5"><code>b69f97a</code></a>
    release Hatchling v1.33.0</li>
    <li><a
    href="https://github.com/pypa/hatch/commit/e7495de2cac0710df2698b650427c7593f012037"><code>e7495de</code></a>
    Prepare for release for hatch 1.18.2 and hatchling 1.32.5 (<a
    href="https://redirect.github.com/pypa/hatch/issues/2477">#2477</a>)</li>
    <li><a
    href="https://github.com/pypa/hatch/commit/ad6d66e7c5dba7deea7601e50072676defae8b3e"><code>ad6d66e</code></a>
    Use --python instead of --python-version for uv commands (<a
    href="https://redirect.github.com/pypa/hatch/issues/2473">#2473</a>)</li>
    <li><a
    href="https://github.com/pypa/hatch/commit/6744e6038c9f026cde718666f12501545c13556d"><code>6744e60</code></a>
    Fix <code>hatch test</code> crashing or silently doing nothing when
    filters match no env...</li>
    <li><a
    href="https://github.com/pypa/hatch/commit/52de770c14b118b5a5efa872446627ebd57c2fb2"><code>52de770</code></a>
    match exclude key exactly when detecting injection (<a
    href="https://redirect.github.com/pypa/hatch/issues/2444">#2444</a>)</li>
    <li><a
    href="https://github.com/pypa/hatch/commit/7bbe76369a9454d1d79b5cfb0ee4cb8d2b76f614"><code>7bbe763</code></a>
    Fix require-runtime-dependencies being ignored for build hooks (<a
    href="https://redirect.github.com/pypa/hatch/issues/2257">#2257</a>)</li>
    <li><a
    href="https://github.com/pypa/hatch/commit/ac9c0c9544795b380c2a5f63f80c1f46db3c5d4c"><code>ac9c0c9</code></a>
    Add 3.15 support (<a
    href="https://redirect.github.com/pypa/hatch/issues/2468">#2468</a>)</li>
    <li><a
    href="https://github.com/pypa/hatch/commit/7c26ebeaf8b83f5f0374a2545bb15e36c87db0d0"><code>7c26ebe</code></a>
    Fix
    <code>hatch.cli.application.Application.ensure_plugin_dependencies</code>
    PyApp Comp...</li>
    <li>See full diff in <a
    href="https://github.com/pypa/hatch/compare/hatchling-v1.32.4...hatchling-v1.33.0">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] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Justin Beckwith <[email protected]>
    dependabot[bot] and jbeckwith-oai authored Nov 9, 2026
    Configuration menu
    Copy the full SHA
    4b10e22 View commit details
    Browse the repository at this point in the history
  2. chore(deps): bump multidict from 6.9.1 to 7.1.0 (#4259)

    Bumps [multidict](https://github.com/aio-libs/multidict) from 6.9.1 to
    7.1.0.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a
    href="https://github.com/aio-libs/multidict/releases">multidict's
    releases</a>.</em></p>
    <blockquote>
    <p>7.1.0 is a correctness and housekeeping release. It changes what
    <code>keys()</code> yields, fixes a long list of crashes and
    inconsistencies that Python code run in the middle of an operation could
    trigger, stores the common all-<code>str</code> multidicts in half the
    space, and
    deprecates <code>multidict.upstr</code>.</p>
    <p><strong>Behaviour changes.</strong> <code>keys()</code> and iteration
    over a
    multidict yield each key once, as spelled in its first item, so
    <code>len(d.keys())</code> counts distinct keys; <code>items()</code>,
    <code>values()</code> and <code>len(d)</code> still see every item. A
    <code>str</code> subclass's own <code>lower()</code> is no longer called
    to compute the
    case-insensitive identity of a <code>CIMultiDict</code> key.</p>
    <p><strong>Robustness.</strong> Finalizers, <code>__eq__()</code>,
    <code>__repr__()</code>, <code>lower()</code> and
    argument iterators that read or mutate the multidict in the middle of
    <code>__init__()</code>, <code>update()</code>, <code>merge()</code>,
    <code>del d[key]</code>,
    <code>popall()</code>, <code>popitem()</code>,
    <code>to_dict()</code> or <code>repr()</code> no longer crash the C
    extension, lose or duplicate pairs, or make the two backends disagree.
    Two
    data races against lock-free readers on the free-threaded build are gone
    too.</p>
    <p><strong>Memory.</strong> A <code>MultiDict</code> whose keys are all
    exact
    <code>str</code>, and a <code>CIMultiDict</code> whose keys are all
    exact
    <code>istr</code>, are stored in a compact table without a separate
    identity and hash per entry, which cuts their size by about 45%.</p>
    <h2>Bug fixes</h2>
    <ul>
    <li>
    <p>Fixed building the C extension on platforms where <code>char</code>
    is unsigned,
    such as ARM, PowerPC, s390x and RISC-V, and with GCC 9, which flags
    CPython's own headers from 3.12 on; both failed on a sign conversion
    warning since <code>-Wconversion</code> took effect. GCC 9 builds the
    extension
    without <code>-Wconversion</code> -- by <a
    href="https://github.com/asvetlov"><code>@​asvetlov</code></a>.</p>
    <p><em>Related issues and pull requests on GitHub:</em>
    <a
    href="https://redirect.github.com/aio-libs/multidict/issues/1759">#1759</a>,
    <a
    href="https://redirect.github.com/aio-libs/multidict/issues/1760">#1760</a>.</p>
    </li>
    <li>
    <p>Fixed <code>getversion()</code> returning only the low 32 bits of
    the version on Windows and on 32-bit platforms, where two different
    versions could compare equal, and fixed a race in the pure-Python
    implementation on GIL builds that could give two multidicts mutated at
    the same time from different threads the same version
    -- by <a
    href="https://github.com/asvetlov"><code>@​asvetlov</code></a>.</p>
    <p><em>Related issues and pull requests on GitHub:</em>
    <a
    href="https://redirect.github.com/aio-libs/multidict/issues/1607">#1607</a>,
    <a
    href="https://redirect.github.com/aio-libs/multidict/issues/1610">#1610</a>.</p>
    </li>
    </ul>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Changelog</summary>
    <p><em>Sourced from <a
    href="https://github.com/aio-libs/multidict/blob/master/CHANGES.rst">multidict's
    changelog</a>.</em></p>
    <blockquote>
    <h1>7.1.0</h1>
    <p><em>(2026-10-08)</em></p>
    <p>7.1.0 is a correctness and housekeeping release. It changes what
    :meth:<code>~multidict.MultiDict.keys</code> yields, fixes a long list
    of crashes and
    inconsistencies that Python code run in the middle of an operation could
    trigger, stores the common all-:class:<code>str</code> multidicts in
    half the space, and
    deprecates <code>multidict.upstr</code>.</p>
    <p><strong>Behaviour changes.</strong>
    :meth:<code>~multidict.MultiDict.keys</code> and iteration over a
    multidict yield each key once, as spelled in its first item, so
    <code>len(d.keys())</code> counts distinct keys;
    :meth:<code>~multidict.MultiDict.items</code>,
    :meth:<code>~multidict.MultiDict.values</code> and <code>len(d)</code>
    still see every item. A
    :class:<code>str</code> subclass's own <code>lower()</code> is no longer
    called to compute the
    case-insensitive identity of a
    :class:<code>~multidict.CIMultiDict</code> key.</p>
    <p><strong>Robustness.</strong> Finalizers, <code>__eq__()</code>,
    <code>__repr__()</code>, <code>lower()</code> and
    argument iterators that read or mutate the multidict in the middle of
    <code>__init__()</code>, <code>update()</code>, <code>merge()</code>,
    <code>del d[key]</code>,
    :meth:<code>~multidict.MultiDict.popall</code>,
    :meth:<code>~multidict.MultiDict.popitem</code>,
    :meth:<code>~multidict.MultiDict.to_dict</code> or
    :func:<code>repr</code> no longer crash the C
    extension, lose or duplicate pairs, or make the two backends disagree.
    Two
    data races against lock-free readers on the free-threaded build are gone
    too.</p>
    <p><strong>Memory.</strong> A :class:<code>~multidict.MultiDict</code>
    whose keys are all exact
    :class:<code>str</code>, and a
    :class:<code>~multidict.CIMultiDict</code> whose keys are all exact
    :class:<code>~multidict.istr</code>, are stored in a compact table
    without a separate
    identity and hash per entry, which cuts their size by about 45%.</p>
    <h2>Bug fixes</h2>
    <ul>
    <li>
    <p>Fixed building the C extension on platforms where <code>char</code>
    is unsigned,
    such as ARM, PowerPC, s390x and RISC-V, and with GCC 9, which flags
    CPython's own headers from 3.12 on; both failed on a sign conversion
    warning since <code>-Wconversion</code> took effect. GCC 9 builds the
    extension
    without <code>-Wconversion</code> -- by :user:<code>asvetlov</code>.</p>
    <p><em>Related issues and pull requests on GitHub:</em>
    :issue:<code>1759</code>, :issue:<code>1760</code>.</p>
    </li>
    <li>
    <p>Fixed :func:<code>~multidict.getversion</code> returning only the low
    32 bits of
    the version on Windows and on 32-bit platforms, where two different
    versions could compare equal, and fixed a race in the pure-Python
    implementation on GIL builds that could give two multidicts mutated at
    the same time from different threads the same version</p>
    </li>
    </ul>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/aio-libs/multidict/commit/709f2600d00c4c3ed28f696e578027a299c7da83"><code>709f260</code></a>
    Trim the test run of the emulated wheel jobs (<a
    href="https://redirect.github.com/aio-libs/multidict/issues/1762">#1762</a>)</li>
    <li><a
    href="https://github.com/aio-libs/multidict/commit/dbc3aba367f1bf5d64004b3c8f8c2b204f01c9be"><code>dbc3aba</code></a>
    Build(deps): Bump pypa/cibuildwheel from 4.2.1 to 4.3.0 (<a
    href="https://redirect.github.com/aio-libs/multidict/issues/1761">#1761</a>)</li>
    <li><a
    href="https://github.com/aio-libs/multidict/commit/ef68371d0692ebdbfa6f8ad33f5e4e4e3df0a7e2"><code>ef68371</code></a>
    Build without -Wconversion on GCC 9 (<a
    href="https://redirect.github.com/aio-libs/multidict/issues/1760">#1760</a>)</li>
    <li><a
    href="https://github.com/aio-libs/multidict/commit/e812c4fcb144403caaa962c7ac396e5b3033841e"><code>e812c4f</code></a>
    Fix the C extension build where char is unsigned (<a
    href="https://redirect.github.com/aio-libs/multidict/issues/1759">#1759</a>)</li>
    <li><a
    href="https://github.com/aio-libs/multidict/commit/f9459a10f4f1edf941be069fdee27493b9de0084"><code>f9459a1</code></a>
    Release 7.1.0 (<a
    href="https://redirect.github.com/aio-libs/multidict/issues/1758">#1758</a>)</li>
    <li><a
    href="https://github.com/aio-libs/multidict/commit/45552bd41765f4556530e49ffe5194e316521ec9"><code>45552bd</code></a>
    Fold the hash chain walk into _md_update() (<a
    href="https://redirect.github.com/aio-libs/multidict/issues/1757">#1757</a>)</li>
    <li><a
    href="https://github.com/aio-libs/multidict/commit/84c5412aa421d8cff0045fae9885e82b6e052261"><code>84c5412</code></a>
    Move to_dict() into to_dict.h and mark only later duplicates (<a
    href="https://redirect.github.com/aio-libs/multidict/issues/1756">#1756</a>)</li>
    <li><a
    href="https://github.com/aio-libs/multidict/commit/cfd8ea27ad2bb8a53d8725f79829171f06980584"><code>cfd8ea2</code></a>
    Reserve room for update() and merge() only when keys are added (<a
    href="https://redirect.github.com/aio-libs/multidict/issues/1755">#1755</a>)</li>
    <li><a
    href="https://github.com/aio-libs/multidict/commit/fb828e3f55d120212787eb79a0b5e3d2adff11aa"><code>fb828e3</code></a>
    Prefix header-local helpers with an underscore (<a
    href="https://redirect.github.com/aio-libs/multidict/issues/1753">#1753</a>)</li>
    <li><a
    href="https://github.com/aio-libs/multidict/commit/3c3fc84dc316496cb243da3c2bf8d39c8df507ba"><code>3c3fc84</code></a>
    Move istr_canonical() into istr_object.h (<a
    href="https://redirect.github.com/aio-libs/multidict/issues/1754">#1754</a>)</li>
    <li>Additional commits viewable in <a
    href="https://github.com/aio-libs/multidict/compare/v6.9.1...v7.1.0">compare
    view</a></li>
    </ul>
    </details>
    <br />
    
    
    [![Dependabot compatibility
    score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=multidict&package-manager=uv&previous-version=6.9.1&new-version=7.1.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
    
    Dependabot will resolve any conflicts with this PR as long as you don't
    alter it yourself. You can also trigger a rebase manually by commenting
    `@dependabot rebase`.
    
    [//]: # (dependabot-automerge-start)
    [//]: # (dependabot-automerge-end)
    
    ---
    
    <details>
    <summary>Dependabot commands and options</summary>
    <br />
    
    You can trigger Dependabot actions by commenting on this PR:
    - `@dependabot rebase` will rebase this PR
    - `@dependabot recreate` will recreate this PR, overwriting any edits
    that have been made to it
    - `@dependabot show <dependency name> ignore conditions` will show all
    of the ignore conditions of the specified dependency
    - `@dependabot ignore this major version` will close this PR and stop
    Dependabot creating any more for this major version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this minor version` will close this PR and stop
    Dependabot creating any more for this minor version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this dependency` will close this PR and stop
    Dependabot creating any more for this dependency (unless you reopen the
    PR or upgrade to it yourself)
    
    
    </details>
    
    ---------
    
    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Justin Beckwith <[email protected]>
    dependabot[bot] and jbeckwith-oai authored Nov 9, 2026
    Configuration menu
    Copy the full SHA
    28cdb1b View commit details
    Browse the repository at this point in the history
  3. chore(deps-dev): bump types-requests from 2.33.0.20261006 to 2.33.0.2…

    …0261030 (#4260)
    
    Bumps [types-requests](https://github.com/python/typeshed) from
    2.33.0.20261006 to 2.33.0.20261030.
    <details>
    <summary>Commits</summary>
    <ul>
    <li>See full diff in <a
    href="https://github.com/python/typeshed/commits">compare view</a></li>
    </ul>
    </details>
    <br />
    
    
    [![Dependabot compatibility
    score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=types-requests&package-manager=uv&previous-version=2.33.0.20261006&new-version=2.33.0.20261030)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
    
    Dependabot will resolve any conflicts with this PR as long as you don't
    alter it yourself. You can also trigger a rebase manually by commenting
    `@dependabot rebase`.
    
    [//]: # (dependabot-automerge-start)
    [//]: # (dependabot-automerge-end)
    
    ---
    
    <details>
    <summary>Dependabot commands and options</summary>
    <br />
    
    You can trigger Dependabot actions by commenting on this PR:
    - `@dependabot rebase` will rebase this PR
    - `@dependabot recreate` will recreate this PR, overwriting any edits
    that have been made to it
    - `@dependabot show <dependency name> ignore conditions` will show all
    of the ignore conditions of the specified dependency
    - `@dependabot ignore this major version` will close this PR and stop
    Dependabot creating any more for this major version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this minor version` will close this PR and stop
    Dependabot creating any more for this minor version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this dependency` will close this PR and stop
    Dependabot creating any more for this dependency (unless you reopen the
    PR or upgrade to it yourself)
    
    
    </details>
    
    ---------
    
    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    Co-authored-by: Justin Beckwith <[email protected]>
    dependabot[bot] and jbeckwith-oai authored Nov 9, 2026
    Configuration menu
    Copy the full SHA
    de498d7 View commit details
    Browse the repository at this point in the history
  4. release: 3.48.0 (#4252)

    Automated Release PR
    ---
    
    
    ##
    [3.48.0](v3.47.0...v3.48.0)
    (2026-11-09)
    
    
    ### Features
    
    * **api:** add stream options for agent sessions
    ([#4251](#4251))
    ([c6fc264](c6fc264))
    * **api:** recognize gpt-6-rosalind in beta Responses
    ([#4257](#4257))
    ([3774b7e](3774b7e))
    
    
    ### Chores
    
    * **api:** retain agent scheduling support
    ([#4255](#4255))
    ([a1175a3](a1175a3))
    * **deps:** bump locked multidict from 6.9.1 to 7.1.0
    ([#4259](#4259))
    ([28cdb1b](28cdb1b))
    * **deps-dev:** bump the python-maintenance group with 5 updates
    ([#4258](#4258))
    ([4b10e22](4b10e22))
    * **deps-dev:** bump types-requests from 2.33.0.20261006 to
    2.33.0.20261030
    ([#4260](#4260))
    ([de498d7](de498d7))
    
    
    ### Documentation
    
    * consolidate AGENTS.md guidance
    ([#4254](#4254))
    ([44b1555](44b1555))
    
    ---
    This PR was generated with [Release
    Please](https://github.com/googleapis/release-please). See
    [documentation](https://github.com/googleapis/release-please#release-please).
    
    ---------
    
    Co-authored-by: openai-sdks[bot] <284451331+openai-sdks[bot]@users.noreply.github.com>
    Co-authored-by: Daniel Piet <[email protected]>
    openai-sdks[bot] and dpiet-oai authored Nov 9, 2026
    Configuration menu
    Copy the full SHA
    7e1582c View commit details
    Browse the repository at this point in the history
Loading