{"id":1052,"name":"dependency-injector","ecosystem":"pip","repository_url":"https://github.com/ets-labs/python-dependency-injector","issues_count":75,"created_at":"2025-06-06T15:01:40.030Z","updated_at":"2025-06-06T15:01:40.030Z","purl":"pkg:pypi/dependency-injector","metadata":{"id":2693201,"name":"dependency-injector","ecosystem":"pypi","description":"Dependency injection framework for Python","homepage":"https://github.com/ets-labs/python-dependency-injector","licenses":"Copyright (c) 2024, Roman Mogylatov\n        All rights reserved.\n        \n        Redistribution and use in source and binary forms, with or without\n        modification, are permitted provided that the following conditions are met:\n        \n        * Redistributions of source code must retain the above copyright notice, this\n          list of conditions and the following disclaimer.\n        \n        * Redistributions in binary form must reproduce the above copyright notice,\n          this list of conditions and the following disclaimer in the documentation\n          and/or other materials provided with the distribution.\n        \n        * Neither the name of \"Dependency Injector\" nor the names of its\n          contributors may be used to endorse or promote products derived from\n          this software without specific prior written permission.\n        \n        THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n        AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n        IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n        DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\n        FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n        DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n        SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\n        CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\n        OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n        OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n        ","normalized_licenses":["Other"],"repository_url":"https://github.com/ets-labs/python-dependency-injector","keywords_array":["Dependency injection","DI","Inversion of Control","IoC","Factory","Singleton","Design patterns","Flask"],"namespace":null,"versions_count":256,"first_release_published_at":"2016-06-09T16:54:56.000Z","latest_release_published_at":"2025-05-30T20:16:21.000Z","latest_release_number":"4.47.1","last_synced_at":"2025-06-05T13:01:01.999Z","created_at":"2022-04-10T10:35:10.932Z","updated_at":"2025-06-05T13:01:02.000Z","registry_url":"https://pypi.org/project/dependency-injector/","install_command":"pip install dependency-injector --index-url https://pypi.org/simple","documentation_url":"https://python-dependency-injector.ets-labs.org/","metadata":{"funding":null,"documentation":"https://python-dependency-injector.ets-labs.org/","classifiers":["Development Status :: 5 - Production/Stable","Framework :: AsyncIO","Framework :: Bottle","Framework :: Django","Framework :: Flask","Framework :: Pylons","Framework :: Pyramid","Framework :: Pytest","Framework :: TurboGears","Intended Audience :: Developers","License :: OSI Approved :: BSD License","Operating System :: OS Independent","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Programming Language :: Python :: 3.8","Programming Language :: Python :: 3.9","Programming Language :: Python :: Implementation :: CPython","Programming Language :: Python :: Implementation :: PyPy","Topic :: Software Development","Topic :: Software Development :: Libraries","Topic :: Software Development :: Libraries :: Python Modules"],"normalized_name":"dependency-injector"},"repo_metadata":{"id":25347262,"uuid":"28774758","full_name":"ets-labs/python-dependency-injector","owner":"ets-labs","description":"Dependency injection framework for Python","archived":false,"fork":false,"pushed_at":"2024-05-13T14:01:02.000Z","size":40794,"stargazers_count":3615,"open_issues_count":218,"forks_count":286,"subscribers_count":53,"default_branch":"master","last_synced_at":"2024-05-18T17:21:23.971Z","etag":null,"topics":["aiohttp","asyncio","dependency-injection","dependency-injection-container","dependency-injection-framework","design-patterns","factory","flask","flask-application","flask-restful","ioc","ioc-container","python","python-2","python-3","python3","singleton","threadlocal"],"latest_commit_sha":null,"homepage":"https://python-dependency-injector.ets-labs.org/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ets-labs.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.rst","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-01-04T13:23:05.000Z","updated_at":"2024-05-29T15:54:18.845Z","dependencies_parsed_at":"2024-05-29T16:08:19.150Z","dependency_job_id":null,"html_url":"https://github.com/ets-labs/python-dependency-injector","commit_stats":{"total_commits":1710,"total_committers":29,"mean_commits":58.96551724137931,"dds":"0.14093567251461991","last_synced_commit":"cc2304e46e054ae08dc12995428759fbfb51af10"},"previous_names":[],"tags_count":329,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ets-labs","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":217894569,"owners_count":16247265,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"ets-labs","name":"ETS Labs","uuid":"11329744","kind":"organization","description":"Expert Technical Solutions Labs","email":null,"website":null,"location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/11329744?v=4","repositories_count":4,"last_synced_at":"2024-03-25T20:29:46.167Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/ets-labs","funding_links":[],"total_stars":4211,"followers":19,"following":0,"created_at":"2022-11-02T16:33:49.058Z","updated_at":"2024-03-25T20:29:49.788Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ets-labs","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ets-labs/repositories"},"tags":[{"name":"4.41.0","sha":"cc2304e46e054ae08dc12995428759fbfb51af10","kind":"tag","published_at":"2022-12-19T03:14:27.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.41.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.41.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.41.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.41.0/manifests"},{"name":"4.41.0a3","sha":"2ca2420486634a9a5423ddd8a4058126e611be74","kind":"tag","published_at":"2022-12-18T21:38:14.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.41.0a3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.41.0a3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.41.0a3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.41.0a3/manifests"},{"name":"4.41.0a2","sha":"5e0fd25b5d974cdd09e235c09c099fead83b2707","kind":"tag","published_at":"2022-12-18T20:59:12.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.41.0a2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.41.0a2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.41.0a2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.41.0a2/manifests"},{"name":"4.41.0a1","sha":"0b7c72dc7033435bb90b9ca6b29670d8585c8dd1","kind":"tag","published_at":"2022-12-18T20:36:46.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.41.0a1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.41.0a1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.41.0a1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.41.0a1/manifests"},{"name":"4.40.0","sha":"3858cef657cabaca3dff60890f1a1bea2ea84c97","kind":"tag","published_at":"2022-08-04T01:20:54.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.40.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.40.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.40.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.40.0/manifests"},{"name":"4.39.1","sha":"4188f721d620bbf7e159121e2558cf370f30b423","kind":"tag","published_at":"2022-03-30T02:52:02.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.39.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.39.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.39.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.39.1/manifests"},{"name":"4.39.0","sha":"8b0745d43ecb3ced401934d33f4b0c484a2516fa","kind":"tag","published_at":"2022-03-28T02:22:04.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.39.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.39.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.39.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.39.0/manifests"},{"name":"4.38.0","sha":"c26b260c73ab36985e05e117af934ca6170ff9de","kind":"tag","published_at":"2022-01-31T04:28:12.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.38.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.38.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.38.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.38.0/manifests"},{"name":"4.37.0","sha":"541131e33858ee1b8b5a7590d2bb9f929740ea1e","kind":"tag","published_at":"2021-11-01T01:12:56.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.37.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.37.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.37.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.37.0/manifests"},{"name":"4.36.2","sha":"258c55dd2230f7f88a7986de1492ed2474009dac","kind":"tag","published_at":"2021-09-28T18:59:29.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.36.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.36.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.36.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.36.2/manifests"},{"name":"4.36.1","sha":"cf039a0c2b83d8d80285c316911aae56584b2a00","kind":"tag","published_at":"2021-09-28T18:51:55.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.36.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.36.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.36.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.36.1/manifests"},{"name":"4.36.0","sha":"cef6d35cfdf5f39438a89f000d11a21860bc8c5f","kind":"tag","published_at":"2021-08-25T16:06:38.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.36.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.36.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.36.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.36.0/manifests"},{"name":"4.35.3","sha":"48df949cd5ec9cd96c71abec6a4d3f4418b80861","kind":"tag","published_at":"2021-08-12T01:25:26.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.35.3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.35.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.35.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.35.3/manifests"},{"name":"4.35.2","sha":"cde7dee4b3ba19d9dd59033dc4cb33c8750e5066","kind":"tag","published_at":"2021-08-06T20:50:54.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.35.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.35.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.35.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.35.2/manifests"},{"name":"4.35.1","sha":"b4ddf6193959ed6a29c0229cec608ee77f924305","kind":"tag","published_at":"2021-08-05T21:05:45.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.35.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.35.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.35.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.35.1/manifests"},{"name":"4.35.0","sha":"547b7fd84435f42de2313056323d51f4c84c8b90","kind":"tag","published_at":"2021-07-29T20:41:38.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.35.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.35.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.35.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.35.0/manifests"},{"name":"4.34.2","sha":"98a4b06a12515f493c8a0d513a6448787e4d2eb5","kind":"tag","published_at":"2021-07-24T20:35:13.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.34.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.34.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.34.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.34.2/manifests"},{"name":"4.34.1","sha":"f44924f28555fd57ea232981d778d0427f8b1bd8","kind":"tag","published_at":"2021-07-20T22:48:42.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.34.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.34.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.34.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.34.1/manifests"},{"name":"4.34.0","sha":"54de3a9d2c2920b3b96222f1b0b475513a3025fc","kind":"tag","published_at":"2021-06-24T13:03:41.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.34.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.34.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.34.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.34.0/manifests"},{"name":"4.33.0","sha":"9abf34cb88be098d5f038de28636b3d884722179","kind":"tag","published_at":"2021-06-14T02:06:39.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.33.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.33.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.33.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.33.0/manifests"},{"name":"4.32.3","sha":"585c71765055e0829648100f6cd0953d33b75506","kind":"tag","published_at":"2021-05-20T22:12:11.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.32.3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.32.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.32.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.32.3/manifests"},{"name":"4.32.2","sha":"64574dff4d401650f0833e121390d9c7498583c7","kind":"tag","published_at":"2021-04-27T02:11:10.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.32.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.32.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.32.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.32.2/manifests"},{"name":"4.32.1","sha":"fcba4cc98907ce558fc1d07f4e6e2288371f9e5c","kind":"tag","published_at":"2021-04-25T21:38:17.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.32.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.32.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.32.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.32.1/manifests"},{"name":"4.32.0","sha":"fab4e3e5be3d6c36cd4ccd51d497add0cbfda5d7","kind":"tag","published_at":"2021-04-19T01:47:59.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.32.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.32.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.32.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.32.0/manifests"},{"name":"4.31.2","sha":"155f59869922de2c0ae57ab2e77d85655e15f21b","kind":"tag","published_at":"2021-03-30T20:13:50.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.31.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.31.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.31.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.31.2/manifests"},{"name":"4.31.1","sha":"d04596be732b83c2a141a3f101b9ae8d4a47277c","kind":"tag","published_at":"2021-03-24T01:14:50.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.31.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.31.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.31.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.31.1/manifests"},{"name":"4.31.0","sha":"fca9fd498c99698777d91e64e088ef7d77f7a94c","kind":"tag","published_at":"2021-03-21T01:42:59.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.31.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.31.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.31.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.31.0/manifests"},{"name":"4.30.0","sha":"8cad8c6b6573f201456b27ea16a399d1b7f61f72","kind":"tag","published_at":"2021-03-20T00:23:41.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.30.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.30.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.30.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.30.0/manifests"},{"name":"4.29.2","sha":"ee89476db03b0dfaf6dd94d38cd9d8ceedfc4c9f","kind":"tag","published_at":"2021-03-08T21:33:48.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.29.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.29.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.29.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.29.2/manifests"},{"name":"4.29.1","sha":"b3bcf60ced8a6eca5553aa2f1381d512c01ee44f","kind":"tag","published_at":"2021-03-06T01:25:36.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.29.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.29.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.29.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.29.1/manifests"},{"name":"4.29.0","sha":"f1a3ad0b820f8583285fc6a668d2bf7f17680590","kind":"tag","published_at":"2021-03-03T14:06:32.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.29.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.29.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.29.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.29.0/manifests"},{"name":"4.28.1","sha":"e0b0a1e968083eba09fcf39986efb19425cf2b84","kind":"tag","published_at":"2021-03-01T14:06:27.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.28.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.28.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.28.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.28.1/manifests"},{"name":"4.28.0","sha":"25c966f7af378957dbd0c60b68fbcf80147c8215","kind":"tag","published_at":"2021-03-01T02:09:02.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.28.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.28.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.28.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.28.0/manifests"},{"name":"4.27.0","sha":"c787ac2f634c09bbcc6d5e2c50ddaa92d495db06","kind":"tag","published_at":"2021-02-27T14:47:14.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.27.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.27.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.27.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.27.0/manifests"},{"name":"4.26.0","sha":"d3720bd6dd074677e6d07225ff80ba402d5ac117","kind":"tag","published_at":"2021-02-21T15:35:45.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.26.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.26.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.26.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.26.0/manifests"},{"name":"4.25.1","sha":"0026f48cb653d7ef316dfb4bbebd210843bbf2d6","kind":"tag","published_at":"2021-02-19T13:12:46.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.25.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.25.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.25.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.25.1/manifests"},{"name":"4.25.0","sha":"6a73b9d3fd4e97cdcc566c90695aebb481b74a84","kind":"tag","published_at":"2021-02-18T22:52:49.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.25.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.25.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.25.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.25.0/manifests"},{"name":"4.24.0","sha":"c0d1e48f7b4cb2cca47cf14e5cb2a6ad6e6836ac","kind":"tag","published_at":"2021-02-18T13:51:27.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.24.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.24.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.24.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.24.0/manifests"},{"name":"4.23.5","sha":"18051522d710eee27b48279b3509461bec4c6b88","kind":"tag","published_at":"2021-02-17T16:32:47.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.23.5","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.23.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.23.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.23.5/manifests"},{"name":"4.23.4","sha":"f9a2ffaad6709afc26467f66b94d299562195a3f","kind":"tag","published_at":"2021-02-17T15:09:00.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.23.4","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.23.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.23.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.23.4/manifests"},{"name":"4.23.3","sha":"70bebf9075fb30a96acd559e3c400634ba381cf2","kind":"tag","published_at":"2021-02-17T15:02:45.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.23.3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.23.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.23.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.23.3/manifests"},{"name":"4.23.2","sha":"6e59b4ab6fa0846f5405feb59c7807b01407511b","kind":"tag","published_at":"2021-02-16T17:28:17.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.23.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.23.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.23.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.23.2/manifests"},{"name":"4.23.1","sha":"b2ea773c710fbf8054c1af53a3832b5450341567","kind":"tag","published_at":"2021-02-15T23:13:24.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.23.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.23.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.23.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.23.1/manifests"},{"name":"4.23.0","sha":"6c06548019424d52d1050164cb18aefd5ba9fd6c","kind":"tag","published_at":"2021-02-15T14:13:03.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.23.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.23.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.23.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.23.0/manifests"},{"name":"4.22.1","sha":"93fa37728ba07fba858c1dcca4ca70cdf736e3d7","kind":"tag","published_at":"2021-02-15T02:09:34.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.22.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.22.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.22.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.22.1/manifests"},{"name":"4.22.0","sha":"02dea7bce59a8dd0732eb1b9842f6358a2c2b54c","kind":"tag","published_at":"2021-02-15T00:10:09.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.22.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.22.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.22.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.22.0/manifests"},{"name":"4.21.0","sha":"2127e3cef920e98c669006c2331d948990a93d4f","kind":"tag","published_at":"2021-02-13T14:18:15.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.21.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.21.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.21.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.21.0/manifests"},{"name":"4.20.2","sha":"81da4e0451f32a16c5cd4ab62f92d8c5d4ab66a8","kind":"tag","published_at":"2021-02-09T12:36:09.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.20.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.20.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.20.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.20.2/manifests"},{"name":"4.20.1","sha":"a9fd206aaeb1eb15b38243b202ffa29770f46790","kind":"tag","published_at":"2021-02-07T19:17:57.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.20.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.20.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.20.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.20.1/manifests"},{"name":"4.20.0","sha":"5e5531765dd375493d938fd06fbb3e3006d5b8b5","kind":"tag","published_at":"2021-02-07T19:14:38.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.20.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.20.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.20.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.20.0/manifests"},{"name":"4.19.0","sha":"ce6d3df72cea96ab0c638d7edc5980aa32a21a9a","kind":"tag","published_at":"2021-02-05T23:28:48.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.19.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.19.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.19.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.19.0/manifests"},{"name":"4.18.0","sha":"78f623c05bcf6ae40a43ad456fc6af5fb0421e91","kind":"tag","published_at":"2021-02-05T22:24:03.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.18.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.18.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.18.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.18.0/manifests"},{"name":"4.17.0","sha":"35f280ac8a38c7c4ef9338ad8a0a103e6f8a3115","kind":"tag","published_at":"2021-02-04T23:19:58.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.17.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.17.0/manifests"},{"name":"4.16.0","sha":"a1f779a9f3ab520c4e323e743de34eadaddf7638","kind":"tag","published_at":"2021-02-03T20:40:58.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.16.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.16.0/manifests"},{"name":"4.15.0","sha":"6cc1a0c61ff899a1ac301d2a64c38052ef71b0f4","kind":"tag","published_at":"2021-02-03T14:23:02.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.15.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.15.0/manifests"},{"name":"4.14.0","sha":"1fabbf314ba4f3daef7420af9e36edf399c205c0","kind":"tag","published_at":"2021-02-01T14:57:46.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.14.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.14.0/manifests"},{"name":"4.13.2","sha":"0c1a08174fe0db6b184d4462b81892cfd414ba21","kind":"tag","published_at":"2021-01-29T21:58:47.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.13.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.13.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.13.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.13.2/manifests"},{"name":"4.13.1","sha":"b7afbe2cdc9388ff8aa12f110b3be85779e942e9","kind":"tag","published_at":"2021-01-29T21:42:42.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.13.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.13.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.13.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.13.1/manifests"},{"name":"4.13.0","sha":"f188811d871f1c7a50e6a1fc23c0939bcd927d2e","kind":"tag","published_at":"2021-01-29T18:51:12.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.13.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.13.0/manifests"},{"name":"4.12.0","sha":"1f17bc6e08fbdfd456fdb7c83552491c9e9e6c88","kind":"tag","published_at":"2021-01-29T00:50:53.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.12.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.12.0/manifests"},{"name":"4.11.3","sha":"9225f9dcd61bf9d8abb98a4a16fadbf90b3e7503","kind":"tag","published_at":"2021-01-28T13:46:05.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.11.3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.11.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.11.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.11.3/manifests"},{"name":"4.11.2","sha":"9136fdcbb5082eb5289066fdc9c88eb8d0a7b29f","kind":"tag","published_at":"2021-01-27T19:19:31.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.11.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.11.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.11.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.11.2/manifests"},{"name":"4.11.1","sha":"874b13fdea9215c76cab807eb7c884b44eec32d3","kind":"tag","published_at":"2021-01-27T14:22:14.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.11.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.11.1/manifests"},{"name":"4.11.0","sha":"78479c65e66c6e0c9faefbaa299610824f848e29","kind":"tag","published_at":"2021-01-27T12:50:22.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.11.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.11.0/manifests"},{"name":"4.11.0dev0","sha":"9bdce2d376a974bad984c442f9cc842856397e72","kind":"tag","published_at":"2021-01-27T12:41:56.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.11.0dev0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.11.0dev0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.11.0dev0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.11.0dev0/manifests"},{"name":"4.10.3dev7","sha":"2b0126bda506d209a2b3097ba8d0e74cc020f5e2","kind":"tag","published_at":"2021-01-27T00:26:08.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.10.3dev7","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.10.3dev7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.10.3dev7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.10.3dev7/manifests"},{"name":"4.10.3dev6","sha":"a33766702c1b026b1472932f3f01e2cadac36ade","kind":"tag","published_at":"2021-01-26T14:41:49.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.10.3dev6","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.10.3dev6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.10.3dev6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.10.3dev6/manifests"},{"name":"4.10.3dev5","sha":"8002ce71a80140cbaf0fbaf65174fe686ead0a52","kind":"tag","published_at":"2021-01-26T14:35:27.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.10.3dev5","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.10.3dev5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.10.3dev5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.10.3dev5/manifests"},{"name":"4.10.3dev4","sha":"15ab192bc752d46b1367fcec58bcfdd6425541bd","kind":"tag","published_at":"2021-01-26T14:21:14.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.10.3dev4","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.10.3dev4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.10.3dev4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.10.3dev4/manifests"},{"name":"4.10.3dev3","sha":"210f8bd25ec84c19792916be4e3b3ac85aa92a28","kind":"tag","published_at":"2021-01-26T14:06:05.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.10.3dev3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.10.3dev3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.10.3dev3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.10.3dev3/manifests"},{"name":"4.10.3dev2","sha":"7db553a355b2c5be2a08b3bee7737b191bdecbdf","kind":"tag","published_at":"2021-01-26T13:58:49.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.10.3dev2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.10.3dev2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.10.3dev2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.10.3dev2/manifests"},{"name":"4.10.3dev1","sha":"3fb5f134ee53f408d614b01c940c9a02d1296603","kind":"tag","published_at":"2021-01-26T13:28:23.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.10.3dev1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.10.3dev1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.10.3dev1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.10.3dev1/manifests"},{"name":"4.10.3","sha":"349c252b502a89ac4502137de812cdb46d0cabd8","kind":"tag","published_at":"2021-01-20T14:04:28.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.10.3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.10.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.10.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.10.3/manifests"},{"name":"4.10.2","sha":"0cc63cd075bed0efe3e76607290c224693f61027","kind":"tag","published_at":"2021-01-19T22:51:04.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.10.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.10.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.10.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.10.2/manifests"},{"name":"4.10.1","sha":"2cfc61aa3763f657cf04aa6922b1fbaba3221c5b","kind":"tag","published_at":"2021-01-19T02:03:14.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.10.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.10.1/manifests"},{"name":"4.10.0","sha":"2ced67d52b3af9c5da4827fa60dbca08c9dc0721","kind":"tag","published_at":"2021-01-16T13:55:19.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.10.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.10.0/manifests"},{"name":"4.9.1","sha":"3b69ed91c68c413f6c00d4ea78fcd33861ecbb68","kind":"tag","published_at":"2021-01-15T21:22:33.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.9.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.9.1/manifests"},{"name":"4.9.0","sha":"b8731376145d98cdca85060a665bfc5a65ab1a13","kind":"tag","published_at":"2021-01-15T12:24:06.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.9.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.9.0/manifests"},{"name":"4.8.3","sha":"3e207a4f21387c279575db581ff8eee94b8d6fd4","kind":"tag","published_at":"2021-01-15T11:44:58.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.8.3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.8.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.8.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.8.3/manifests"},{"name":"4.8.2","sha":"1cbd3a0215c9a97b45e6c240a4339da349e51d15","kind":"tag","published_at":"2021-01-13T22:08:40.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.8.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.8.2/manifests"},{"name":"4.8.1","sha":"d9f914dfebd0d9a3893989d466a8bcfb0447ec9e","kind":"tag","published_at":"2021-01-12T22:50:33.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.8.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.8.1/manifests"},{"name":"4.8.0","sha":"46422a684594960aaf53ca5850bc40e45aeed7df","kind":"tag","published_at":"2021-01-12T13:42:43.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.8.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.8.0/manifests"},{"name":"4.7.0","sha":"cebeb79b939faeac569234eb4858ca82ccc3a6e2","kind":"tag","published_at":"2021-01-11T13:20:03.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.7.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.7.0/manifests"},{"name":"4.6.1","sha":"6e77a959099b2b2df734fd69af0fa83ac57664b4","kind":"tag","published_at":"2021-01-11T01:03:00.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.6.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.6.1/manifests"},{"name":"4.6.0","sha":"9cd201a4938c6c8574a9504850695c415e323724","kind":"tag","published_at":"2021-01-11T00:32:33.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.6.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.6.0/manifests"},{"name":"4.5.4","sha":"47278030ce1b4e06b6d4b21af4d0ebbfa178c815","kind":"tag","published_at":"2020-12-10T23:28:41.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.5.4","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.5.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.5.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.5.4/manifests"},{"name":"4.5.3","sha":"873b0907ec3bc8ce39a2d0a2f7a662d953f3c7fd","kind":"tag","published_at":"2020-12-06T03:14:48.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.5.3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.5.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.5.3/manifests"},{"name":"4.5.2","sha":"c4dd923f37acd8a2f45297f98908f8a62a6a64ca","kind":"tag","published_at":"2020-12-05T01:19:16.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.5.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.5.2/manifests"},{"name":"4.5.1","sha":"5c4c84b34eeeb1fb8efa95e99cd597674dbc7359","kind":"tag","published_at":"2020-11-20T23:16:42.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.5.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.5.1/manifests"},{"name":"4.5.0","sha":"9f314fd7e9ab68773a9c184fc4acdcc92da40905","kind":"tag","published_at":"2020-11-20T23:10:17.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.5.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.5.0/manifests"},{"name":"4.4.1","sha":"ee965f9782778b4793002779a9c27a167bbf0a72","kind":"tag","published_at":"2020-11-18T04:59:47.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.4.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.4.1/manifests"},{"name":"4.4.0","sha":"262c035bc16be0433ce46f155fbbade48e8a4ca6","kind":"tag","published_at":"2020-11-15T23:21:29.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.4.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.4.0/manifests"},{"name":"4.3.9","sha":"b0b8820ac1de80636a5cab0085696691f5234132","kind":"tag","published_at":"2020-11-13T02:29:41.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.3.9","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.3.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.3.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.3.9/manifests"},{"name":"4.3.8","sha":"af742b980afe2d8c7101d86cb3a1ef74115973cb","kind":"tag","published_at":"2020-11-12T21:32:35.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.3.8","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.3.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.3.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.3.8/manifests"},{"name":"4.3.7","sha":"26a89d664b6f541feb6541c0d643fc9983e4937e","kind":"tag","published_at":"2020-11-10T22:03:00.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.3.7","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.3.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.3.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.3.7/manifests"},{"name":"4.3.6","sha":"4120afd1c399862e0c85f3205ffd8558a9710502","kind":"tag","published_at":"2020-11-05T17:37:40.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.3.6","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.3.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.3.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.3.6/manifests"},{"name":"4.3.5","sha":"02acaba034f67a04d1331ae6273516dbcfc08b55","kind":"tag","published_at":"2020-11-05T17:27:51.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.3.5","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.3.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.3.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.3.5/manifests"},{"name":"4.3.4","sha":"4579e35d3329997695033f79bf75e34a28b93812","kind":"tag","published_at":"2020-11-05T15:20:44.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.3.4","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.3.4/manifests"},{"name":"4.3.3","sha":"e847c357a61dd6032f410237b14de362bc1404c1","kind":"tag","published_at":"2020-11-03T21:06:56.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.3.3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.3.3/manifests"},{"name":"4.3.2","sha":"c1cf1bfa1cb4de2046db8f9dfc8e770a9ed4057f","kind":"tag","published_at":"2020-10-30T21:06:22.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.3.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.3.2/manifests"},{"name":"4.3.1","sha":"4c46d34b2001d714c6e426370c069493d10dd9d0","kind":"tag","published_at":"2020-10-30T03:00:57.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.3.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.3.1/manifests"},{"name":"4.3.0","sha":"84b0029494d4c0b5fe48d45bcfb70e672b8c9e65","kind":"tag","published_at":"2020-10-30T02:57:26.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.3.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.3.0/manifests"},{"name":"4.2.0","sha":"b18385a8670e0985b4cca7c8d77f0c9794fe792f","kind":"tag","published_at":"2020-10-29T19:48:25.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.2.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.2.0/manifests"},{"name":"4.1.8","sha":"e615b9c48c2a0bfc3dcefca960ea9c4f446c4383","kind":"tag","published_at":"2020-10-29T02:31:12.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.1.8","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.1.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.1.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.1.8/manifests"},{"name":"4.1.7","sha":"fea8c33cd4c53164f964c7ea0468138bd1d62273","kind":"tag","published_at":"2020-10-29T01:02:35.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.1.7","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.1.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.1.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.1.7/manifests"},{"name":"4.1.6","sha":"c0e5eac016405861ddf9518e2058630c5ad241e8","kind":"tag","published_at":"2020-10-28T18:23:18.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.1.6","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.1.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.1.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.1.6/manifests"},{"name":"4.1.5","sha":"467e7ec9aa4a283efd9bc098b6ec059839ca3e4a","kind":"tag","published_at":"2020-10-27T21:48:18.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.1.5","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.1.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.1.5/manifests"},{"name":"4.1.4","sha":"a66256a6297a90669f855a1999298e01e2a1af29","kind":"tag","published_at":"2020-10-27T18:36:26.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.1.4","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.1.4/manifests"},{"name":"4.1.3","sha":"dd6de523cfb7a09b8ba3adfe5454f80f003bd6d3","kind":"tag","published_at":"2020-10-27T18:05:28.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.1.3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.1.3/manifests"},{"name":"4.1.2","sha":"ec0f9636bfdf4ed10222b162f687cfa1f801c875","kind":"tag","published_at":"2020-10-27T17:28:18.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.1.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.1.2/manifests"},{"name":"4.1.1","sha":"cabeb6da55bfac7a6ef950b4133433a8c850f8e3","kind":"tag","published_at":"2020-10-26T17:39:33.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.1.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.1.1/manifests"},{"name":"4.1.0","sha":"90af46da9885e055a4216a90d9a1b456ea14a364","kind":"tag","published_at":"2020-10-25T00:58:25.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.1.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.1.0/manifests"},{"name":"4.0.6","sha":"3a9e64af8fac1819b67a6cb301b5bcc430fbd335","kind":"tag","published_at":"2020-10-20T21:50:51.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.0.6","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.0.6/manifests"},{"name":"4.0.5","sha":"fa81cadf29b3f91ee3ee60e9b23a05991197df4e","kind":"tag","published_at":"2020-10-19T21:35:30.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.0.5","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.0.5/manifests"},{"name":"4.0.4","sha":"ca9a2a56920d8d6efb3fbc1b53a52f427577778d","kind":"tag","published_at":"2020-10-19T02:28:11.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.0.4","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.0.4/manifests"},{"name":"4.0.3","sha":"4e5083693d28695f37ef47035f74af0a53ef8dc9","kind":"tag","published_at":"2020-10-17T01:44:31.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.0.3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.0.3/manifests"},{"name":"4.0.2","sha":"11ac677d426bcd07315d2dde4c1cc43fb3164979","kind":"tag","published_at":"2020-10-16T20:39:00.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.0.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.0.2/manifests"},{"name":"4.0.1","sha":"88b3482cedf9df55461ad9c602c4a70d18e7a5d0","kind":"tag","published_at":"2020-10-16T18:10:40.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.0.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.0.1/manifests"},{"name":"4.0.0","sha":"39f3f3a6232d846980cdf7fd106490751210d4f0","kind":"tag","published_at":"2020-10-09T20:22:43.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.0.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.0.0/manifests"},{"name":"4.0.0a2","sha":"b4890dcf808144f30b7cdf05f5c613b84ee7afc0","kind":"tag","published_at":"2020-09-28T20:34:11.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.0.0a2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.0.0a2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.0.0a2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.0.0a2/manifests"},{"name":"4.0.0a1","sha":"edd8979bf683c2dfb5b9113b7f1261126955dfd1","kind":"tag","published_at":"2020-09-21T01:53:00.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/4.0.0a1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/4.0.0a1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.0.0a1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/4.0.0a1/manifests"},{"name":"3.44.0","sha":"53b7ad02759e9ab35a7e7c0c1fab58d523c79f3e","kind":"tag","published_at":"2020-09-14T00:56:17.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.44.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.44.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.44.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.44.0/manifests"},{"name":"3.43.1","sha":"f56b5398ef12cd3ca360728031faf20f11edc5fe","kind":"tag","published_at":"2020-09-10T03:48:34.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.43.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.43.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.43.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.43.1/manifests"},{"name":"3.43.0","sha":"0cddc4cf259d5349a0ac3f7e7843e8e0fbf7e2a9","kind":"tag","published_at":"2020-09-10T03:36:37.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.43.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.43.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.43.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.43.0/manifests"},{"name":"3.42.0","sha":"ac8212a95b132a5ecd1896aefa8231d85e0ea4f0","kind":"tag","published_at":"2020-09-09T22:02:56.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.42.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.42.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.42.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.42.0/manifests"},{"name":"3.41.0","sha":"31f15c0a1306fe2f769794533b93c9fef97ca251","kind":"tag","published_at":"2020-09-08T02:07:25.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.41.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.41.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.41.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.41.0/manifests"},{"name":"3.40.0","sha":"e257fd9cb0af12ec2946844c8a5ee4077bed82e0","kind":"tag","published_at":"2020-09-07T01:55:20.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.40.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.40.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.40.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.40.0/manifests"},{"name":"3.39.0","sha":"06bc0f1bacdb120a11eee71645f33ca3923ac44a","kind":"tag","published_at":"2020-09-05T03:23:19.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.39.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.39.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.39.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.39.0/manifests"},{"name":"3.38.1","sha":"d16e8817db87720c65d97ec9649352ae284626cf","kind":"tag","published_at":"2020-09-04T03:25:51.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.38.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.38.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.38.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.38.1/manifests"},{"name":"3.38.0","sha":"4ec3cce1d0907e58270b336bb95ee8a294b1a3e0","kind":"tag","published_at":"2020-09-04T03:22:36.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.38.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.38.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.38.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.38.0/manifests"},{"name":"3.37.0","sha":"2cf5efa031d23499946990d35d7754fedac66927","kind":"tag","published_at":"2020-09-03T22:06:04.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.37.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.37.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.37.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.37.0/manifests"},{"name":"3.36.0","sha":"f5758d842f471fc49d5b75c345c83f21881830da","kind":"tag","published_at":"2020-09-03T01:28:32.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.36.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.36.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.36.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.36.0/manifests"},{"name":"3.35.1","sha":"dcc59ab0f461855d2bb5d82f601413cdceedb617","kind":"tag","published_at":"2020-09-02T01:58:33.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.35.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.35.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.35.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.35.1/manifests"},{"name":"3.35.0","sha":"89fec6c9056192308f2e3095d40611ba2fc7ce94","kind":"tag","published_at":"2020-09-02T01:40:35.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.35.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.35.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.35.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.35.0/manifests"},{"name":"3.34.0","sha":"520945483f9b073bbe28aa3194bbb54a14cbdd86","kind":"tag","published_at":"2020-09-01T01:29:30.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.34.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.34.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.34.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.34.0/manifests"},{"name":"3.33.0","sha":"f83d8ce14396a183aa7e83e2ce7d829f79e591c5","kind":"tag","published_at":"2020-08-27T02:25:45.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.33.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.33.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.33.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.33.0/manifests"},{"name":"3.32.3","sha":"47f4279ccd35d0c77d0eef8b31c48200bf0154c7","kind":"tag","published_at":"2020-08-26T20:35:55.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.32.3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.32.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.32.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.32.3/manifests"},{"name":"3.32.2","sha":"0c868fc0db13ea6854e1191123c86a39bcd79b69","kind":"tag","published_at":"2020-08-26T20:25:24.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.32.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.32.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.32.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.32.2/manifests"},{"name":"3.32.1","sha":"2b30e172d13337db8b88ffb9c167eedf283a2840","kind":"tag","published_at":"2020-08-25T14:27:45.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.32.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.32.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.32.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.32.1/manifests"},{"name":"3.32.0","sha":"0f952b59154c035c1d30b56e927cef4c09e6273c","kind":"tag","published_at":"2020-08-24T17:38:28.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.32.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.32.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.32.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.32.0/manifests"},{"name":"3.31.0","sha":"69ebc19b5fde73cc98ff6e092e379fa06f2f01a2","kind":"tag","published_at":"2020-08-21T01:59:28.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.31.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.31.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.31.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.31.0/manifests"},{"name":"3.30.4","sha":"50a9dda1924706e1768c64e532b73cb6310ff72f","kind":"tag","published_at":"2020-08-16T05:16:43.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.30.4","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.30.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.30.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.30.4/manifests"},{"name":"3.30.3","sha":"597f6794a986cd0b7813813992c391360feb386a","kind":"tag","published_at":"2020-08-16T05:13:50.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.30.3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.30.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.30.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.30.3/manifests"},{"name":"3.30.2","sha":"88866d596bdbb24e0a2eda085722c3f0c7078961","kind":"tag","published_at":"2020-08-14T02:57:54.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.30.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.30.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.30.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.30.2/manifests"},{"name":"3.30.1","sha":"32a4add687d7637c04c73cf6064d6a93b7e912be","kind":"tag","published_at":"2020-08-14T01:55:06.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.30.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.30.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.30.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.30.1/manifests"},{"name":"3.30.0","sha":"3ddf131180ea1d8513d7e0bf0539a5e3d28c9cd3","kind":"tag","published_at":"2020-08-12T21:07:05.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.30.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.30.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.30.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.30.0/manifests"},{"name":"3.29.0","sha":"ca18fea26c4e87580ec9a6f94b527d7bbc3eead5","kind":"tag","published_at":"2020-08-11T02:32:44.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.29.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.29.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.29.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.29.0/manifests"},{"name":"3.28.1","sha":"d8102a825f7536fd2740b9529e42848044f2036e","kind":"tag","published_at":"2020-08-10T19:51:05.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.28.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.28.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.28.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.28.1/manifests"},{"name":"3.28.0","sha":"2bef0229d9b11865565b2f1f70935a27846ba5a4","kind":"tag","published_at":"2020-08-08T18:49:29.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.28.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.28.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.28.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.28.0/manifests"},{"name":"3.27.0","sha":"2ff36b44abef47aa958988b3794e32dbdc977aa0","kind":"tag","published_at":"2020-08-06T20:46:12.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.27.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.27.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.27.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.27.0/manifests"},{"name":"3.26.0","sha":"dc9c1dde3f7c484cd8f7028b05db58ea9571fd63","kind":"tag","published_at":"2020-08-03T22:09:14.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.26.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.26.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.26.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.26.0/manifests"},{"name":"3.25.1","sha":"459ff5fcf561cdb937099d1f0eea1b0fae4a12be","kind":"tag","published_at":"2020-07-30T17:54:02.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.25.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.25.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.25.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.25.1/manifests"},{"name":"3.25.0","sha":"299a7bca8929d50ff092bbe950ce7ef314b03c62","kind":"tag","published_at":"2020-07-30T02:20:56.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.25.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.25.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.25.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.25.0/manifests"},{"name":"3.24.1","sha":"577c7854da4b5e25e3f3065a9bdc0d8c57b67479","kind":"tag","published_at":"2020-07-29T16:18:28.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.24.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.24.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.24.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.24.1/manifests"},{"name":"3.24.0","sha":"469cb37302daa653aadb8b2a5e53f03b07e5ddf2","kind":"tag","published_at":"2020-07-29T00:57:50.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.24.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.24.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.24.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.24.0/manifests"},{"name":"3.23.2","sha":"bed547cc9160a5474ce8b8dabaf0643e9211035d","kind":"tag","published_at":"2020-07-24T00:49:36.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.23.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.23.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.23.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.23.2/manifests"},{"name":"3.23.1","sha":"4a1caf7300d7d4c948be6672fd605817506eed19","kind":"tag","published_at":"2020-07-22T16:18:00.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.23.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.23.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.23.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.23.1/manifests"},{"name":"3.23.0","sha":"cfbed20a0563de8dbceb285f5038680dc89811dd","kind":"tag","published_at":"2020-07-20T21:02:55.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.23.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.23.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.23.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.23.0/manifests"},{"name":"3.22.0","sha":"3ee629eb5d7349d55f41b119aff81dd219071a01","kind":"tag","published_at":"2020-07-18T04:45:25.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.22.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.22.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.22.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.22.0/manifests"},{"name":"3.21.2","sha":"8a2a88ccc966baa2851864b9cd2e991d67cf3a4e","kind":"tag","published_at":"2020-07-14T03:29:53.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.21.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.21.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.21.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.21.2/manifests"},{"name":"3.21.1","sha":"f05c6bef29bbe97c3aa480c233d4211b23b116d6","kind":"tag","published_at":"2020-07-14T03:10:22.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.21.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.21.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.21.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.21.1/manifests"},{"name":"3.21.0","sha":"0c77e73d51f66de96faf7bac5067c3602868e1eb","kind":"tag","published_at":"2020-07-14T02:50:25.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.21.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.21.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.21.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.21.0/manifests"},{"name":"3.20.1","sha":"70d6e8c68f7e39f75843699dcfc27c317683dc7b","kind":"tag","published_at":"2020-07-11T17:19:44.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.20.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.20.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.20.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.20.1/manifests"},{"name":"3.20.0","sha":"21cdd0aa3cb4e5ea63c0529d47ce28695c0be01c","kind":"tag","published_at":"2020-07-11T16:16:34.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.20.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.20.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.20.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.20.0/manifests"},{"name":"3.19.2","sha":"f4c713fc220b9afe400471d7b7c5210f7279a75f","kind":"tag","published_at":"2020-07-03T02:08:35.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.19.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.19.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.19.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.19.2/manifests"},{"name":"3.19.1","sha":"ec3be85cf7af69148a49e9fd4397c23c7f7ff0e3","kind":"tag","published_at":"2020-07-02T03:20:46.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.19.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.19.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.19.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.19.1/manifests"},{"name":"3.19.0","sha":"17621d9fd7ca42fbebc9abd60938d2af4bf7e7ff","kind":"tag","published_at":"2020-06-29T20:43:27.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.19.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.19.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.19.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.19.0/manifests"},{"name":"3.18.1","sha":"783be3ad361e83375138093e389343f8a1b28e4b","kind":"tag","published_at":"2020-06-26T03:49:40.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.18.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.18.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.18.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.18.1/manifests"},{"name":"3.18.0","sha":"5718140a82108d7f0d463efadc30bfc94690b277","kind":"tag","published_at":"2020-06-25T22:07:02.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.18.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.18.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.18.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.18.0/manifests"},{"name":"3.17.1","sha":"3a0c746430960006cf68316c5c0d89b596d67703","kind":"tag","published_at":"2020-06-23T16:48:40.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.17.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.17.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.17.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.17.1/manifests"},{"name":"3.17.0","sha":"827f9b57bbaa1766cae72970273ba908036e45b1","kind":"tag","published_at":"2020-06-23T16:14:32.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.17.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.17.0/manifests"},{"name":"3.16.1","sha":"86021f294895b4dbedf22695db57359a06b943c6","kind":"tag","published_at":"2020-06-17T02:34:39.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.16.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.16.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.16.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.16.1/manifests"},{"name":"3.16.0","sha":"efd6e3e7e5b97ccf5967bc162d6aac149937fa75","kind":"tag","published_at":"2020-06-14T21:50:31.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.16.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.16.0/manifests"},{"name":"3.15.6","sha":"ebd98bebe9a8fc0b57e68cfc12c4979833baa6a5","kind":"tag","published_at":"2020-02-18T22:53:13.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.15.6","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.15.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.15.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.15.6/manifests"},{"name":"3.15.5","sha":"b3eb05f70576cd25b8b331aa6f36194c196a4d0c","kind":"tag","published_at":"2020-02-18T22:51:39.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.15.5","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.15.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.15.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.15.5/manifests"},{"name":"3.15.4","sha":"5e6a4ce1ec22311d153940b4d4152cffae8ff434","kind":"tag","published_at":"2020-01-27T01:37:45.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.15.4","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.15.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.15.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.15.4/manifests"},{"name":"3.15.3","sha":"92e91a3fdf6f256f6b8573ee9638744681c8c256","kind":"tag","published_at":"2020-01-27T01:33:16.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.15.3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.15.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.15.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.15.3/manifests"},{"name":"3.15.2","sha":"0dae54df18d6bca67126553dff08738332b3ca05","kind":"tag","published_at":"2020-01-27T00:34:07.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.15.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.15.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.15.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.15.2/manifests"},{"name":"3.15.1","sha":"363b87fd74c9458061ccf50001d7a8a4bf6b19a1","kind":"tag","published_at":"2020-01-27T00:17:49.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.15.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.15.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.15.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.15.1/manifests"},{"name":"3.15.0","sha":"a58e30070755395f221cfa8896c94cc819d47eb6","kind":"tag","published_at":"2020-01-26T23:56:40.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.15.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.15.0/manifests"},{"name":"3.14.12","sha":"2c7b08230187f66340f122c81d347ab920a3e5d0","kind":"tag","published_at":"2019-10-09T14:46:28.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.14.12","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.14.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.14.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.14.12/manifests"},{"name":"3.14.11","sha":"8026e106a504cbee4f399595ab56ff7c6be1e9c6","kind":"tag","published_at":"2019-10-08T18:46:53.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.14.11","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.14.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.14.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.14.11/manifests"},{"name":"3.14.10","sha":"2684b791039de30671fa5a6d6e0add60f1923795","kind":"tag","published_at":"2019-08-18T01:24:45.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.14.10","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.14.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.14.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.14.10/manifests"},{"name":"3.14.9","sha":"75ffa8dd938392126b44ae54a3d34a00b8a45a2a","kind":"tag","published_at":"2019-08-18T01:09:34.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.14.9","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.14.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.14.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.14.9/manifests"},{"name":"3.14.8","sha":"0568e402a14d44f1a03f9a342119ffe514d880bd","kind":"tag","published_at":"2019-07-29T19:25:19.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.14.8","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.14.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.14.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.14.8/manifests"},{"name":"3.14.7","sha":"e1b930379773064c42a957c4c40e36858e80d597","kind":"tag","published_at":"2019-06-07T14:03:43.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.14.7","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.14.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.14.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.14.7/manifests"},{"name":"3.14.6","sha":"35cb351e7218b50b7a3de629ee7dec25b867d88a","kind":"tag","published_at":"2019-05-09T19:02:31.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.14.6","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.14.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.14.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.14.6/manifests"},{"name":"3.14.5","sha":"d04fe41eb17f667da38b97525e2d16c8f2d272fe","kind":"tag","published_at":"2019-03-22T02:23:27.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.14.5","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.14.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.14.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.14.5/manifests"},{"name":"3.14.4","sha":"6c9bff116a10765d196a1f9d74ccd0accbf1aa5a","kind":"tag","published_at":"2019-01-06T02:39:04.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.14.4","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.14.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.14.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.14.4/manifests"},{"name":"3.14.3","sha":"5cf5bdda24851dd97cfa0f5054f4a8c35ddac014","kind":"tag","published_at":"2018-12-22T19:07:56.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.14.3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.14.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.14.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.14.3/manifests"},{"name":"3.14.2","sha":"2d0a91efbf55e91f029bbfa5e3af177a3350b315","kind":"tag","published_at":"2018-11-08T21:13:15.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.14.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.14.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.14.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.14.2/manifests"},{"name":"3.14.1","sha":"15a3031da6eac64a3f9d35c21b5c30185c57a577","kind":"tag","published_at":"2018-11-08T20:59:46.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.14.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.14.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.14.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.14.1/manifests"},{"name":"3.14.0","sha":"62b0f914b95bb51b268108854a75b71a5edb0cfa","kind":"tag","published_at":"2018-10-19T10:01:59.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.14.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.14.0/manifests"},{"name":"3.13.2","sha":"829eed2222d8aa4451ee147bc149b50c695a98ae","kind":"tag","published_at":"2018-09-02T18:02:21.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.13.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.13.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.13.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.13.2/manifests"},{"name":"3.13.1","sha":"1cd3bd18e808693e97e2b058aeeff951eb80dacc","kind":"tag","published_at":"2018-08-16T21:28:23.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.13.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.13.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.13.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.13.1/manifests"},{"name":"3.13.0","sha":"1c0f2e7bf1d6d846bf8d28b8cceb2c37d8ce7562","kind":"tag","published_at":"2018-08-16T21:19:08.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.13.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.13.0/manifests"},{"name":"3.12.4","sha":"8cc00dee8351e624fa0929186c76e38be82f6d38","kind":"tag","published_at":"2018-07-26T07:33:39.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.12.4","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.12.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.12.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.12.4/manifests"},{"name":"3.12.3","sha":"0f35208650a1ee71a1678430f8b70d6c0f06688c","kind":"tag","published_at":"2018-07-24T20:27:50.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.12.3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.12.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.12.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.12.3/manifests"},{"name":"3.12.2","sha":"699eb74a6630e74ac65401dd276cb595346aa6dd","kind":"tag","published_at":"2018-07-03T16:34:10.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.12.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.12.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.12.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.12.2/manifests"},{"name":"3.12.1","sha":"83053ad49efc4376c055e1469ad24fcb0ea1b085","kind":"tag","published_at":"2018-07-02T13:52:51.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.12.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.12.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.12.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.12.1/manifests"},{"name":"3.12.0","sha":"56cd23f5818f1f31bdaf3d005ed8038e002f1129","kind":"tag","published_at":"2018-04-23T16:47:10.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.12.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.12.0/manifests"},{"name":"3.11.3","sha":"481bb25f3e192ba186e6fa16f4391df98abfebf5","kind":"tag","published_at":"2018-02-22T13:32:35.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.11.3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.11.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.11.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.11.3/manifests"},{"name":"3.11.2","sha":"665b8d024db2f9d26d814712cc248368dcf159a1","kind":"tag","published_at":"2018-02-22T09:50:31.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.11.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.11.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.11.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.11.2/manifests"},{"name":"3.11.1","sha":"13fd1be6c2b0181179378a03929eece6be481bcc","kind":"tag","published_at":"2018-01-26T17:25:10.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.11.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.11.1/manifests"},{"name":"3.11.0","sha":"0e50b1d379d1645a4ac500bb626b90d85ced7f78","kind":"tag","published_at":"2018-01-24T23:16:14.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.11.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.11.0/manifests"},{"name":"3.10.0","sha":"68c734a2d1cf0e8441ea258f13e24ac6b55fbe07","kind":"tag","published_at":"2018-01-21T21:59:35.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.10.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.10.0/manifests"},{"name":"3.9.1","sha":"7e4528e35d6fb261444462bd3d837690521eebe0","kind":"tag","published_at":"2017-12-25T18:57:23.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.9.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.9.1/manifests"},{"name":"3.9.0","sha":"9a634f86ab266a7e29509aad995b86717a09a805","kind":"tag","published_at":"2017-12-25T15:44:52.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.9.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.9.0/manifests"},{"name":"3.8.2","sha":"bd38c23c744cd81f82ab3ee5da89f00df91c9e3b","kind":"tag","published_at":"2017-11-30T09:49:47.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.8.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.8.2/manifests"},{"name":"3.8.1","sha":"8cc8c5758944ac43ae42ec722c4e0a6947dcfeb9","kind":"tag","published_at":"2017-11-30T09:31:22.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.8.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.8.1/manifests"},{"name":"3.8.0","sha":"74a058eb93d91090bd44fc4dde316b32902ff5c1","kind":"tag","published_at":"2017-11-21T09:54:08.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.8.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.8.0/manifests"},{"name":"3.7.1","sha":"73ce30e2ba2d852791cea1b47379a0d67d030694","kind":"tag","published_at":"2017-10-30T15:05:40.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.7.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.7.1/manifests"},{"name":"3.7.0","sha":"8431ebacc03f459ee4db48276586ca7a109f45d1","kind":"tag","published_at":"2017-10-13T17:30:27.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.7.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.7.0/manifests"},{"name":"3.6.1","sha":"a4bb5514b1f9b0f278d560c283bc041e7b8ea628","kind":"tag","published_at":"2017-08-08T16:55:33.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.6.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.6.1/manifests"},{"name":"3.6.0","sha":"fa120b2a31603ed2544850422912b0223cfb38f9","kind":"tag","published_at":"2017-07-09T20:47:12.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.6.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.6.0/manifests"},{"name":"3.5.0","sha":"73f34b66bec663648a41426fc6ee7f1b1217fff3","kind":"tag","published_at":"2017-07-07T15:06:33.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.5.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.5.0/manifests"},{"name":"3.4.8","sha":"d0b86facb3aa5b900e8d9b19bab7cbbbc1fbb80b","kind":"tag","published_at":"2017-06-08T22:50:31.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.4.8","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.4.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.4.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.4.8/manifests"},{"name":"3.4.7","sha":"bc398cef538f65c795349fd1383cec6b359f5d47","kind":"tag","published_at":"2017-05-29T07:41:48.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.4.7","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.4.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.4.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.4.7/manifests"},{"name":"3.4.6","sha":"4cd8ef3b3fa1ba87bf45b1f59adf9575f7e7706e","kind":"tag","published_at":"2017-05-29T07:20:02.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.4.6","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.4.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.4.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.4.6/manifests"},{"name":"3.4.5","sha":"50b38fd905d6c319a0fed2b7ab4a06bdcf1cf5bd","kind":"tag","published_at":"2017-05-17T08:06:59.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.4.5","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.4.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.4.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.4.5/manifests"},{"name":"3.4.4","sha":"46a7eb0f3f1ffd551ab7638391fe47c8fed5ff8e","kind":"tag","published_at":"2017-05-08T16:05:26.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.4.4","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.4.4/manifests"},{"name":"3.4.3","sha":"0766df39d7fda9ba1bd14abefdf9232b29e6a0dd","kind":"tag","published_at":"2017-04-18T21:00:51.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.4.3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.4.3/manifests"},{"name":"3.4.2","sha":"9c589df6ab3bb0cf0e609df00725ced3dd70549a","kind":"tag","published_at":"2017-04-18T20:57:53.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.4.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.4.2/manifests"},{"name":"3.4.1","sha":"870809c83644db17fe163479335bde28db09bd20","kind":"tag","published_at":"2017-04-07T06:20:16.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.4.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.4.1/manifests"},{"name":"3.4.0","sha":"48e0e5bedff9638d4650fad3b3871f6f42f5c4b9","kind":"tag","published_at":"2017-04-06T22:11:37.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.4.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.4.0/manifests"},{"name":"3.3.7","sha":"3a0e803e3c8d1fee8697025b3907ccb5b7065bfb","kind":"tag","published_at":"2017-03-28T22:34:28.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.3.7","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.3.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.3.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.3.7/manifests"},{"name":"3.3.6","sha":"a59530d2289653cfe2084c6ffe83e74dfc0f208f","kind":"tag","published_at":"2017-03-28T21:23:15.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.3.6","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.3.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.3.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.3.6/manifests"},{"name":"3.3.5","sha":"f8960ddacbc7c7ae730f99bb3b7c391f4cf48f5d","kind":"tag","published_at":"2017-03-26T20:01:29.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.3.5","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.3.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.3.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.3.5/manifests"},{"name":"3.3.4","sha":"01e145bd60fd0bec779753699f8511326bfaf214","kind":"tag","published_at":"2017-03-25T00:12:15.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.3.4","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.3.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.3.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.3.4/manifests"},{"name":"3.3.3","sha":"417eaceb4cc51ac2927482be3972d370ddbbc6cd","kind":"tag","published_at":"2017-03-15T15:28:42.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.3.3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.3.3/manifests"},{"name":"3.3.2","sha":"a6777550a910b5c26d1104c87081e1a0380306d5","kind":"tag","published_at":"2017-02-28T20:32:19.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.3.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.3.2/manifests"},{"name":"3.3.1","sha":"a947f9eea2da361eb130ea48bcd936175aa1a35d","kind":"tag","published_at":"2017-02-01T11:09:18.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.3.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.3.1/manifests"},{"name":"3.3.0","sha":"79d1d76817c392f8627ad40391031c963e70315d","kind":"tag","published_at":"2017-01-29T22:12:27.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.3.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.3.0/manifests"},{"name":"3.2.5","sha":"9bb9cf8833e2bf1274dec4f0c4a367956b053d50","kind":"tag","published_at":"2017-01-29T21:39:36.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.2.5","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.2.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.2.5/manifests"},{"name":"3.2.4","sha":"4215cdf3d610a2473fa0dadf772aa3293331ee20","kind":"tag","published_at":"2017-01-10T22:18:42.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.2.4","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.2.4/manifests"},{"name":"3.2.3","sha":"554e307da4244cd0f824bef65cb6e39d8aa0811d","kind":"tag","published_at":"2016-12-27T21:11:33.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.2.3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.2.3/manifests"},{"name":"3.2.2","sha":"b8ab88dcd56fec97b04d3529b6f5be24f7a9a8c3","kind":"tag","published_at":"2016-12-04T11:20:02.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.2.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.2.2/manifests"},{"name":"3.2.1","sha":"d1531a830726fb07f83a00e2e27c8bddfe8aae18","kind":"tag","published_at":"2016-12-02T19:04:37.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.2.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.2.1/manifests"},{"name":"3.2.0","sha":"6881d370ae6fc58b131b23ef6f7f040e0f2c9124","kind":"tag","published_at":"2016-12-02T18:48:28.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.2.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.2.0/manifests"},{"name":"3.1.5","sha":"ea8c48f1aa8f13e33873a859037536a93df66f2a","kind":"tag","published_at":"2016-11-23T20:34:12.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.1.5","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.1.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.1.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.1.5/manifests"},{"name":"3.1.4","sha":"17a880f16161c91cff338ba22796c56bf2d82cda","kind":"tag","published_at":"2016-11-17T21:35:58.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.1.4","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.1.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.1.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.1.4/manifests"},{"name":"3.1.3","sha":"b0d507b8bfcc215f5d68733937b8f512c177e8bd","kind":"tag","published_at":"2016-11-15T12:32:41.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.1.3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.1.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.1.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.1.3/manifests"},{"name":"3.1.2","sha":"18eb73390400cdf84288611ac837280cf1535dc9","kind":"tag","published_at":"2016-11-15T12:28:29.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.1.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.1.2/manifests"},{"name":"3.1.1","sha":"a1f2a14a039712f2f0d8a3a746a95e1fc480d5c6","kind":"tag","published_at":"2016-11-13T09:53:48.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.1.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.1.1/manifests"},{"name":"3.1.0","sha":"079d3f5ea74927801a681bd46427574ccd464a36","kind":"tag","published_at":"2016-11-11T21:09:35.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.1.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.1.0/manifests"},{"name":"3.0.1","sha":"98ee1882cde6251051fc553c2d1c4fda26f6b4ee","kind":"tag","published_at":"2016-11-11T16:36:58.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.0.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.0.1/manifests"},{"name":"3.0.0","sha":"b4541bf177f2eceac18967b8d236c32d313df099","kind":"tag","published_at":"2016-11-11T16:04:43.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/3.0.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/3.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/3.0.0/manifests"},{"name":"2.2.10","sha":"d1b1196d6d46bdb2f9aa057bf74787fb67f6063a","kind":"tag","published_at":"2016-10-20T14:18:12.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/2.2.10","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/2.2.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/2.2.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/2.2.10/manifests"},{"name":"2.2.9","sha":"788bce686f67a588d72ddb1b287a43308058cc7a","kind":"tag","published_at":"2016-10-19T17:25:32.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/2.2.9","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/2.2.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/2.2.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/2.2.9/manifests"},{"name":"2.2.8","sha":"0fe16a0b4076e9e03c91317445c03b12cab1f1d9","kind":"tag","published_at":"2016-10-13T07:43:08.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/2.2.8","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/2.2.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/2.2.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/2.2.8/manifests"},{"name":"2.2.7","sha":"31dfa191f01d47a2a28c08700208af00621000a5","kind":"tag","published_at":"2016-10-12T07:45:44.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/2.2.7","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/2.2.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/2.2.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/2.2.7/manifests"},{"name":"2.2.6","sha":"2601646f71eca0f2bca1b8c68cb744476d110ad0","kind":"tag","published_at":"2016-10-12T07:42:21.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/2.2.6","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/2.2.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/2.2.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/2.2.6/manifests"},{"name":"2.2.5","sha":"489885fda9db9f17907c99fe4bc3aacf0599c273","kind":"tag","published_at":"2016-10-11T20:53:19.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/2.2.5","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/2.2.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/2.2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/2.2.5/manifests"},{"name":"2.2.4","sha":"08af0b18dfb908e7e456cb7c731987217656b075","kind":"tag","published_at":"2016-10-11T14:47:25.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/2.2.4","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/2.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/2.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/2.2.4/manifests"},{"name":"2.2.3","sha":"9a14e8b65920954e94317fbcec0bac0e6e7ddba9","kind":"tag","published_at":"2016-10-07T15:04:34.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/2.2.3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/2.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/2.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/2.2.3/manifests"},{"name":"2.2.2","sha":"5c3b58d653001f2634d31cffee73ba0645843b39","kind":"tag","published_at":"2016-10-07T13:59:39.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/2.2.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/2.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/2.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/2.2.2/manifests"},{"name":"2.2.1","sha":"432493801f9089991d464eafd97dc0ecb7cd27a2","kind":"tag","published_at":"2016-10-07T13:55:49.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/2.2.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/2.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/2.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/2.2.1/manifests"},{"name":"2.2.0","sha":"7b71d419fdf857fba73fcf9c7604b51e3ac3254d","kind":"tag","published_at":"2016-09-22T21:36:10.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/2.2.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/2.2.0/manifests"},{"name":"2.1.1","sha":"d9f4aed43c224c639dc4707c6015953d4a2c7cab","kind":"tag","published_at":"2016-09-07T08:05:35.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/2.1.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/2.1.1/manifests"},{"name":"2.1.0","sha":"a309a2053d3d5f8b1fd13d0e60af87a1d2269214","kind":"tag","published_at":"2016-08-18T22:17:08.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/2.1.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/2.1.0/manifests"},{"name":"2.0.0","sha":"1c47f7361074ecf92c8368513850d08bc6baa498","kind":"tag","published_at":"2016-06-09T16:55:11.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/2.0.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/2.0.0/manifests"},{"name":"1.17.0","sha":"bef0a952b5690750c786ffb26fb050fcc996edee","kind":"tag","published_at":"2016-05-16T08:21:13.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/1.17.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/1.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.17.0/manifests"},{"name":"1.16.8","sha":"69043d9c4ee38d98cfa74a124fccd4acfc0b8a10","kind":"tag","published_at":"2016-04-26T23:09:18.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/1.16.8","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/1.16.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.16.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.16.8/manifests"},{"name":"1.16.7","sha":"672eb6dfd779ffa6045aa80cef3f22cd85c9a4a2","kind":"tag","published_at":"2016-04-26T10:15:44.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/1.16.7","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/1.16.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.16.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.16.7/manifests"},{"name":"1.16.5","sha":"4e70d138fe28a04089ef7a2b686285479fc08c95","kind":"tag","published_at":"2016-04-25T08:59:25.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/1.16.5","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/1.16.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.16.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.16.5/manifests"},{"name":"1.16.4","sha":"bb433b29ad1873c2bf561e7cdeed27e9780220bb","kind":"tag","published_at":"2016-04-23T12:34:46.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/1.16.4","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/1.16.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.16.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.16.4/manifests"},{"name":"1.16.1","sha":"edde8f8bff6875667ef32ad1d95defe7a2686629","kind":"tag","published_at":"2016-04-20T15:15:42.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/1.16.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/1.16.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.16.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.16.1/manifests"},{"name":"1.15.2","sha":"fe1276811451adc7f138706696ffe408f9d394bb","kind":"tag","published_at":"2016-04-04T20:58:17.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/1.15.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/1.15.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.15.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.15.2/manifests"},{"name":"1.15.1","sha":"40f7e6ed26cea6d160e7121d58a84e2efeea5d6f","kind":"tag","published_at":"2016-03-17T00:15:36.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/1.15.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/1.15.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.15.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.15.1/manifests"},{"name":"1.15.0","sha":"043665f8e557258324d6e774689100222a5189c5","kind":"tag","published_at":"2016-03-13T22:27:38.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/1.15.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/1.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.15.0/manifests"},{"name":"1.14.11","sha":"cfaaa723fe969308e786b80fdace894ee3933f40","kind":"tag","published_at":"2016-03-11T11:05:08.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/1.14.11","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/1.14.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.14.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.14.11/manifests"},{"name":"1.14.10","sha":"dba896670c6b411f7d9b9d812c6f7c768afeef0d","kind":"tag","published_at":"2016-03-09T09:39:55.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/1.14.10","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/1.14.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.14.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.14.10/manifests"},{"name":"1.14.9","sha":"ad27f44b67d3177dd5c10dbf689308984c8fedff","kind":"tag","published_at":"2016-03-01T15:04:47.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/1.14.9","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/1.14.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.14.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.14.9/manifests"},{"name":"1.14.8","sha":"b53c1bbffe5df4d3250315771f7b5e94ad974b66","kind":"tag","published_at":"2016-02-26T22:19:27.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/1.14.8","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/1.14.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.14.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.14.8/manifests"},{"name":"1.14.7","sha":"15ba3e07b8389e2490c899274a91c135b8bcf879","kind":"tag","published_at":"2016-02-26T22:15:13.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/1.14.7","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/1.14.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.14.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.14.7/manifests"},{"name":"1.14.6","sha":"9da9ef71535f667d809699c4e0a87e4b2bb5e5ce","kind":"tag","published_at":"2016-02-26T22:08:01.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/1.14.6","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/1.14.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.14.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.14.6/manifests"},{"name":"1.14.5","sha":"beb7bbd3d91b90066855adc5bb584588f18abff4","kind":"tag","published_at":"2016-02-26T17:34:53.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/1.14.5","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/1.14.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.14.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.14.5/manifests"},{"name":"1.14.4","sha":"b433a730bc68433c592031a709737b9d398c0432","kind":"tag","published_at":"2016-02-07T23:42:41.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/1.14.4","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/1.14.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.14.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.14.4/manifests"},{"name":"1.14.3","sha":"6c26643e92ced7dd6af0550f064dbe057acdcb1b","kind":"tag","published_at":"2016-02-07T22:41:39.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/1.14.3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/1.14.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.14.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.14.3/manifests"},{"name":"1.14.2","sha":"f0f5822d14b6da711aef0ab60018b5ca74bfe5c0","kind":"tag","published_at":"2016-02-04T20:56:18.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/1.14.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/1.14.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.14.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.14.2/manifests"},{"name":"1.14.1","sha":"b43a96d743cc2f38875143b12fe9a62852b8d74b","kind":"tag","published_at":"2016-02-01T21:18:39.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/1.14.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/1.14.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.14.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.14.1/manifests"},{"name":"1.14.0","sha":"449a67eede06c3cdf3f54912598ff60d5a90888f","kind":"tag","published_at":"2016-01-25T13:10:12.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/1.14.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/1.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.14.0/manifests"},{"name":"1.13.2","sha":"3d8de194acf8a01904f04bef978017525e4e41c1","kind":"tag","published_at":"2016-01-11T09:31:23.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/1.13.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/1.13.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.13.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.13.2/manifests"},{"name":"1.13.1","sha":"ae6067b96ab3fb98e9b0208d106ac3ae01127425","kind":"tag","published_at":"2016-01-11T09:28:11.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/1.13.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/1.13.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.13.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.13.1/manifests"},{"name":"1.13.0","sha":"7f46524162a765245e4f261c71a7dfe816565a39","kind":"tag","published_at":"2015-12-28T15:47:20.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/1.13.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/1.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.13.0/manifests"},{"name":"1.12.0","sha":"0d00e2b0f5986e2db7c7b23d9f35dbc10c80977d","kind":"tag","published_at":"2015-12-15T15:02:44.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/1.12.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/1.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.12.0/manifests"},{"name":"1.11.2","sha":"ee37558946dc3614cd11f040a4fc9c025eae668c","kind":"tag","published_at":"2015-12-11T09:41:24.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/1.11.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/1.11.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.11.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.11.2/manifests"},{"name":"1.11.1","sha":"cadcf7336242c37434c66347966bbeedc2793d89","kind":"tag","published_at":"2015-11-30T10:10:54.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/1.11.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/1.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/1.11.1/manifests"},{"name":"0.10.5","sha":"b22b89362333ae1cd8f1a3c095df2609192a1bf1","kind":"tag","published_at":"2015-11-04T14:35:46.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.10.5","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.10.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.10.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.10.5/manifests"},{"name":"0.10.4","sha":"addbd16b3bccdda893ff2354798a8f850bfe7ffc","kind":"tag","published_at":"2015-11-02T08:58:39.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.10.4","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.10.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.10.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.10.4/manifests"},{"name":"0.10.3","sha":"607e51e2186842f9648aafa09fd8b097c8996b0e","kind":"tag","published_at":"2015-10-26T10:53:26.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.10.3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.10.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.10.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.10.3/manifests"},{"name":"0.10.2","sha":"53f692a78c4f888a03322f98fa1ef7175bd8a38d","kind":"tag","published_at":"2015-10-23T15:08:19.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.10.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.10.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.10.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.10.2/manifests"},{"name":"0.10.1","sha":"a42fefacef788c1335870850ea3df6acd7b36ce3","kind":"tag","published_at":"2015-10-23T14:10:47.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.10.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.10.1/manifests"},{"name":"0.10.0","sha":"79bde335fa230d3fb898db4b1eeb50bccdababdd","kind":"tag","published_at":"2015-10-23T13:50:25.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.10.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.10.0/manifests"},{"name":"0.9.5","sha":"6cbd0ce7fc7ac076c7f1d8ad1359c8c31801ee1c","kind":"tag","published_at":"2015-09-14T07:53:51.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.9.5","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.9.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.9.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.9.5/manifests"},{"name":"0.9.4","sha":"1bfa0be26bf1093a6ec9886e7fc2ecb0384f1c9a","kind":"tag","published_at":"2015-09-04T07:18:13.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.9.4","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.9.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.9.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.9.4/manifests"},{"name":"0.9.3","sha":"650ee014ec36850d031629c7ed35b67ac1e9e0ea","kind":"tag","published_at":"2015-09-03T23:35:06.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.9.3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.9.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.9.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.9.3/manifests"},{"name":"0.9.2","sha":"b5ad081976ce05b57cecadaacd166cfcb17bfe59","kind":"tag","published_at":"2015-09-03T13:01:23.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.9.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.9.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.9.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.9.2/manifests"},{"name":"0.9.1","sha":"4291f0efc10df2825f8acf35a55f04b3b8e87b72","kind":"tag","published_at":"2015-09-02T21:28:29.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.9.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.9.1/manifests"},{"name":"0.8.1","sha":"ec2cc5dfaf014c6b097d4dc5c3a552413e1cbf78","kind":"tag","published_at":"2015-08-31T13:36:50.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.8.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.8.1/manifests"},{"name":"0.8.0","sha":"c9374038befae25f364fbf3a33ec787a96b1c40a","kind":"tag","published_at":"2015-08-31T09:35:01.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.8.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.8.0/manifests"},{"name":"0.7.8","sha":"c9374038befae25f364fbf3a33ec787a96b1c40a","kind":"tag","published_at":"2015-08-17T19:44:48.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.7.8","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.7.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.7.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.7.8/manifests"},{"name":"0.7.7","sha":"c36e7b941c331177af4b01bebe4eba18d740beb0","kind":"tag","published_at":"2015-08-05T14:44:40.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.7.7","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.7.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.7.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.7.7/manifests"},{"name":"0.7.6","sha":"3c7e7a843487abc3896054bc63de07afe26e96b8","kind":"tag","published_at":"2015-08-05T14:39:03.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.7.6","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.7.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.7.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.7.6/manifests"},{"name":"0.7.5","sha":"62fd6f37f2706063ca59509687f909720ce803b3","kind":"tag","published_at":"2015-04-03T13:22:04.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.7.5","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.7.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.7.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.7.5/manifests"},{"name":"0.7.4","sha":"96930c9d362549077507c35023da5319cd97f04a","kind":"tag","published_at":"2015-04-03T13:18:54.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.7.4","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.7.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.7.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.7.4/manifests"},{"name":"0.7.3","sha":"fb40c949e4b997ec143bc917cb1f01973b53b070","kind":"tag","published_at":"2015-04-03T13:14:20.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.7.3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.7.3/manifests"},{"name":"0.7.2","sha":"e38d2664eaac6fcccf91cc4bfddedfabe6a8f5ea","kind":"tag","published_at":"2015-04-02T22:22:59.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.7.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.7.2/manifests"},{"name":"0.7.1","sha":"e3b8948741ba10b2893562ca81a2cb6f4588e904","kind":"tag","published_at":"2015-04-02T22:19:49.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.7.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.7.1/manifests"},{"name":"0.7.0","sha":"d53b6d9a876e8fdb6874c761f2c756f068009cb9","kind":"tag","published_at":"2015-04-02T21:53:42.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.7.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.7.0/manifests"},{"name":"0.6.2","sha":"67a217181fee1ee397e4a79ac41d377858021f69","kind":"tag","published_at":"2015-03-26T15:28:37.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.6.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.6.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.6.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.6.2/manifests"},{"name":"0.6.1","sha":"76d567e37672cb021213cdc10ce1994b41cd23b0","kind":"tag","published_at":"2015-03-26T08:30:28.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.6.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.6.1/manifests"},{"name":"0.6.0","sha":"db6c3b79f772c01f523493d523d26d1f80190b9a","kind":"tag","published_at":"2015-03-23T15:04:27.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.6.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.6.0/manifests"},{"name":"0.5.0","sha":"786f3392efb64179d096b748e8e3ff3fb044f951","kind":"tag","published_at":"2015-03-17T00:11:51.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.5.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.5.0/manifests"},{"name":"0.4.4","sha":"4f0f93459be82851ff0f780a09c0f797febdcbe2","kind":"tag","published_at":"2015-03-07T22:33:20.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.4.4","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.4.4/manifests"},{"name":"0.4.3","sha":"4f0f93459be82851ff0f780a09c0f797febdcbe2","kind":"tag","published_at":"2015-03-07T22:30:40.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.4.3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.4.3/manifests"},{"name":"0.4.2","sha":"16799e414b09dbb7d268ed1e35b1fd8c61f2ac37","kind":"tag","published_at":"2015-02-24T23:49:09.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.4.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.4.2/manifests"},{"name":"0.4.1","sha":"b6961f93116a41073eaa25d755f71fe70dc06d60","kind":"tag","published_at":"2015-02-22T22:19:39.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.4.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.4.1/manifests"},{"name":"0.3.1","sha":"333f2db9790a952a150af6b4671adef454d12d0b","kind":"tag","published_at":"2015-01-28T13:05:26.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.3.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.3.1/manifests"},{"name":"0.3.0","sha":"1192557e1b5440a4f3c3f74ef1289f1e22fd6e0a","kind":"tag","published_at":"2015-01-28T12:59:14.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.3.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.3.0/manifests"},{"name":"0.2.1","sha":"1631978790bea43b05311c9e3db6f8a5095b4f37","kind":"tag","published_at":"2015-01-23T22:31:45.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.2.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.2.1/manifests"},{"name":"0.2.0","sha":"92254b0276acfd84c3127a4a423e57d15a497674","kind":"tag","published_at":"2015-01-22T23:43:18.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.2.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.2.0/manifests"},{"name":"0.1.0","sha":"5462bb91c4123b46a22700834af1da0c4bad6931","kind":"tag","published_at":"2015-01-18T00:29:23.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.1.0","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.1.0/manifests"},{"name":"0.0.6","sha":"65893178dc433e00a78957b4a7213520c68194e1","kind":"tag","published_at":"2015-01-16T21:11:43.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.0.6","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.0.6/manifests"},{"name":"0.0.5","sha":"2bfdae8949a683ba01627c7f826c6fc149b4d867","kind":"tag","published_at":"2015-01-11T16:17:46.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.0.5","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.0.5/manifests"},{"name":"0.0.4","sha":"98435c953f6b3320479e38be7c15d7f5a4eadefe","kind":"tag","published_at":"2015-01-11T16:12:09.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.0.4","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.0.4/manifests"},{"name":"0.0.3","sha":"2a29c43115af19464644394d06023da94996d951","kind":"tag","published_at":"2015-01-11T13:02:11.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.0.3","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.0.3/manifests"},{"name":"0.0.2","sha":"2a29c43115af19464644394d06023da94996d951","kind":"tag","published_at":"2015-01-10T12:52:03.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.0.2","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.0.2/manifests"},{"name":"0.0.1","sha":"80e18e7562064513cc35efef9b6e6f5dfb4962de","kind":"tag","published_at":"2015-01-05T09:18:41.000Z","download_url":"https://codeload.github.com/ets-labs/python-dependency-injector/tar.gz/0.0.1","html_url":"https://github.com/ets-labs/python-dependency-injector/releases/tag/0.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ets-labs%2Fpython-dependency-injector/tags/0.0.1/manifests"}]},"repo_metadata_updated_at":"2024-09-07T00:37:37.429Z","dependent_packages_count":77,"downloads":2423865,"downloads_period":"last-month","dependent_repos_count":368,"rankings":{"downloads":0.3160187165142465,"dependent_repos_count":0.7611443411473802,"dependent_packages_count":0.3684596924437147,"stargazers_count":1.3344381313131313,"forks_count":3.225876483172944,"docker_downloads_count":2.374012554836138,"average":1.3966583199045923},"purl":"pkg:pypi/dependency-injector","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/dependency-injector","docker_dependents_count":43,"docker_downloads_count":6176,"usage_url":"https://repos.ecosyste.ms/usage/pypi/dependency-injector","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/dependency-injector/dependencies","status":null,"funding_links":[],"critical":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/dependency-injector/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/dependency-injector/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/dependency-injector/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/dependency-injector/related_packages","maintainers":[{"uuid":"rmk","login":"rmk","name":null,"email":null,"url":null,"packages_count":5,"html_url":"https://pypi.org/user/rmk/","role":null,"created_at":"2022-12-19T07:00:26.230Z","updated_at":"2022-12-19T07:00:26.230Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/rmk/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":690322,"maintainers_count":292759,"namespaces_count":0,"keywords_count":228590,"github":"pypi","metadata":{"funded_packages_count":48950},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-06-06T05:32:09.692Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}},"unique_repositories_count":31,"unique_repositories_count_past_30_days":5,"recent_issues":[{"uuid":"4418087753","node_id":"PR_kwDOPnn26s7aG6Wi","number":4,"state":"open","title":"chore(deps): update dependency-injector requirement from \u003c5.0.0,\u003e=4.48.1 to \u003e=4.49.0,\u003c5.0.0","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-11T04:33:51.000Z","updated_at":"2026-05-11T04:33:52.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): update","packages":[{"name":"dependency-injector","old_version":"\u003c5.0.0,\u003e=4.48.1","new_version":"\u003e=4.49.0,\u003c5.0.0","repository_url":"https://github.com/ets-labs/python-dependency-injector"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [dependency-injector](https://github.com/ets-labs/python-dependency-injector) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.49.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.14 support\u003c/li\u003e\n\u003cli\u003eFix Pydantic v2 deprecation warning triggering on settings class import (fixes \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix grammar in Declarative Container documentation by \u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing warn_unresolved parameter to WiringConfiguration in containers.pyi by \u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd keep_cache argument to Container.wire typings by \u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for some type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/943\"\u003eets-labs/python-dependency-injector#943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for remaining type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/953\"\u003eets-labs/python-dependency-injector#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd provided()\u003c!-- raw HTML omitted --\u003e.call *args, **kwargs arguments \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/945\"\u003e#945\u003c/a\u003e by \u003ca href=\"https://github.com/pavalso\"\u003e\u003ccode\u003e@​pavalso\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/946\"\u003eets-labs/python-dependency-injector#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd context local resource by \u003ca href=\"https://github.com/elina-israyelyan\"\u003e\u003ccode\u003e@​elina-israyelyan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/931\"\u003eets-labs/python-dependency-injector#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI/CD to \u003ccode\u003eactions/checkout@v6\u003c/code\u003e, \u003ccode\u003eactions/setup-python@v6\u003c/code\u003e, \u003ccode\u003eactions/download-artifact@v8\u003c/code\u003e, \u003ccode\u003eactions/upload-artifact@v7\u003c/code\u003e and \u003ccode\u003epypa/cibuildwheel@v3.4.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdd dependabot config for GitHub Actions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pavalso\"\u003e\u003ccode\u003e@​pavalso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/946\"\u003eets-labs/python-dependency-injector#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elina-israyelyan\"\u003e\u003ccode\u003e@​elina-israyelyan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/931\"\u003eets-labs/python-dependency-injector#931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5f7aa1c337c77e782e1e927eb4b1e41a60912604\"\u003e\u003ccode\u003e5f7aa1c\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5863d99bd5e9b2d22c15f3815b23973317a453ee\"\u003e\u003ccode\u003e5863d99\u003c/code\u003e\u003c/a\u003e Add .github/dependabot.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/000c670c7e655cc7db423a76c6b877d185f706ce\"\u003e\u003ccode\u003e000c670\u003c/code\u003e\u003c/a\u003e Upgrade GHA actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/931084070a5304a26a925961375a5afcc3c3a38b\"\u003e\u003ccode\u003e9310840\u003c/code\u003e\u003c/a\u003e Fix iscoroutinefunction import for older Pythons\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/05a5e7d8701a1df8cb88ad55d187ba88cd6ffbe8\"\u003e\u003ccode\u003e05a5e7d\u003c/code\u003e\u003c/a\u003e Fix get_annotations import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/58700d9dbd3420a559330666edfb477418997ff9\"\u003e\u003ccode\u003e58700d9\u003c/code\u003e\u003c/a\u003e Use from import statements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/0e25331738716d5bfa5562d42617deb6ad65d23c\"\u003e\u003ccode\u003e0e25331\u003c/code\u003e\u003c/a\u003e Do not build nogil wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1696986aa7698120a7e2aab2355d93e178fc36f9\"\u003e\u003ccode\u003e1696986\u003c/code\u003e\u003c/a\u003e Python 3.14 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/525935137e81355657e44b454c0f7b19b69fdc7b\"\u003e\u003ccode\u003e5259351\u003c/code\u003e\u003c/a\u003e Add context local resource (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/931\"\u003e#931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/76d5932b7340719eac2b737bd444daacc7bb0682\"\u003e\u003ccode\u003e76d5932\u003c/code\u003e\u003c/a\u003e Add provided()\u0026lt;func\u0026gt;.call *args, **kwargs arguments (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/946\"\u003e#946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.49.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/6ixGODD/modx/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/6ixGODD%2Fmodx/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"},{"uuid":"4417455638","node_id":"PR_kwDORMFN3c7aE8Yd","number":147,"state":"open","title":"chore(deps): Bump the python-minor-patch group across 1 directory with 41 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-11T01:25:24.000Z","updated_at":"2026-05-11T01:25:35.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"python-minor-patch","update_count":41,"packages":[{"name":"fastapi","old_version":"0.135.1","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.42.0","new_version":"0.46.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"python-multipart","old_version":"0.0.22","new_version":"0.0.28","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"sqlalchemy","old_version":"2.0.48","new_version":"2.0.49","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.13.1","new_version":"2.14.1","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"redis","old_version":"7.3.0","new_version":"7.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"meilisearch","old_version":"0.40.0","new_version":"0.41.0","repository_url":"https://github.com/meilisearch/meilisearch-python"},{"name":"supabase","old_version":"2.28.2","new_version":"2.30.0","repository_url":"https://github.com/supabase/supabase-py"},{"name":"postgrest","old_version":"2.28.2","new_version":"2.30.0","repository_url":"https://github.com/supabase/supabase-py"},{"name":"storage3","old_version":"2.28.2","new_version":"2.30.0","repository_url":"https://github.com/supabase/supabase-py"},{"name":"anthropic","old_version":"0.85.0","new_version":"0.100.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"openai","old_version":"2.28.0","new_version":"2.36.0","repository_url":"https://github.com/openai/openai-python"},{"name":"claude-agent-sdk","old_version":"0.1.48","new_version":"0.1.80","repository_url":"https://github.com/anthropics/claude-agent-sdk-python"},{"name":"dependency-injector","old_version":"4.48.3","new_version":"4.49.0","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"orjson","old_version":"3.11.7","new_version":"3.11.9","repository_url":"https://github.com/ijl/orjson"},{"name":"markdown-it-py","old_version":"4.0.0","new_version":"4.2.0","repository_url":"https://github.com/executablebooks/markdown-it-py"},{"name":"ua-parser","old_version":"1.0.1","new_version":"1.0.2","repository_url":"https://github.com/ua-parser/uap-python"},{"name":"anyio","old_version":"4.12.1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"certifi","old_version":"2026.2.25","new_version":"2026.4.22","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.6","new_version":"3.4.7","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.1","new_version":"8.3.3","repository_url":"https://github.com/pallets/click"},{"name":"docstring-parser","old_version":"0.17.0","new_version":"0.18.0","repository_url":"https://github.com/rr-/docstring_parser"},{"name":"fsspec","old_version":"2026.2.0","new_version":"2026.4.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"greenlet","old_version":"3.3.2","new_version":"3.5.0","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"idna","old_version":"3.11","new_version":"3.14","repository_url":"https://github.com/kjd/idna"},{"name":"jiter","old_version":"0.13.0","new_version":"0.14.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"mako","old_version":"1.3.10","new_version":"1.3.12","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"mcp","old_version":"1.26.0","new_version":"1.27.1","repository_url":"https://github.com/modelcontextprotocol/python-sdk"},{"name":"numpy","old_version":"2.4.3","new_version":"2.4.4","repository_url":"https://github.com/numpy/numpy"},{"name":"packaging","old_version":"26.0","new_version":"26.2","repository_url":"https://github.com/pypa/packaging"},{"name":"propcache","old_version":"0.4.1","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.46.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.19.2","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyroaring","old_version":"1.0.3","new_version":"1.1.0","repository_url":"https://github.com/Ezibenroc/PyRoaringBitMap"},{"name":"realtime","old_version":"2.28.2","new_version":"2.30.0","repository_url":"https://github.com/supabase/supabase-py"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"sse-starlette","old_version":"3.3.2","new_version":"3.4.2","repository_url":"https://github.com/sysid/sse-starlette"},{"name":"supabase-auth","old_version":"2.28.2","new_version":"2.30.0","repository_url":"https://github.com/supabase/supabase-py"},{"name":"supabase-functions","old_version":"2.28.2","new_version":"2.30.0","repository_url":"https://github.com/supabase/supabase-py"},{"name":"urllib3","old_version":"2.6.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 41 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.135.1` | `0.136.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.42.0` | `0.46.0` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.22` | `0.0.28` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.48` | `2.0.49` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.4` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.13.1` | `2.14.1` |\n| [redis](https://github.com/redis/redis-py) | `7.3.0` | `7.4.0` |\n| [meilisearch](https://github.com/meilisearch/meilisearch-python) | `0.40.0` | `0.41.0` |\n| [supabase](https://github.com/supabase/supabase-py) | `2.28.2` | `2.30.0` |\n| [postgrest](https://github.com/supabase/supabase-py) | `2.28.2` | `2.30.0` |\n| [storage3](https://github.com/supabase/supabase-py) | `2.28.2` | `2.30.0` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.85.0` | `0.100.0` |\n| [openai](https://github.com/openai/openai-python) | `2.28.0` | `2.36.0` |\n| [claude-agent-sdk](https://github.com/anthropics/claude-agent-sdk-python) | `0.1.48` | `0.1.80` |\n| [dependency-injector](https://github.com/ets-labs/python-dependency-injector) | `4.48.3` | `4.49.0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.7` | `3.11.9` |\n| [markdown-it-py](https://github.com/executablebooks/markdown-it-py) | `4.0.0` | `4.2.0` |\n| [ua-parser](https://github.com/ua-parser/uap-python) | `1.0.1` | `1.0.2` |\n| [anyio](https://github.com/agronholm/anyio) | `4.12.1` | `4.13.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2026.2.25` | `2026.4.22` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.6` | `3.4.7` |\n| [click](https://github.com/pallets/click) | `8.3.1` | `8.3.3` |\n| [docstring-parser](https://github.com/rr-/docstring_parser) | `0.17.0` | `0.18.0` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.2.0` | `2026.4.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.3.2` | `3.5.0` |\n| [idna](https://github.com/kjd/idna) | `3.11` | `3.14` |\n| [jiter](https://github.com/pydantic/jiter) | `0.13.0` | `0.14.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.3.12` |\n| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `1.26.0` | `1.27.1` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.3` | `2.4.4` |\n| [packaging](https://github.com/pypa/packaging) | `26.0` | `26.2` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.4.1` | `0.5.2` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.5` | `2.46.4` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.2` | `2.20.0` |\n| [pyroaring](https://github.com/Ezibenroc/PyRoaringBitMap) | `1.0.3` | `1.1.0` |\n| [realtime](https://github.com/supabase/supabase-py) | `2.28.2` | `2.30.0` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [sse-starlette](https://github.com/sysid/sse-starlette) | `3.3.2` | `3.4.2` |\n| [supabase-auth](https://github.com/supabase/supabase-py) | `2.28.2` | `2.30.0` |\n| [supabase-functions](https://github.com/supabase/supabase-py) | `2.28.2` | `2.30.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.3` | `2.7.0` |\n\n\nUpdates `fastapi` from 0.135.1 to 0.136.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.136.1\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Update Pydantic v2 code to address deprecations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15101\"\u003e#15101\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Tweak translation script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15174\"\u003e#15174\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.1 to 9.7.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15408\"\u003e#15408\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump inline-snapshot from 0.31.1 to 0.32.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15409\"\u003e#15409\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-codspeed from 4.3.0 to 4.4.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15407\"\u003e#15407\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-cov from 7.0.0 to 7.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15406\"\u003e#15406\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15405\"\u003e#15405\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 1.19.1 to 1.20.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15410\"\u003e#15410\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-dotenv from 1.2.1 to 1.2.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15400\"\u003e#15400\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump starlette from 0.52.1 to 1.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15397\"\u003e#15397\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygithub from 2.8.1 to 2.9.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15396\"\u003e#15396\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pyjwt from 2.12.0 to 2.12.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15393\"\u003e#15393\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump zizmor from 1.23.1 to 1.24.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15394\"\u003e#15394\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.312.3 to 0.314.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15395\"\u003e#15395\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-multipart from 0.0.22 to 0.0.26. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15360\"\u003e#15360\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump authlib from 1.6.9 to 1.6.11. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15373\"\u003e#15373\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump aiohttp from 3.13.3 to 3.13.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15282\"\u003e#15282\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15263\"\u003e#15263\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.20.1 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15391\"\u003e#15391\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pillow from 12.1.1 to 12.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15333\"\u003e#15333\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest from 9.0.2 to 9.0.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15334\"\u003e#15334\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15374\"\u003e#15374\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15385\"\u003e#15385\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Zuplo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15369\"\u003e#15369\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Speakeasy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15368\"\u003e#15368\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Add zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15316\"\u003e#15316\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.136.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Support free-threaded Python 3.14t. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15149\"\u003e#15149\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15363\"\u003e#15363\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump cryptography from 46.0.5 to 46.0.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15314\"\u003e#15314\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15309\"\u003e#15309\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15293\"\u003e#15293\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e54e5a8980ffa6d7ff68ee7b25a1c46036375521\"\u003e\u003ccode\u003ee54e5a8\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9a8a5fd99902c3b80d4cc94b85e120e2b808825f\"\u003e\u003ccode\u003e9a8a5fd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7815a32f2ed177b8b786a48b3e0712c05b5c644f\"\u003e\u003ccode\u003e7815a32\u003c/code\u003e\u003c/a\u003e ⬆️ Update Pydantic v2 code to address deprecations (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15101\"\u003e#15101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ef1c927b0558d414e199a666833942a6fabb3a51\"\u003e\u003ccode\u003eef1c927\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/38039e12a86e67f2001b9b7d96c219691d6cb4af\"\u003e\u003ccode\u003e38039e1\u003c/code\u003e\u003c/a\u003e 🔨 Tweak translation script (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15174\"\u003e#15174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4fa826ce0a3b16884a04f51e5aac95d01790b599\"\u003e\u003ccode\u003e4fa826c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c39415673e621665fdb7bbdde69beba7eb1dfd12\"\u003e\u003ccode\u003ec394156\u003c/code\u003e\u003c/a\u003e ⬆ Bump mkdocs-material from 9.7.1 to 9.7.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15408\"\u003e#15408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ae230ad2f9d90a4e3f6222ff1a5d6e8da41ec0ad\"\u003e\u003ccode\u003eae230ad\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d9eb39d1a1bf2f6e6e5d3a55088f61c712cb864e\"\u003e\u003ccode\u003ed9eb39d\u003c/code\u003e\u003c/a\u003e ⬆ Bump inline-snapshot from 0.31.1 to 0.32.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15409\"\u003e#15409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4f8b5d14d324ae8e15cfae8d85adb4186d4c2175\"\u003e\u003ccode\u003e4f8b5d1\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.135.1...0.136.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.42.0 to 0.46.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.46.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2915\"\u003eKludex/uvicorn#2915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2916\"\u003eKludex/uvicorn#2916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in websockets-sansio by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2917\"\u003eKludex/uvicorn#2917\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.45.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve forwarded client ports in proxy headers middleware by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2903\"\u003eKludex/uvicorn#2903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003eos.PathLike\u003c/code\u003e for \u003ccode\u003elog_config\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2905\"\u003eKludex/uvicorn#2905\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2907\"\u003eKludex/uvicorn#2907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2906\"\u003eKludex/uvicorn#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert empty context for ASGI runs by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2911\"\u003eKludex/uvicorn#2911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2912\"\u003eKludex/uvicorn#2912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e) by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2913\"\u003eKludex/uvicorn#2913\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Krishnachaitanyakc\"\u003e\u003ccode\u003e@​Krishnachaitanyakc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2870\"\u003eKludex/uvicorn#2870\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.44.0...0.45.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.44.0...0.45.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.44.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2888\"\u003eKludex/uvicorn#2888\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.43.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.46.0 (April 23, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2916\"\u003e#2916\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2917\"\u003e#2917\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.45.0 (April 21, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2912\"\u003e#2912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003eos.PathLike\u003c/code\u003e for \u003ccode\u003elog_config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2905\"\u003e#2905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRevert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2913\"\u003e#2913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;Explicitly start ASGI run with empty context\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve forwarded client ports in proxy headers middleware (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRaise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2906\"\u003e#2906\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.44.0 (April 6, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2888\"\u003e#2888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.43.0 (April 3, 2026)\u003c/h2\u003e\n\u003cp\u003eYou can quit Uvicorn now. We heard you, \u003ca href=\"https://github.com/pamelafox\"\u003e\u003ccode\u003e@​pamelafox\u003c/code\u003e\u003c/a\u003e - all 47 of your Ctrl+C's (thanks for flagging it, and thanks to \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e for the fix 🙏). \u003ca href=\"https://x.com/pamelafox/status/2039097686155227623\"\u003eSee the tweet\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/b224045f5900b7f766743bcb16ba9fc3adea2606\"\u003e\u003ccode\u003eb224045\u003c/code\u003e\u003c/a\u003e Version 0.46.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2918\"\u003e#2918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7375b5bf66d962186d663e85615d4b4d956bf880\"\u003e\u003ccode\u003e7375b5b\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in websockets-sansio (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d438fb16fe2d23c7bbc2ca7094645cff1f116458\"\u003e\u003ccode\u003ed438fb1\u003c/code\u003e\u003c/a\u003e Support \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3e6b96446653d0156434bce529a14c80764c9eda\"\u003e\u003ccode\u003e3e6b964\u003c/code\u003e\u003c/a\u003e Support \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/2c423bd82be169459ea254a61476de34767e0326\"\u003e\u003ccode\u003e2c423bd\u003c/code\u003e\u003c/a\u003e Version 0.45.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2914\"\u003e#2914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7f027f8e25e47668a9c2ce8b5c21b35054c48d02\"\u003e\u003ccode\u003e7f027f8\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/73a80c3cc87de269ed016e584a25e585ae6f2b44\"\u003e\u003ccode\u003e73a80c3\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2912\"\u003e#2912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/45c0b568d38e9bf4f2f036bc2d79eb98b0e72f72\"\u003e\u003ccode\u003e45c0b56\u003c/code\u003e\u003c/a\u003e Revert empty context for ASGI runs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/850d92656de0cb5859ee5f6ba252e19ad3d38989\"\u003e\u003ccode\u003e850d926\u003c/code\u003e\u003c/a\u003e Raise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2906\"\u003e#2906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/fdcacb4b83bc686ea1ba9e50ffe5b8cfe49b3e00\"\u003e\u003ccode\u003efdcacb4\u003c/code\u003e\u003c/a\u003e Accept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.42.0...0.46.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.22 to 0.0.28\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.28\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up partial-boundary tail scan via \u003ccode\u003ebytes.find\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/281\"\u003eKludex/python-multipart#281\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCap multipart boundary length at 256 bytes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/282\"\u003eKludex/python-multipart#282\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.27...0.0.28\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.27...0.0.28\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.27\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePass parse offsets via constructors by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/268\"\u003eKludex/python-multipart#268\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd multipart header limits by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/267\"\u003eKludex/python-multipart#267\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.26\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before first multipart boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003eKludex/python-multipart#262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003eKludex/python-multipart#259\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply Apache-2.0 properly by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003eKludex/python-multipart#247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003eKludex/python-multipart#252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003eKludex/python-multipart#230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003eKludex/python-multipart#254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove custom FormParser classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003eKludex/python-multipart#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003eKludex/python-multipart#258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd MIME content type info to File by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003eKludex/python-multipart#143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003eKludex/python-multipart#244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003eKludex/python-multipart#196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e by \u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/blob/main/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.28 (2026-05-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up partial-boundary tail scan via \u003ccode\u003ebytes.find\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/281\"\u003e#281\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCap multipart boundary length at 256 bytes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/282\"\u003e#282\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.27 (2026-04-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd multipart header limits \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/267\"\u003e#267\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePass parse offsets via constructors \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/268\"\u003e#268\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.26 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before the first multipart boundary more efficiently \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003e#262\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing multipart boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003e#259\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.25 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd MIME content type info to \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003e#143\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003e#258\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRemove custom \u003ccode\u003eFormParser\u003c/code\u003e classes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003e#257\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003e#254\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003e#230\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003e#252\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eApply Apache-2.0 properly \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003e#247\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.24 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003e#244\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.23 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003e#196\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003e#229\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003e#227\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/7d8d28b210ac6cb055399562b0dc0e5cf9aef14a\"\u003e\u003ccode\u003e7d8d28b\u003c/code\u003e\u003c/a\u003e Version 0.0.28 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/b0dd125457d0f98de23bf2f894aedb1a54639d4e\"\u003e\u003ccode\u003eb0dd125\u003c/code\u003e\u003c/a\u003e Cap multipart boundary length at 256 bytes (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d1b57392cf7d0c19235ba454eb5686fd27dc2384\"\u003e\u003ccode\u003ed1b5739\u003c/code\u003e\u003c/a\u003e Speed up partial-boundary tail scan via \u003ccode\u003ebytes.find\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/09cb8c3da7638d45ecdf7c154832303214bba829\"\u003e\u003ccode\u003e09cb8c3\u003c/code\u003e\u003c/a\u003e Make the long_boundary benchmark dominated by the patched code path (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/a6467c93c14aa4b09ef65450ead8011c45e5c7a0\"\u003e\u003ccode\u003ea6467c9\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Switch CodSpeed benchmarks to walltime mode\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/9a9690035a956fbdcca06f98461244cf790375a7\"\u003e\u003ccode\u003e9a96900\u003c/code\u003e\u003c/a\u003e Switch CodSpeed benchmarks to walltime mode (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/1fc7a626f566ae11bc63165260262b9a30af9008\"\u003e\u003ccode\u003e1fc7a62\u003c/code\u003e\u003c/a\u003e Make benchmark coverage trigger the partial-boundary fallback (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/277\"\u003e#277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/03df045810a216dceabbefc9dca7a33a264307bc\"\u003e\u003ccode\u003e03df045\u003c/code\u003e\u003c/a\u003e Add CodSpeed benchmark suite for parser hot paths (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/276\"\u003e#276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/79a7c614953d0c91a1d6dc69759b4fbcd0fb44f3\"\u003e\u003ccode\u003e79a7c61\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 3 updates (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/273\"\u003e#273\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/bd29332f23429d06cf16226819f89b28a8288915\"\u003e\u003ccode\u003ebd29332\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 5 updates (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/274\"\u003e#274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.28\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.48 to 2.0.49\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.49\u003c/h1\u003e\n\u003cp\u003eReleased: April 3, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where \u003ccode\u003e_orm.Session.get()\u003c/code\u003e would bypass the identity map\nand emit unnecessary SQL when \u003ccode\u003ewith_for_update=False\u003c/code\u003e was passed,\nrather than treating it equivalently to the default of \u003ccode\u003eNone\u003c/code\u003e.\nPull request courtesy of Joshua Swanson.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13176\"\u003e#13176\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where chained \u003ccode\u003e_orm.joinedload()\u003c/code\u003e options would not be\napplied correctly when the final relationship in the chain is declared on a\nbase mapper and accessed through a subclass mapper in a\n\u003ccode\u003e_orm.with_polymorphic()\u003c/code\u003e query. The path registry now correctly\ncomputes the natural path when a property declared on a base class is\naccessed through a path containing a subclass mapper, ensuring the loader\noption can be located during query compilation.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13193\"\u003e#13193\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using \u003ccode\u003e_orm.Load.options()\u003c/code\u003e to apply a chained loader\noption such as \u003ccode\u003e_orm.joinedload()\u003c/code\u003e or \u003ccode\u003e_orm.selectinload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot generate the necessary clauses for the polymorphic subclasses. The\npolymorphic loading strategy is now correctly propagated when using a call\nsuch as \u003ccode\u003ejoinedload(A.b).options(joinedload(B.c.of_type(poly)))\u003c/code\u003e to match\nthe behavior of direct chaining e.g.\n\u003ccode\u003ejoinedload(A.b).joinedload(B.c.of_type(poly))\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13202\"\u003e#13202\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using chained loader options such as\n\u003ccode\u003e_orm.selectinload()\u003c/code\u003e after \u003ccode\u003e_orm.joinedload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot properly apply the chained loader option. The loader option is now\ncorrectly applied when using a call such as\n\u003ccode\u003ejoinedload(A.b.of_type(poly)).selectinload(poly.SubClass.c)\u003c/code\u003e to eagerly\nload related objects.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13209\"\u003e#13209\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etyping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[typing] [bug]\u003c/strong\u003e Fixed a typing issue where the typed members of :data:\u003ccode\u003e.func\u003c/code\u003e would return\nthe appropriate class of the same name, however this creates an issue for\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.13.4/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/cf67d4b3193c3fe43ede18612ed62785eee11382\"\u003e\u003ccode\u003ecf67d4b\u003c/code\u003e\u003c/a\u003e Fix linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662\"\u003e\u003ccode\u003ef0d8a21\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a\"\u003e\u003ccode\u003e5e3fe1d\u003c/code\u003e\u003c/a\u003e Check for pydantic tag pattern in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686\"\u003e\u003ccode\u003e7f9edcc\u003c/code\u003e\u003c/a\u003e Document tagging conventions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c\"\u003e\u003ccode\u003eb46a0c9\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400\"\u003e\u003ccode\u003e50629c8\u003c/code\u003e\u003c/a\u003e Update to PyPy 7.3.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725\"\u003e\u003ccode\u003e8522ebb\u003c/code\u003e\u003c/a\u003e Preserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8\"\u003e\u003ccode\u003ea37f3af\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003eMISSING\u003c/code\u003e sentinel test to work with unreleased \u003ccode\u003etyping_extensions\u003c/code\u003e ver...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2\"\u003e\u003ccode\u003e909259a\u003c/code\u003e\u003c/a\u003e Remove Logfire example in documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df\"\u003e\u003ccode\u003e2c4174c\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.155 to 0.2.185\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.13.1 to 2.14.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.14.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/850\"\u003epydantic/pydantic-settings#850\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 5 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/854\"\u003epydantic/pydantic-settings#854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/853\"\u003epydantic/pydantic-settings#853\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/856\"\u003epydantic/pydantic-settings#856\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix field named \u003ccode\u003ecls\u003c/code\u003e conflicting with classmethod parameter by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/858\"\u003epydantic/pydantic-settings#858\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.14.1 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/859\"\u003epydantic/pydantic-settings#859\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.14.0...v2.14.1\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.14.0...v2.14.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix parsing env vars into Optional Strict types by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/792\"\u003epydantic/pydantic-settings#792\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError with mutually recursive models in CLI by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/794\"\u003epydantic/pydantic-settings#794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix env_file from model_config ignored in CliApp.run() (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/795\"\u003e#795\u003c/a\u003e) by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/796\"\u003epydantic/pydantic-settings#796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/798\"\u003epydantic/pydantic-settings#798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Dependabot configuration by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/801\"\u003epydantic/pydantic-settings#801\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump samuelcolvin/check-python-version from 4.1 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/802\"\u003epydantic/pydantic-settings#802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 4 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/803\"\u003epydantic/pydantic-settings#803\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/804\"\u003epydantic/pydantic-settings#804\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 5 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/805\"\u003epydantic/pydantic-settings#805\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/806\"\u003epydantic/pydantic-settings#806\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore chardet and group GitHub Actions in Dependabot by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/808\"\u003epydantic/pydantic-settings#808\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 4 to 8 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/809\"\u003epydantic/pydantic-settings#809\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/810\"\u003epydantic/pydantic-settings#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport reading .env files from FIFOs (e.g. 1Password Environments) by \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/776\"\u003epydantic/pydantic-settings#776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AliasChoices ignored when changing provider priority by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/813\"\u003epydantic/pydantic-settings#813\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: resolve KeyError in run_subcommand for underscore field names by \u003ca href=\"https://github.com/bradykieffer\"\u003e\u003ccode\u003e@​bradykieffer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/799\"\u003epydantic/pydantic-settings#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/814\"\u003epydantic/pydantic-settings#814\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eLiteral[numeric Enum]\u003c/code\u003e coercion for CLI and env vars by \u003ca href=\"https://github.com/m9810223\"\u003e\u003ccode\u003e@​m9810223\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/811\"\u003epydantic/pydantic-settings#811\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix nested discriminated unions not discovered by env/CLI providers by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/816\"\u003epydantic/pydantic-settings#816\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/820\"\u003epydantic/pydantic-settings#820\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI ensure env nested max split internally. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/821\"\u003epydantic/pydantic-settings#821\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/824\"\u003epydantic/pydantic-settings#824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate \u003ccode\u003eboto3-stubs\u003c/code\u003e to \u003ccode\u003etypes-boto3\u003c/code\u003e by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/831\"\u003epydantic/pydantic-settings#831\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI not recognizing field name with validate_by_name and AliasChoices by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/826\"\u003epydantic/pydantic-settings#826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow customisation of the dotevn setting source to filter variables by \u003ca href=\"https://github.com/CaselIT\"\u003e\u003ccode\u003e@​CaselIT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/832\"\u003epydantic/pydantic-settings#832\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/833\"\u003epydantic/pydantic-settings#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce yamlfmt by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/836\"\u003epydantic/pydantic-settings#836\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump boto3 from 1.42.82 to 1.42.83 in the python-packages group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/837\"\u003epydantic/pydantic-settings#837\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce zizmor by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/838\"\u003epydantic/pydantic-settings#838\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CliPositionalArg[list[CustomType]] crash for custom types by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/839\"\u003epydantic/pydantic-settings#839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note about Mypy plugin for \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/842\"\u003epydantic/pydantic-settings#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ecli_ignore_unknown_args=True\u003c/code\u003e not working on subcommands by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/844\"\u003epydantic/pydantic-settings#844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/847\"\u003epydantic/pydantic-settings#847\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI descriptions lost under \u003ccode\u003epython -OO\u003c/code\u003e by falling back to \u003ccode\u003ejson_schema_extra\u003c/code\u003e by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/843\"\u003epydantic/pydantic-settings#843\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.14.0 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/848\"\u003epydantic/pydantic-settings#848\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/e95c30bec8cfaee88ee275138c064aea97a25bdf\"\u003e\u003ccode\u003ee95c30b\u003c/code\u003e\u003c/a\u003e Prepare release 2.14.1 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/859\"\u003e#859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/0c8734581b6cf70a995afad603ac456631d00621\"\u003e\u003ccode\u003e0c87345\u003c/code\u003e\u003c/a\u003e Fix field named \u003ccode\u003ecls\u003c/code\u003e conflicting with classmethod parameter (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/858\"\u003e#858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/7bd0072795a800065b42210b6dca90fc9b83daf7\"\u003e\u003ccode\u003e7bd0072\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 2 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/856\"\u003e#856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/b03e573d017ed48e1c2774a5e0b715db9766c76b\"\u003e\u003ccode\u003eb03e573\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/853\"\u003e#853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/eaa3b434938411ec8a3717ea646614561e713f51\"\u003e\u003ccode\u003eeaa3b43\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 5 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/854\"\u003e#854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/9f95615c24c6813c1d7d203576581a79cb6d9e8e\"\u003e\u003ccode\u003e9f95615\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 4 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/850\"\u003e#850\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/8916beeecc6d0510e3d0532a0ed839937400ddc3\"\u003e\u003ccode\u003e8916bee\u003c/code\u003e\u003c/a\u003e Prepare release 2.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/848\"\u003e#848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/39e551c0910c85505b608ff85a103b2c9f7396c5\"\u003e\u003ccode\u003e39e551c\u003c/code\u003e\u003c/a\u003e Fix CLI descriptions lost under \u003ccode\u003epython -OO\u003c/code\u003e by falling back to `json_schema_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/9ed7f48ea2c90f436a03b01f721fe6656c869b14\"\u003e\u003ccode\u003e9ed7f48\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 4 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/847\"\u003e#847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/617c690fb16c95eb0fb98fc88c0d6d82b9af4fa9\"\u003e\u003ccode\u003e617c690\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003ecli_ignore_unknown_args=True\u003c/code\u003e not working on subcommands (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/844\"\u003e#844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 7.3.0 to 7.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError in cluster metrics recording when connection is None or ClusterNode object instance is used to extract the connection info (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3999\"\u003e#3999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords might leak in plain text logs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3998\"\u003e#3998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cp\u003e-Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpose basic Otel classes and functions to be importable through redis.observability to match the examples in the readthedocs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3996\"\u003e#3996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/b72f24ad6a2226d46aed770e18094a86117d2217\"\u003e\u003ccode\u003eb72f24a\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/0a4e0afe36504c3fb6df1e38683ea946febac9d3\"\u003e\u003ccode\u003e0a4e0af\u003c/code\u003e\u003c/a\u003e Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/15492c9156d3ab8dce05360977480510cf24fbf9\"\u003e\u003ccode\u003e15492c9\u003c/code\u003e\u003c/a\u003e Refactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/cd964ac96649df872a051835e9a52e05a5090607\"\u003e\u003ccode\u003ecd964ac\u003c/code\u003e\u003c/a\u003e Expose basic Otel classes and funtions to be importable through redis.observa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/46ab74d02ed9b15176f67edb817de83524f8145a\"\u003e\u003ccode\u003e46ab74d\u003c/code\u003e\u003c/a\u003e Fixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/26482dbaae38abdb1966d9b1c803331e2dab2053\"\u003e\u003ccode\u003e26482db\u003c/code\u003e\u003c/a\u003e Fix AttributeError in cluster metrics recording when connection is None or Cl...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/redis-py/compare/v7.3.0...v7.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `meilisearch` from 0.40.0 to 0.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/meilisearch/meilisearch-python/releases\"\u003emeilisearch's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.41.0 🐍\u003c/h2\u003e\n\u003ch2\u003e🚀 Enhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for export api (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1171\"\u003e#1171\u003c/a\u003e) \u003ca href=\"https://github.com/jawad-khan\"\u003e\u003ccode\u003e@​jawad-khan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd method to list index fields (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1199\"\u003e#1199\u003c/a\u003e) \u003ca href=\"https://github.com/awais786\"\u003e\u003ccode\u003e@​awais786\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⚙️ Maintenance/misc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd AI usage disclosure guidelines to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1196\"\u003e#1196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(ci): use setup-python version for pipenv virtualenv (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1195\"\u003e#1195\u003c/a\u003e) \u003ca href=\"https://github.com/VedantMadane\"\u003e\u003ccode\u003e@​VedantMadane\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed pipenv compatibility issue (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1194\"\u003e#1194\u003c/a\u003e) \u003ca href=\"https://github.com/jawad-khan\"\u003e\u003ccode\u003e@​jawad-khan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update tests for v1.36.0 (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1210\"\u003e#1210\u003c/a\u003e) \u003ca href=\"https://github.com/Strift\"\u003e\u003ccode\u003e@​Strift\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add async usage section linking to meilisearch-python-sdk (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1212\"\u003e#1212\u003c/a\u003e) \u003ca href=\"https://github.com/vibeyclaw\"\u003e\u003ccode\u003e@​vibeyclaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace localhost:7700 with MEILISEARCH_URL (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1213\"\u003e#1213\u003c/a\u003e) \u003ca href=\"https://github.com/Strift\"\u003e\u003ccode\u003e@​Strift\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded missing code samples (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1200\"\u003e#1200\u003c/a\u003e) \u003ca href=\"https://github.com/aznszn\"\u003e\u003ccode\u003e@​aznszn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused code samples (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1216\"\u003e#1216\u003c/a\u003e) \u003ca href=\"https://github.com/curquiza\"\u003e\u003ccode\u003e@​curquiza\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused code samples (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1217\"\u003e#1217\u003c/a\u003e) \u003ca href=\"https://github.com/curquiza\"\u003e\u003ccode\u003e@​curquiza\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump wrapt from 2.0.1 to 2.1.1 (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1215\"\u003e#1215\u003c/a\u003e) @\u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(docs): add sphinx dependencies to Pipfile dev-packages (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1214\"\u003e#1214\u003c/a\u003e) \u003ca href=\"https://github.com/vibeyclaw\"\u003e\u003ccode\u003e@​vibeyclaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Added tests and docstrings for showPerformanceDetails (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1206\"\u003e#1206\u003c/a\u003e) \u003ca href=\"https://github.com/jawad-khan\"\u003e\u003ccode\u003e@​jawad-khan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: refactor pipenv installation steps across all workflow files (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1219\"\u003e#1219\u003c/a\u003e) \u003ca href=\"https://github.com/DhavalGojiya\"\u003e\u003ccode\u003e@​DhavalGojiya\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix outdated Pipfile.lock and pipenv install inconsistencies across CI jobs (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1223\"\u003e#1223\u003c/a\u003e) \u003ca href=\"https://github.com/DhavalGojiya\"\u003e\u003ccode\u003e@​DhavalGojiya\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused code samples (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1229\"\u003e#1229\u003c/a\u003e) \u003ca href=\"https://github.com/curquiza\"\u003e\u003ccode\u003e@​curquiza\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pytest from 8.4.1 to 8.4.2 (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1151\"\u003e#1151\u003c/a\u003e) @\u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks again to \u003ca href=\"https://github.com/DhavalGojiya\"\u003e\u003ccode\u003e@​DhavalGojiya\u003c/...\n\n_Description has been truncated_","html_url":"https://github.com/pilotspace/pilot-space/pull/147","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pilotspace%2Fpilot-space/issues/147","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/147/packages"},{"uuid":"4364883807","node_id":"PR_kwDOPfdS887XcShY","number":140,"state":"closed","title":"chore(deps): bump the all-deps group with 9 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-11T19:37:32.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-01T14:31:59.000Z","updated_at":"2026-05-11T19:37:34.000Z","time_to_close":882333,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all-deps","update_count":9,"packages":[{"name":"pydantic-settings","old_version":"2.13.1","new_version":"2.14.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"typer","old_version":"0.24.1","new_version":"0.25.1","repository_url":"https://github.com/fastapi/typer"},{"name":"aiogram","old_version":"3.26.0","new_version":"3.27.0","repository_url":"https://github.com/aiogram/aiogram"},{"name":"aio-pika","old_version":"9.6.1","new_version":"9.6.2","repository_url":"https://github.com/mosquito/aio-pika"},{"name":"sqlalchemy","old_version":"2.0.48","new_version":"2.0.49","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"dependency-injector","old_version":"4.48.3","new_version":"4.49.0","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"hypothesis","old_version":"6.151.9","new_version":"6.152.4","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"ruff","old_version":"0.15.6","new_version":"0.15.12","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-deps group with 9 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.13.1` | `2.14.0` |\n| [typer](https://github.com/fastapi/typer) | `0.24.1` | `0.25.1` |\n| [aiogram](https://github.com/aiogram/aiogram) | `3.26.0` | `3.27.0` |\n| [aio-pika](https://github.com/mosquito/aio-pika) | `9.6.1` | `9.6.2` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.48` | `2.0.49` |\n| [dependency-injector](https://github.com/ets-labs/python-dependency-injector) | `4.48.3` | `4.49.0` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.151.9` | `6.152.4` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.6` | `0.15.12` |\n\nUpdates `pydantic-settings` from 2.13.1 to 2.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix parsing env vars into Optional Strict types by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/792\"\u003epydantic/pydantic-settings#792\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError with mutually recursive models in CLI by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/794\"\u003epydantic/pydantic-settings#794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix env_file from model_config ignored in CliApp.run() (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/795\"\u003e#795\u003c/a\u003e) by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/796\"\u003epydantic/pydantic-settings#796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/798\"\u003epydantic/pydantic-settings#798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Dependabot configuration by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/801\"\u003epydantic/pydantic-settings#801\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump samuelcolvin/check-python-version from 4.1 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/802\"\u003epydantic/pydantic-settings#802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 4 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/803\"\u003epydantic/pydantic-settings#803\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/804\"\u003epydantic/pydantic-settings#804\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 5 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/805\"\u003epydantic/pydantic-settings#805\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/806\"\u003epydantic/pydantic-settings#806\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore chardet and group GitHub Actions in Dependabot by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/808\"\u003epydantic/pydantic-settings#808\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 4 to 8 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/809\"\u003epydantic/pydantic-settings#809\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/810\"\u003epydantic/pydantic-settings#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport reading .env files from FIFOs (e.g. 1Password Environments) by \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/776\"\u003epydantic/pydantic-settings#776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AliasChoices ignored when changing provider priority by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/813\"\u003epydantic/pydantic-settings#813\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: resolve KeyError in run_subcommand for underscore field names by \u003ca href=\"https://github.com/bradykieffer\"\u003e\u003ccode\u003e@​bradykieffer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/799\"\u003epydantic/pydantic-settings#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/814\"\u003epydantic/pydantic-settings#814\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eLiteral[numeric Enum]\u003c/code\u003e coercion for CLI and env vars by \u003ca href=\"https://github.com/m9810223\"\u003e\u003ccode\u003e@​m9810223\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/811\"\u003epydantic/pydantic-settings#811\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix nested discriminated unions not discovered by env/CLI providers by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/816\"\u003epydantic/pydantic-settings#816\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/820\"\u003epydantic/pydantic-settings#820\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI ensure env nested max split internally. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/821\"\u003epydantic/pydantic-settings#821\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/824\"\u003epydantic/pydantic-settings#824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate \u003ccode\u003eboto3-stubs\u003c/code\u003e to \u003ccode\u003etypes-boto3\u003c/code\u003e by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/831\"\u003epydantic/pydantic-settings#831\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI not recognizing field name with validate_by_name and AliasChoices by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/826\"\u003epydantic/pydantic-settings#826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow customisation of the dotevn setting source to filter variables by \u003ca href=\"https://github.com/CaselIT\"\u003e\u003ccode\u003e@​CaselIT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/832\"\u003epydantic/pydantic-settings#832\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/833\"\u003epydantic/pydantic-settings#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce yamlfmt by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/836\"\u003epydantic/pydantic-settings#836\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump boto3 from 1.42.82 to 1.42.83 in the python-packages group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/837\"\u003epydantic/pydantic-settings#837\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce zizmor by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/838\"\u003epydantic/pydantic-settings#838\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CliPositionalArg[list[CustomType]] crash for custom types by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/839\"\u003epydantic/pydantic-settings#839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note about Mypy plugin for \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/842\"\u003epydantic/pydantic-settings#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ecli_ignore_unknown_args=True\u003c/code\u003e not working on subcommands by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/844\"\u003epydantic/pydantic-settings#844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/847\"\u003epydantic/pydantic-settings#847\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI descriptions lost under \u003ccode\u003epython -OO\u003c/code\u003e by falling back to \u003ccode\u003ejson_schema_extra\u003c/code\u003e by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/843\"\u003epydantic/pydantic-settings#843\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.14.0 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/848\"\u003epydantic/pydantic-settings#848\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/802\"\u003epydantic/pydantic-settings#802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/776\"\u003epydantic/pydantic-settings#776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bradykieffer\"\u003e\u003ccode\u003e@​bradykieffer\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/799\"\u003epydantic/pydantic-settings#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CaselIT\"\u003e\u003ccode\u003e@​CaselIT\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/832\"\u003epydantic/pydantic-settings#832\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/8916beeecc6d0510e3d0532a0ed839937400ddc3\"\u003e\u003ccode\u003e8916bee\u003c/code\u003e\u003c/a\u003e Prepare release 2.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/848\"\u003e#848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/39e551c0910c85505b608ff85a103b2c9f7396c5\"\u003e\u003ccode\u003e39e551c\u003c/code\u003e\u003c/a\u003e Fix CLI descriptions lost under \u003ccode\u003epython -OO\u003c/code\u003e by falling back to `json_schema_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/9ed7f48ea2c90f436a03b01f721fe6656c869b14\"\u003e\u003ccode\u003e9ed7f48\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 4 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/847\"\u003e#847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/617c690fb16c95eb0fb98fc88c0d6d82b9af4fa9\"\u003e\u003ccode\u003e617c690\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003ecli_ignore_unknown_args=True\u003c/code\u003e not working on subcommands (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/844\"\u003e#844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/577c05f7e8ac25904da2381db51ed4ddd4b3e4fe\"\u003e\u003ccode\u003e577c05f\u003c/code\u003e\u003c/a\u003e Add note about Mypy plugin for \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/842\"\u003e#842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/2355bc54e9d442ca7916f02de28d0c936e75441c\"\u003e\u003ccode\u003e2355bc5\u003c/code\u003e\u003c/a\u003e Fix CliPositionalArg[list[CustomType]] crash for custom types (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/839\"\u003e#839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/16bd6fd230d6280d52db6ce2a0ffef8f908cc89d\"\u003e\u003ccode\u003e16bd6fd\u003c/code\u003e\u003c/a\u003e Introduce zizmor (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/838\"\u003e#838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/df8b239fe09ba712767bdf378bc90627df375f04\"\u003e\u003ccode\u003edf8b239\u003c/code\u003e\u003c/a\u003e Bump boto3 from 1.42.82 to 1.42.83 in the python-packages group (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/837\"\u003e#837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/c5401a27999cd6c0e93925deb0660cd51013c8b1\"\u003e\u003ccode\u003ec5401a2\u003c/code\u003e\u003c/a\u003e Introduce yamlfmt (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/836\"\u003e#836\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/953e28e6cfe9a9e536375d771a4ffd48535a4ab2\"\u003e\u003ccode\u003e953e28e\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 3 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/833\"\u003e#833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typer` from 0.24.1 to 0.25.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/typer/releases\"\u003etyper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.25.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add Typer Library Skill for Agents. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1620\"\u003e#1620\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.11 to 0.15.12. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1722\"\u003e#1722\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.10 to 0.3.11. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1723\"\u003e#1723\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.25.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🚸 Don't truncate code lines in traceback when formatted with Rich. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1695\"\u003e#1695\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.24.2\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Ensure that \u003ccode\u003etyper.launch\u003c/code\u003e forwards correctly when launching a file. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1708\"\u003e#1708\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🎨 Ensure \u003ccode\u003ety\u003c/code\u003e runs without errors. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1628\"\u003e#1628\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add dates to release notes. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1612\"\u003e#1612\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Fix code blocks in reference docs overflowing table width. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1630\"\u003e#1630\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix broken link to FastAPI and Friends newsletter. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1540\"\u003e#1540\u003c/a\u003e by \u003ca href=\"https://github.com/Karlemami\"\u003e\u003ccode\u003e@​Karlemami\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Handle external links \u003ccode\u003etarget=_blank\u003c/code\u003e and CSS automatically in JS and CSS. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1622\"\u003e#1622\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Remove link to Typer developer survey. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1609\"\u003e#1609\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✏️ Clean up documentation in \u003ccode\u003einstall.md\u003c/code\u003e file. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1606\"\u003e#1606\u003c/a\u003e by \u003ca href=\"https://github.com/Johandielangman\"\u003e\u003ccode\u003e@​Johandielangman\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump mypy from 1.20.1 to 1.20.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1715\"\u003e#1715\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.9 to 0.3.10. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1716\"\u003e#1716\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pydantic-settings from 2.13.1 to 2.14.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1713\"\u003e#1713\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ty from 0.0.31 to 0.0.32. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1711\"\u003e#1711\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pydantic from 2.13.2 to 2.13.3. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1712\"\u003e#1712\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1667\"\u003e#1667\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.20 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1710\"\u003e#1710\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1700\"\u003e#1700\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pydantic from 2.13.1 to 2.13.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1703\"\u003e#1703\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1701\"\u003e#1701\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.10 to 0.15.11. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1704\"\u003e#1704\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1702\"\u003e#1702\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump astral-sh/setup-uv from 7.6.0 to 8.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1699\"\u003e#1699\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ty from 0.0.30 to 0.0.31. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1696\"\u003e#1696\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pydantic from 2.13.0 to 2.13.1. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1697\"\u003e#1697\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/typer/blob/master/docs/release-notes.md\"\u003etyper's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.25.1 (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add Typer Library Skill for Agents. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1620\"\u003e#1620\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.11 to 0.15.12. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1722\"\u003e#1722\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.10 to 0.3.11. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1723\"\u003e#1723\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.25.0 (2026-04-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🚸 Don't truncate code lines in traceback when formatted with Rich. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1695\"\u003e#1695\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.24.2 (2026-04-22)\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Ensure that \u003ccode\u003etyper.launch\u003c/code\u003e forwards correctly when launching a file. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1708\"\u003e#1708\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🎨 Ensure \u003ccode\u003ety\u003c/code\u003e runs without errors. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1628\"\u003e#1628\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add dates to release notes. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1612\"\u003e#1612\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Fix code blocks in reference docs overflowing table width. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1630\"\u003e#1630\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix broken link to FastAPI and Friends newsletter. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1540\"\u003e#1540\u003c/a\u003e by \u003ca href=\"https://github.com/Karlemami\"\u003e\u003ccode\u003e@​Karlemami\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Handle external links \u003ccode\u003etarget=_blank\u003c/code\u003e and CSS automatically in JS and CSS. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1622\"\u003e#1622\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Remove link to Typer developer survey. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1609\"\u003e#1609\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✏️ Clean up documentation in \u003ccode\u003einstall.md\u003c/code\u003e file. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1606\"\u003e#1606\u003c/a\u003e by \u003ca href=\"https://github.com/Johandielangman\"\u003e\u003ccode\u003e@​Johandielangman\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump mypy from 1.20.1 to 1.20.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1715\"\u003e#1715\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.9 to 0.3.10. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1716\"\u003e#1716\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pydantic-settings from 2.13.1 to 2.14.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1713\"\u003e#1713\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ty from 0.0.31 to 0.0.32. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1711\"\u003e#1711\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pydantic from 2.13.2 to 2.13.3. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1712\"\u003e#1712\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1667\"\u003e#1667\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.20 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1710\"\u003e#1710\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1700\"\u003e#1700\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pydantic from 2.13.1 to 2.13.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1703\"\u003e#1703\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1701\"\u003e#1701\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.10 to 0.15.11. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1704\"\u003e#1704\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1702\"\u003e#1702\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/cfcc2ef9f948bcce67897a6c7e689d39da690bf9\"\u003e\u003ccode\u003ecfcc2ef\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.25.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/13846cc59bd574567a9a1f56eae3cd42b9aa2a4f\"\u003e\u003ccode\u003e13846cc\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/a43746997ad6f2b4a8829c69c919f4d4c2cc0698\"\u003e\u003ccode\u003ea437469\u003c/code\u003e\u003c/a\u003e 🔧 Add Typer Library Skill for Agents (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1620\"\u003e#1620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/ba6cc2c9e7cba35f891c91118e228e1d2da35edb\"\u003e\u003ccode\u003eba6cc2c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/0f3ead07c2bb384fdd590e895ca6705582c58d89\"\u003e\u003ccode\u003e0f3ead0\u003c/code\u003e\u003c/a\u003e ⬆ Bump ruff from 0.15.11 to 0.15.12 (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1722\"\u003e#1722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/db4ade64936599b3460f2fc0a7c550c3fedc33b0\"\u003e\u003ccode\u003edb4ade6\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/5a5206ceed2afdf234f88a6e2ef74ad9ebdf0d92\"\u003e\u003ccode\u003e5a5206c\u003c/code\u003e\u003c/a\u003e ⬆ Bump prek from 0.3.10 to 0.3.11 (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1723\"\u003e#1723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/959845e173b4bec0d606d99247815c2710613ca8\"\u003e\u003ccode\u003e959845e\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.25.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/5e1fcfb5935e7ac3ff3c7526ef297eae31bd4822\"\u003e\u003ccode\u003e5e1fcfb\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/dfb21ad034804584702d553ebfba40d8f4d791b9\"\u003e\u003ccode\u003edfb21ad\u003c/code\u003e\u003c/a\u003e 🚸 Don't truncate code lines in traceback when formatted with Rich (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1695\"\u003e#1695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/typer/compare/0.24.1...0.25.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiogram` from 3.26.0 to 3.27.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aiogram/aiogram/releases\"\u003eaiogram's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBot API 9.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix link formatting by \u003ca href=\"https://github.com/Xeforo\"\u003e\u003ccode\u003e@​Xeforo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aiogram/aiogram/pull/1624\"\u003eaiogram/aiogram#1624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect release version number in CHANGES.rst by \u003ca href=\"https://github.com/NasrollahYusefi\"\u003e\u003ccode\u003e@​NasrollahYusefi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aiogram/aiogram/pull/1784\"\u003eaiogram/aiogram#1784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded full support for the Bot API 9.6 by \u003ca href=\"https://github.com/JrooTJunior\"\u003e\u003ccode\u003e@​JrooTJunior\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aiogram/aiogram/pull/1792\"\u003eaiogram/aiogram#1792\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature/eq method for default by \u003ca href=\"https://github.com/DatPill\"\u003e\u003ccode\u003e@​DatPill\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aiogram/aiogram/pull/1789\"\u003eaiogram/aiogram#1789\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix HtmlDecoration attribute name for custom emoji method (\u003ca href=\"https://redirect.github.com/aiogram/aiogram/issues/1782\"\u003e#1782\u003c/a\u003e) by \u003ca href=\"https://github.com/slav0nic\"\u003e\u003ccode\u003e@​slav0nic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aiogram/aiogram/pull/1783\"\u003eaiogram/aiogram#1783\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: CommandStart(deep_link=False) now rejects deep-link arguments by \u003ca href=\"https://github.com/temrjan\"\u003e\u003ccode\u003e@​temrjan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aiogram/aiogram/pull/1790\"\u003eaiogram/aiogram#1790\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove redundant list() around sorted() and fix router type name in validation error message by \u003ca href=\"https://github.com/m-xim\"\u003e\u003ccode\u003e@​m-xim\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aiogram/aiogram/pull/1788\"\u003eaiogram/aiogram#1788\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NasrollahYusefi\"\u003e\u003ccode\u003e@​NasrollahYusefi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/aiogram/aiogram/pull/1784\"\u003eaiogram/aiogram#1784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DatPill\"\u003e\u003ccode\u003e@​DatPill\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/aiogram/aiogram/pull/1789\"\u003eaiogram/aiogram#1789\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slav0nic\"\u003e\u003ccode\u003e@​slav0nic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/aiogram/aiogram/pull/1783\"\u003eaiogram/aiogram#1783\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/temrjan\"\u003e\u003ccode\u003e@​temrjan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/aiogram/aiogram/pull/1790\"\u003eaiogram/aiogram#1790\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/aiogram/aiogram/compare/v3.26.0...v3.27.0\"\u003ehttps://github.com/aiogram/aiogram/compare/v3.26.0...v3.27.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aiogram/aiogram/blob/dev-3.x/CHANGES.rst\"\u003eaiogram's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.27.0 (2026-04-04)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e__eq__\u003c/code\u003e and \u003ccode\u003e__hash__\u003c/code\u003e methods to the \u003ccode\u003eDefault\u003c/code\u003e class.\n\u003ccode\u003e[#1707](https://github.com/aiogram/aiogram/issues/1707) \u0026lt;https://github.com/aiogram/aiogram/issues/1707\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eCommandStart(deep_link=False)\u003c/code\u003e now correctly rejects messages that contain deep-link arguments. Previously \u003ccode\u003edeep_link=False\u003c/code\u003e (the default) did not distinguish between \u003ccode\u003e/start\u003c/code\u003e and \u003ccode\u003e/start \u0026lt;payload\u0026gt;\u003c/code\u003e. The default is changed to \u003ccode\u003eNone\u003c/code\u003e (accept both) to preserve backward compatibility.\n\u003ccode\u003e[#1713](https://github.com/aiogram/aiogram/issues/1713) \u0026lt;https://github.com/aiogram/aiogram/issues/1713\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHtmlDecoration.custom_emoji()\u003c/code\u003e to use the correct \u003ccode\u003eemoji-id\u003c/code\u003e attribute name instead of \u003ccode\u003eemoji_id\u003c/code\u003e in the \u003ccode\u003e\u0026lt;tg-emoji\u0026gt;\u003c/code\u003e tag, matching the Telegram Bot API specification.\n\u003ccode\u003e[#1782](https://github.com/aiogram/aiogram/issues/1782) \u0026lt;https://github.com/aiogram/aiogram/issues/1782\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eRemove redundant list() around sorted() and fix router type name in validation error message\n\u003ccode\u003e[#1788](https://github.com/aiogram/aiogram/issues/1788) \u0026lt;https://github.com/aiogram/aiogram/issues/1788\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated to \u003ccode\u003eBot API 9.6 \u0026lt;https://core.telegram.org/bots/api-changelog#april-3-2026\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eManaged Bots\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eNew Methods:\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded :class:\u003ccode\u003eaiogram.methods.get_managed_bot_token.GetManagedBotToken\u003c/code\u003e method - retrieves the token of a managed bot\u003c/li\u003e\n\u003cli\u003eAdded :class:\u003ccode\u003eaiogram.methods.replace_managed_bot_token.ReplaceManagedBotToken\u003c/code\u003e method - generates a new token for a managed bot, invalidating the previous one\u003c/li\u003e\n\u003cli\u003eAdded :class:\u003ccode\u003eaiogram.methods.save_prepared_keyboard_button.SavePreparedKeyboardButton\u003c/code\u003e method - saves a keyboard button to be used in Mini Apps via :code:\u003ccode\u003erequestChat\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cem\u003eNew Types:\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded :class:\u003ccode\u003eaiogram.types.keyboard_button_request_managed_bot.KeyboardButtonRequestManagedBot\u003c/code\u003e type - defines criteria for selecting a managed bot via a keyboard button\u003c/li\u003e\n\u003cli\u003eAdded :class:\u003ccode\u003eaiogram.types.managed_bot_created.ManagedBotCreated\u003c/code\u003e type - describes a service message about a managed bot being created\u003c/li\u003e\n\u003cli\u003eAdded :class:\u003ccode\u003eaiogram.types.managed_bot_updated.ManagedBotUpdated\u003c/code\u003e type - describes updates to a managed bot\u003c/li\u003e\n\u003cli\u003eAdded :class:\u003ccode\u003eaiogram.types.prepared_keyboard_button.PreparedKeyboardButton\u003c/code\u003e type - represents a prepared keyboard button for use in Mini Apps\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cem\u003eNew Fields:\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded :code:\u003ccode\u003ecan_manage_bots\u003c/code\u003e field to :class:\u003ccode\u003eaiogram.types.user.User\u003c/code\u003e - indicates whether the bot can manage other bots\u003c/li\u003e\n\u003cli\u003eAdded :code:\u003ccode\u003erequest_managed_bot\u003c/code\u003e field to :class:\u003ccode\u003eaiogram.types.keyboard_button.KeyboardButton\u003c/code\u003e - requests the user to select a managed bot\u003c/li\u003e\n\u003cli\u003eAdded :code:\u003ccode\u003emanaged_bot_created\u003c/code\u003e field to :class:\u003ccode\u003eaiogram.types.message.Message\u003c/code\u003e - service message about a managed bot being created (type: :class:\u003ccode\u003eaiogram.types.managed_bot_created.ManagedBotCreated\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdded :code:\u003ccode\u003emanaged_bot\u003c/code\u003e field to :class:\u003ccode\u003eaiogram.types.update.Update\u003c/code\u003e - contains updates received by a managed bot\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003ePolls\u003c/strong\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aiogram/aiogram/commit/288b95fd746e8abcd9024ce4b4ccfc2d1bd5d1e8\"\u003e\u003ccode\u003e288b95f\u003c/code\u003e\u003c/a\u003e Merge branch 'dev-3.x'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aiogram/aiogram/commit/e4d3692ac201bbdbfd786522d262caf4416dcafd\"\u003e\u003ccode\u003ee4d3692\u003c/code\u003e\u003c/a\u003e Bump changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aiogram/aiogram/commit/19a6131618f6724f91011516f208c975a63be407\"\u003e\u003ccode\u003e19a6131\u003c/code\u003e\u003c/a\u003e Remove redundant list() around sorted() and fix router type name in validatio...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aiogram/aiogram/commit/0611d0d953828f237debab9efea8dfc166dbde78\"\u003e\u003ccode\u003e0611d0d\u003c/code\u003e\u003c/a\u003e fix: CommandStart(deep_link=False) now rejects deep-link arguments (\u003ca href=\"https://redirect.github.com/aiogram/aiogram/issues/1790\"\u003e#1790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aiogram/aiogram/commit/d5bd0b98a3cc395f7268ab6411c928adccca9cfb\"\u003e\u003ccode\u003ed5bd0b9\u003c/code\u003e\u003c/a\u003e Fix HtmlDecoration attribute name for custom emoji method (\u003ca href=\"https://redirect.github.com/aiogram/aiogram/issues/1782\"\u003e#1782\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/aiogram/aiogram/issues/1783\"\u003e#1783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aiogram/aiogram/commit/875f37f78063bfa338389d94fcbb7ac7d4b9a6e6\"\u003e\u003ccode\u003e875f37f\u003c/code\u003e\u003c/a\u003e Feature/eq method for default (\u003ca href=\"https://redirect.github.com/aiogram/aiogram/issues/1789\"\u003e#1789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aiogram/aiogram/commit/9f49c0413ff5b51ad0d35ffc0e7b0909b8162b17\"\u003e\u003ccode\u003e9f49c04\u003c/code\u003e\u003c/a\u003e Added full support for the Bot API 9.6 (\u003ca href=\"https://redirect.github.com/aiogram/aiogram/issues/1792\"\u003e#1792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aiogram/aiogram/commit/00c1130938d4a8049c4f50f353a57971377a1014\"\u003e\u003ccode\u003e00c1130\u003c/code\u003e\u003c/a\u003e Correct release version number in CHANGES.rst (\u003ca href=\"https://redirect.github.com/aiogram/aiogram/issues/1784\"\u003e#1784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aiogram/aiogram/commit/4f435ae39b90cab98089584c10913958cb744e76\"\u003e\u003ccode\u003e4f435ae\u003c/code\u003e\u003c/a\u003e Merge branch 'dev-3.x'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aiogram/aiogram/commit/860dd5cab86f2ae3ac8e84bde0f0b3532f88bfe8\"\u003e\u003ccode\u003e860dd5c\u003c/code\u003e\u003c/a\u003e Merge branch 'dev-3.x'\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aiogram/aiogram/compare/v3.26.0...v3.27.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aio-pika` from 9.6.1 to 9.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mosquito/aio-pika/releases\"\u003eaio-pika's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.6.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInclude license file in built distributions via project.license-files by \u003ca href=\"https://github.com/julia-thorn\"\u003e\u003ccode\u003e@​julia-thorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mosquito/aio-pika/pull/698\"\u003emosquito/aio-pika#698\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/julia-thorn\"\u003e\u003ccode\u003e@​julia-thorn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/mosquito/aio-pika/pull/698\"\u003emosquito/aio-pika#698\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/mosquito/aio-pika/compare/9.6.1...9.6.2\"\u003ehttps://github.com/mosquito/aio-pika/compare/9.6.1...9.6.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mosquito/aio-pika/commit/8136a8cf6fd04413c9e6ac1a789944ac4b1a47fd\"\u003e\u003ccode\u003e8136a8c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mosquito/aio-pika/issues/698\"\u003e#698\u003c/a\u003e from julia-thorn/julia-thorn-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mosquito/aio-pika/commit/31b82b102ac0133ff8322a3fc39db48409765055\"\u003e\u003ccode\u003e31b82b1\u003c/code\u003e\u003c/a\u003e Add license-files entry to pyproject.toml\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mosquito/aio-pika/compare/9.6.1...9.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.48 to 2.0.49\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.49\u003c/h1\u003e\n\u003cp\u003eReleased: April 3, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where \u003ccode\u003e_orm.Session.get()\u003c/code\u003e would bypass the identity map\nand emit unnecessary SQL when \u003ccode\u003ewith_for_update=False\u003c/code\u003e was passed,\nrather than treating it equivalently to the default of \u003ccode\u003eNone\u003c/code\u003e.\nPull request courtesy of Joshua Swanson.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13176\"\u003e#13176\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where chained \u003ccode\u003e_orm.joinedload()\u003c/code\u003e options would not be\napplied correctly when the final relationship in the chain is declared on a\nbase mapper and accessed through a subclass mapper in a\n\u003ccode\u003e_orm.with_polymorphic()\u003c/code\u003e query. The path registry now correctly\ncomputes the natural path when a property declared on a base class is\naccessed through a path containing a subclass mapper, ensuring the loader\noption can be located during query compilation.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13193\"\u003e#13193\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using \u003ccode\u003e_orm.Load.options()\u003c/code\u003e to apply a chained loader\noption such as \u003ccode\u003e_orm.joinedload()\u003c/code\u003e or \u003ccode\u003e_orm.selectinload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot generate the necessary clauses for the polymorphic subclasses. The\npolymorphic loading strategy is now correctly propagated when using a call\nsuch as \u003ccode\u003ejoinedload(A.b).options(joinedload(B.c.of_type(poly)))\u003c/code\u003e to match\nthe behavior of direct chaining e.g.\n\u003ccode\u003ejoinedload(A.b).joinedload(B.c.of_type(poly))\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13202\"\u003e#13202\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using chained loader options such as\n\u003ccode\u003e_orm.selectinload()\u003c/code\u003e after \u003ccode\u003e_orm.joinedload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot properly apply the chained loader option. The loader option is now\ncorrectly applied when using a call such as\n\u003ccode\u003ejoinedload(A.b.of_type(poly)).selectinload(poly.SubClass.c)\u003c/code\u003e to eagerly\nload related objects.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13209\"\u003e#13209\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etyping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[typing] [bug]\u003c/strong\u003e Fixed a typing issue where the typed members of :data:\u003ccode\u003e.func\u003c/code\u003e would return\nthe appropriate class of the same name, however this creates an issue for\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dependency-injector` from 4.48.3 to 4.49.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.49.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.14 support\u003c/li\u003e\n\u003cli\u003eFix Pydantic v2 deprecation warning triggering on settings class import (fixes \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix grammar in Declarative Container documentation by \u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing warn_unresolved parameter to WiringConfiguration in containers.pyi by \u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd keep_cache argument to Container.wire typings by \u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for some type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/943\"\u003eets-labs/python-dependency-injector#943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for remaining type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/953\"\u003eets-labs/python-dependency-injector#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd provided()\u003c!-- raw HTML omitted --\u003e.call *args, **kwargs arguments \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/945\"\u003e#945\u003c/a\u003e by \u003ca href=\"https://github.com/pavalso\"\u003e\u003ccode\u003e@​pavalso\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/946\"\u003eets-labs/python-dependency-injector#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd context local resource by \u003ca href=\"https://github.com/elina-israyelyan\"\u003e\u003ccode\u003e@​elina-israyelyan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/931\"\u003eets-labs/python-dependency-injector#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI/CD to \u003ccode\u003eactions/checkout@v6\u003c/code\u003e, \u003ccode\u003eactions/setup-python@v6\u003c/code\u003e, \u003ccode\u003eactions/download-artifact@v8\u003c/code\u003e, \u003ccode\u003eactions/upload-artifact@v7\u003c/code\u003e and \u003ccode\u003epypa/cibuildwheel@v3.4.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdd dependabot config for GitHub Actions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pavalso\"\u003e\u003ccode\u003e@​pavalso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/946\"\u003eets-labs/python-dependency-injector#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elina-israyelyan\"\u003e\u003ccode\u003e@​elina-israyelyan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/931\"\u003eets-labs/python-dependency-injector#931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5f7aa1c337c77e782e1e927eb4b1e41a60912604\"\u003e\u003ccode\u003e5f7aa1c\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5863d99bd5e9b2d22c15f3815b23973317a453ee\"\u003e\u003ccode\u003e5863d99\u003c/code\u003e\u003c/a\u003e Add .github/dependabot.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/000c670c7e655cc7db423a76c6b877d185f706ce\"\u003e\u003ccode\u003e000c670\u003c/code\u003e\u003c/a\u003e Upgrade GHA actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/931084070a5304a26a925961375a5afcc3c3a38b\"\u003e\u003ccode\u003e9310840\u003c/code\u003e\u003c/a\u003e Fix iscoroutinefunction import for older Pythons\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/05a5e7d8701a1df8cb88ad55d187ba88cd6ffbe8\"\u003e\u003ccode\u003e05a5e7d\u003c/code\u003e\u003c/a\u003e Fix get_annotations import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/58700d9dbd3420a559330666edfb477418997ff9\"\u003e\u003ccode\u003e58700d9\u003c/code\u003e\u003c/a\u003e Use from import statements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/0e25331738716d5bfa5562d42617deb6ad65d23c\"\u003e\u003ccode\u003e0e25331\u003c/code\u003e\u003c/a\u003e Do not build nogil wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1696986aa7698120a7e2aab2355d93e178fc36f9\"\u003e\u003ccode\u003e1696986\u003c/code\u003e\u003c/a\u003e Python 3.14 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/525935137e81355657e44b454c0f7b19b69fdc7b\"\u003e\u003ccode\u003e5259351\u003c/code\u003e\u003c/a\u003e Add context local resource (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/931\"\u003e#931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/76d5932b7340719eac2b737bd444daacc7bb0682\"\u003e\u003ccode\u003e76d5932\u003c/code\u003e\u003c/a\u003e Add provided()\u0026lt;func\u0026gt;.call *args, **kwargs arguments (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/946\"\u003e#946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 7.0.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0 (2026-03-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed total coverage computation to always be consistent, regardless of reporting settings.\nPreviously some reports could produce different total counts, and consequently can make --cov-fail-under behave different depending on\nreporting options.\nSee \u003ccode\u003e[#641](https://github.com/pytest-dev/pytest-cov/issues/641) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/641\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove handling of ResourceWarning from sqlite3.\u003c/p\u003e\n\u003cp\u003eThe plugin adds warning filter for sqlite3 \u003ccode\u003eResourceWarning\u003c/code\u003e unclosed database (since 6.2.0).\nIt checks if there is already existing plugin for this message by comparing filter regular expression.\nWhen filter is specified on command line the message is escaped and does not match an expected message.\nA check for an escaped regular expression is added to handle this case.\u003c/p\u003e\n\u003cp\u003eWith this fix one can suppress \u003ccode\u003eResourceWarning\u003c/code\u003e from sqlite3 from command line::\u003c/p\u003e\n\u003cp\u003epytest -W \u0026quot;ignore:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\u0026quot; ...\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to documentation.\nContributed by Art Pelling in \u003ccode\u003e[#718](https://github.com/pytest-dev/pytest-cov/issues/718) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/718\u0026gt;\u003c/code\u003e_ and\n\u0026quot;vivodi\u0026quot; in \u003ccode\u003e[#738](https://github.com/pytest-dev/pytest-cov/issues/738) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/738\u0026gt;\u003c/code\u003e\u003cem\u003e.\nAlso closed \u003ccode\u003e[#736](https://github.com/pytest-dev/pytest-cov/issues/736) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/736\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed some assertions in tests.\nContributed by in Markéta Machová in \u003ccode\u003e[#722](https://github.com/pytest-dev/pytest-cov/issues/722) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/722\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved unnecessary coverage configuration copying (meant as a backup because reporting commands had configuration side-effects before coverage 5.0).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/66c8a526b1246b5eb8fb1bc218878131bc628622\"\u003e\u003ccode\u003e66c8a52\u003c/code\u003e\u003c/a\u003e Bump version: 7.0.0 → 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f7076624784332594aa4cb3585d4757d295db15e\"\u003e\u003ccode\u003ef707662\u003c/code\u003e\u003c/a\u003e Make the examples use pypy 3.11.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/6049a7847872e3139e6c82e93787123df5dc8672\"\u003e\u003ccode\u003e6049a78\u003c/code\u003e\u003c/a\u003e Make context test use the old ctracer (seems the new sysmon tracer behaves di...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/8ebf20bbbc73478b3f8fd36d30237d9ea083f06b\"\u003e\u003ccode\u003e8ebf20b\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/861d30e60d571f97259c6b718b71c819d5dbc3b9\"\u003e\u003ccode\u003e861d30e\u003c/code\u003e\u003c/a\u003e Remove the backup context manager  - shouldn't be needed since coverage 5.0, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/fd4c956014035527f0c3c8d7faef3f8cfdadac7f\"\u003e\u003ccode\u003efd4c956\u003c/code\u003e\u003c/a\u003e Pass the precision on the nulled total (seems that there's some caching goion...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/78c9c4ecb005faf4962fd86ff7bf9c9cce9554d6\"\u003e\u003ccode\u003e78c9c4e\u003c/code\u003e\u003c/a\u003e Only run the 3.9 on older deps.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/4849a922e8be725c662a3d9175da571ace6545dc\"\u003e\u003ccode\u003e4849a92\u003c/code\u003e\u003c/a\u003e Punctuation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/197c35e2f37031fd1927715307ab6eed7cb3d2b7\"\u003e\u003ccode\u003e197c35e\u003c/code\u003e\u003c/a\u003e Update changelog and hopefully I don't forget to publish release again :))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/14dc1c92d44108384e39803888635fdbfc578b7f\"\u003e\u003ccode\u003e14dc1c9\u003c/code\u003e\u003c/a\u003e Update examples to use 3.11 and make the adhoc layout example look a bit more...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hypothesis` from 6.151.9 to 6.152.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/HypothesisWorks/hypothesis/releases\"\u003ehypothesis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eHypothesis for Python - version 6.152.4\u003c/h2\u003e\n\u003cp\u003eThis patch fixes a rare internal error during \u0026quot;Phase.explain\u0026quot;\nintroduced in version 6.149.0 for certain strategies (issue \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4708\"\u003e#4708\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-152-4\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.152.3\u003c/h2\u003e\n\u003cp\u003eThe \u0026quot;hypothesis-urandom\u0026quot; backend now reads from \u0026quot;/dev/urandom\u0026quot; with\nbuffering disabled, which improves the control of those hooking\n\u0026quot;/dev/urandom\u0026quot; to change or read Hypothesis's random decisions.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-152-3\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.152.2\u003c/h2\u003e\n\u003cp\u003eThis release further improves printing of generated values, building\non the changes in  version 6.151.11.\u003c/p\u003e\n\u003cp\u003ePrinciple changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIn many cases where we would have printed a complex expression\nproducing a value, we now print the repr (or a pretty-printed\nversion of it).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdditionally, in some cases where we would print a complex\nexpression that involved a lambda, we are now able to simplify that\nexpression into a more readable one.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-152-2\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.152.1\u003c/h2\u003e\n\u003cp\u003eImprove some internal type hints.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-152-1\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.152.0\u003c/h2\u003e\n\u003cp\u003eHypothesis generally recommends that the \u0026quot;.hypothesis\u0026quot; directory not\nbe checked into version control. As a result, Hypothesis now\nautomatically creates a \u0026quot;.gitignore\u0026quot; with \u0026quot;*\u0026quot; in the \u0026quot;.hypothesis\u0026quot;\ndirectory, which excludes it from being tracked by git.\u003c/p\u003e\n\u003cp\u003eIf you do want to check \u0026quot;.hypothesis\u0026quot; into git, you can remove the\n\u0026quot;.gitignore\u0026quot; file. Hypothesis will not re-create it unless the entire\n\u0026quot;.hypothesis\u0026quot; directory is removed.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-152-0\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.151.14\u003c/h2\u003e\n\u003cp\u003eThis patch fixes our \u0026quot;from_regex()\u0026quot; type annotations so that\n\u0026quot;from_regex(..., alphabet=None)\u0026quot; is accepted.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/84f92dcf29229e37f822ba3ba5eea4212d2abf35\"\u003e\u003ccode\u003e84f92dc\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.152.4 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/c6814df503fd6afe4bf03831020572c6be44976b\"\u003e\u003ccode\u003ec6814df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4717\"\u003e#4717\u003c/a\u003e from HypothesisWorks/DRMacIver/issue4708\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/82e9446a6d7a22318a9cca8612bb35a1f404e9e1\"\u003e\u003ccode\u003e82e9446\u003c/code\u003e\u003c/a\u003e Address PR review feedback\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/c77d7e746f3b82ba513f8a22a1ae3bed0ecb52d8\"\u003e\u003ccode\u003ec77d7e7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4719\"\u003e#4719\u003c/a\u003e from Liam-DeVoe/fix-mobile-word-wrapping\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/609de04108945b1ee711a514c3bfa520f75b71e9\"\u003e\u003ccode\u003e609de04\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.152.3 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/902f1baddcbc0059eee61b3518a07489935e28ef\"\u003e\u003ccode\u003e902f1ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4720\"\u003e#4720\u003c/a\u003e from Liam-DeVoe/urandom-disable-buffering\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/da81118e4cf06651c63ade29892fe45562a4afbc\"\u003e\u003ccode\u003eda81118\u003c/code\u003e\u003c/a\u003e claude: open /dev/urandom with buffering=0 in URandomProvider\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/4d6a7f0a37f47190694b91ba1072f069a093959f\"\u003e\u003ccode\u003e4d6a7f0\u003c/code\u003e\u003c/a\u003e fix footnote overflow on mobile\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/80fada332e4a5cd19e22ac6be9f7dcfea71d9b68\"\u003e\u003ccode\u003e80fada3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4714\"\u003e#4714\u003c/a\u003e from HypothesisWorks/DRMacIver/uv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/4b554b04eec7d8ce685ec126720b562a91e04d09\"\u003e\u003ccode\u003e4b554b0\u003c/code\u003e\u003c/a\u003e Fix AssertionError in Shrinker.explain() for unstable span labels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/HypothesisWorks/hypothesis/compare/hypothesis-python-6.151.9...hypothesis-python-6.152.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.6 to 0.15.12\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.12\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:ignore\u003c/code\u003e logical-line suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23404\"\u003e#23404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert preview changes to displayed diagnostic severity in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24789\"\u003e#24789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003etask-branch-as-short-circuit\u003c/code\u003e (\u003ccode\u003eAIR004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23579\"\u003e#23579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix \u003ccode\u003ebreak\u003c/code\u003e/\u003ccode\u003econtinue\u003c/code\u003e handling in \u003ccode\u003eloop-iterator-mutation\u003c/code\u003e (\u003ccode\u003eB909\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24440\"\u003e#24440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2701\u003c/code\u003e for type parameter scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24576\"\u003e#24576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Suggest \u003ccode\u003e.array\u003c/code\u003e as well in \u003ccode\u003ePD011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24805\"\u003e#24805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect default Unix permissions for cache files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24794\"\u003e#24794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR0124\u003c/code\u003e description not to claim self-comparison always returns the same value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24749\"\u003e#24749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Expand docs on reusable \u003ccode\u003eTypeVar\u003c/code\u003es and scoping (\u003ccode\u003eUP046\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24153\"\u003e#24153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rules table accessibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24711\"\u003e#24711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avasis-ai\"\u003e\u003ccode\u003e@​avasis-ai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShipItAndPray\"\u003e\u003ccode\u003e@​ShipItAndPray\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.12\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.12/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.12\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:ignore\u003c/code\u003e logical-line suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23404\"\u003e#23404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert preview changes to displayed diagnostic severity in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24789\"\u003e#24789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003etask-branch-as-short-circuit\u003c/code\u003e (\u003ccode\u003eAIR004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23579\"\u003e#23579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix \u003ccode\u003ebreak\u003c/code\u003e/\u003ccode\u003econtinue\u003c/code\u003e handling in \u003ccode\u003eloop-iterator-mutation\u003c/code\u003e (\u003ccode\u003eB909\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24440\"\u003e#24440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2701\u003c/code\u003e for type parameter scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24576\"\u003e#24576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Suggest \u003ccode\u003e.array\u003c/code\u003e as well in \u003ccode\u003ePD011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24805\"\u003e#24805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect default Unix permissions for cache files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24794\"\u003e#24794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR0124\u003c/code\u003e description not to claim self-comparison always returns the same value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24749\"\u003e#24749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Expand docs on reusable \u003ccode\u003eTypeVar\u003c/code\u003es and scoping (\u003ccode\u003eUP046\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24153\"\u003e#24153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rules table accessibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24711\"\u003e#24711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avasis-ai\"\u003e\u003ccode\u003e@​avasis-ai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShipItAndPray\"\u003e\u003ccode\u003e@​ShipItAndPray\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/66f93cf7ed4d36325f35a452e4afa28268fbcd28\"\u003e\u003ccode\u003e66f93cf\u003c/code\u003e\u003c/a\u003e Bump 0.15.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24815\"\u003e#24815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/476a4d02e8e3b6c157ac39979d8b698a1b6baa91\"\u003e\u003ccode\u003e476a4d0\u003c/code\u003e\u003c/a\u003e [ty] Complete support for more detailed diagnostics on possibly unbound error...\u003c/li\u003e\n\u003cli\u003e\u003ca hr...\n\n_Description has been truncated_","html_url":"https://github.com/nikmosi/twitch-sub-bot/pull/140","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikmosi%2Ftwitch-sub-bot/issues/140","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/140/packages"},{"uuid":"4332537561","node_id":"PR_kwDORMFN3c7Vy9Sk","number":136,"state":"closed","title":"chore(deps): Bump the python-minor-patch group across 1 directory with 38 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-11T01:21:38.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-27T01:22:03.000Z","updated_at":"2026-05-11T01:21:40.000Z","time_to_close":1209575,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"python-minor-patch","update_count":38,"packages":[{"name":"fastapi","old_version":"0.135.1","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.42.0","new_version":"0.46.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"python-multipart","old_version":"0.0.22","new_version":"0.0.27","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"sqlalchemy","old_version":"2.0.48","new_version":"2.0.49","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.13.1","new_version":"2.14.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"redis","old_version":"7.3.0","new_version":"7.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"meilisearch","old_version":"0.40.0","new_version":"0.41.0","repository_url":"https://github.com/meilisearch/meilisearch-python"},{"name":"supabase","old_version":"2.28.2","new_version":"2.29.0","repository_url":"https://github.com/supabase/supabase-py"},{"name":"postgrest","old_version":"2.28.2","new_version":"2.29.0","repository_url":"https://github.com/supabase/supabase-py"},{"name":"storage3","old_version":"2.28.2","new_version":"2.29.0","repository_url":"https://github.com/supabase/supabase-py"},{"name":"anthropic","old_version":"0.85.0","new_version":"0.97.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"openai","old_version":"2.28.0","new_version":"2.33.0","repository_url":"https://github.com/openai/openai-python"},{"name":"claude-agent-sdk","old_version":"0.1.48","new_version":"0.1.72","repository_url":"https://github.com/anthropics/claude-agent-sdk-python"},{"name":"dependency-injector","old_version":"4.48.3","new_version":"4.49.0","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"orjson","old_version":"3.11.7","new_version":"3.11.8","repository_url":"https://github.com/ijl/orjson"},{"name":"ua-parser","old_version":"1.0.1","new_version":"1.0.2","repository_url":"https://github.com/ua-parser/uap-python"},{"name":"anyio","old_version":"4.12.1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"certifi","old_version":"2026.2.25","new_version":"2026.4.22","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.6","new_version":"3.4.7","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.1","new_version":"8.3.3","repository_url":"https://github.com/pallets/click"},{"name":"docstring-parser","old_version":"0.17.0","new_version":"0.18.0","repository_url":"https://github.com/rr-/docstring_parser"},{"name":"fsspec","old_version":"2026.2.0","new_version":"2026.4.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"greenlet","old_version":"3.3.2","new_version":"3.5.0","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"idna","old_version":"3.11","new_version":"3.13","repository_url":"https://github.com/kjd/idna"},{"name":"jiter","old_version":"0.13.0","new_version":"0.14.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"mako","old_version":"1.3.10","new_version":"1.3.12","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"mcp","old_version":"1.26.0","new_version":"1.27.0","repository_url":"https://github.com/modelcontextprotocol/python-sdk"},{"name":"numpy","old_version":"2.4.3","new_version":"2.4.4","repository_url":"https://github.com/numpy/numpy"},{"name":"packaging","old_version":"26.0","new_version":"26.2","repository_url":"https://github.com/pypa/packaging"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.46.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.19.2","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyroaring","old_version":"1.0.3","new_version":"1.1.0","repository_url":"https://github.com/Ezibenroc/PyRoaringBitMap"},{"name":"realtime","old_version":"2.28.2","new_version":"2.29.0","repository_url":"https://github.com/supabase/supabase-py"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"sse-starlette","old_version":"3.3.2","new_version":"3.4.1","repository_url":"https://github.com/sysid/sse-starlette"},{"name":"supabase-auth","old_version":"2.28.2","new_version":"2.29.0","repository_url":"https://github.com/supabase/supabase-py"},{"name":"supabase-functions","old_version":"2.28.2","new_version":"2.29.0","repository_url":"https://github.com/supabase/supabase-py"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 38 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.135.1` | `0.136.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.42.0` | `0.46.0` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.22` | `0.0.27` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.48` | `2.0.49` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.3` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.13.1` | `2.14.0` |\n| [redis](https://github.com/redis/redis-py) | `7.3.0` | `7.4.0` |\n| [meilisearch](https://github.com/meilisearch/meilisearch-python) | `0.40.0` | `0.41.0` |\n| [supabase](https://github.com/supabase/supabase-py) | `2.28.2` | `2.29.0` |\n| [postgrest](https://github.com/supabase/supabase-py) | `2.28.2` | `2.29.0` |\n| [storage3](https://github.com/supabase/supabase-py) | `2.28.2` | `2.29.0` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.85.0` | `0.97.0` |\n| [openai](https://github.com/openai/openai-python) | `2.28.0` | `2.33.0` |\n| [claude-agent-sdk](https://github.com/anthropics/claude-agent-sdk-python) | `0.1.48` | `0.1.72` |\n| [dependency-injector](https://github.com/ets-labs/python-dependency-injector) | `4.48.3` | `4.49.0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.7` | `3.11.8` |\n| [ua-parser](https://github.com/ua-parser/uap-python) | `1.0.1` | `1.0.2` |\n| [anyio](https://github.com/agronholm/anyio) | `4.12.1` | `4.13.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2026.2.25` | `2026.4.22` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.6` | `3.4.7` |\n| [click](https://github.com/pallets/click) | `8.3.1` | `8.3.3` |\n| [docstring-parser](https://github.com/rr-/docstring_parser) | `0.17.0` | `0.18.0` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.2.0` | `2026.4.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.3.2` | `3.5.0` |\n| [idna](https://github.com/kjd/idna) | `3.11` | `3.13` |\n| [jiter](https://github.com/pydantic/jiter) | `0.13.0` | `0.14.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.3.12` |\n| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `1.26.0` | `1.27.0` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.3` | `2.4.4` |\n| [packaging](https://github.com/pypa/packaging) | `26.0` | `26.2` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.5` | `2.46.3` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.2` | `2.20.0` |\n| [pyroaring](https://github.com/Ezibenroc/PyRoaringBitMap) | `1.0.3` | `1.1.0` |\n| [realtime](https://github.com/supabase/supabase-py) | `2.28.2` | `2.29.0` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [sse-starlette](https://github.com/sysid/sse-starlette) | `3.3.2` | `3.4.1` |\n| [supabase-auth](https://github.com/supabase/supabase-py) | `2.28.2` | `2.29.0` |\n| [supabase-functions](https://github.com/supabase/supabase-py) | `2.28.2` | `2.29.0` |\n\n\nUpdates `fastapi` from 0.135.1 to 0.136.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.136.1\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Update Pydantic v2 code to address deprecations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15101\"\u003e#15101\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Tweak translation script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15174\"\u003e#15174\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.1 to 9.7.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15408\"\u003e#15408\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump inline-snapshot from 0.31.1 to 0.32.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15409\"\u003e#15409\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-codspeed from 4.3.0 to 4.4.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15407\"\u003e#15407\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-cov from 7.0.0 to 7.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15406\"\u003e#15406\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15405\"\u003e#15405\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 1.19.1 to 1.20.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15410\"\u003e#15410\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-dotenv from 1.2.1 to 1.2.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15400\"\u003e#15400\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump starlette from 0.52.1 to 1.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15397\"\u003e#15397\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygithub from 2.8.1 to 2.9.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15396\"\u003e#15396\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pyjwt from 2.12.0 to 2.12.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15393\"\u003e#15393\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump zizmor from 1.23.1 to 1.24.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15394\"\u003e#15394\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.312.3 to 0.314.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15395\"\u003e#15395\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-multipart from 0.0.22 to 0.0.26. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15360\"\u003e#15360\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump authlib from 1.6.9 to 1.6.11. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15373\"\u003e#15373\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump aiohttp from 3.13.3 to 3.13.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15282\"\u003e#15282\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15263\"\u003e#15263\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.20.1 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15391\"\u003e#15391\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pillow from 12.1.1 to 12.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15333\"\u003e#15333\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest from 9.0.2 to 9.0.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15334\"\u003e#15334\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15374\"\u003e#15374\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15385\"\u003e#15385\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Zuplo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15369\"\u003e#15369\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Speakeasy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15368\"\u003e#15368\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Add zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15316\"\u003e#15316\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.136.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Support free-threaded Python 3.14t. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15149\"\u003e#15149\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15363\"\u003e#15363\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump cryptography from 46.0.5 to 46.0.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15314\"\u003e#15314\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15309\"\u003e#15309\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15293\"\u003e#15293\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e54e5a8980ffa6d7ff68ee7b25a1c46036375521\"\u003e\u003ccode\u003ee54e5a8\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9a8a5fd99902c3b80d4cc94b85e120e2b808825f\"\u003e\u003ccode\u003e9a8a5fd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7815a32f2ed177b8b786a48b3e0712c05b5c644f\"\u003e\u003ccode\u003e7815a32\u003c/code\u003e\u003c/a\u003e ⬆️ Update Pydantic v2 code to address deprecations (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15101\"\u003e#15101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ef1c927b0558d414e199a666833942a6fabb3a51\"\u003e\u003ccode\u003eef1c927\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/38039e12a86e67f2001b9b7d96c219691d6cb4af\"\u003e\u003ccode\u003e38039e1\u003c/code\u003e\u003c/a\u003e 🔨 Tweak translation script (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15174\"\u003e#15174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4fa826ce0a3b16884a04f51e5aac95d01790b599\"\u003e\u003ccode\u003e4fa826c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c39415673e621665fdb7bbdde69beba7eb1dfd12\"\u003e\u003ccode\u003ec394156\u003c/code\u003e\u003c/a\u003e ⬆ Bump mkdocs-material from 9.7.1 to 9.7.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15408\"\u003e#15408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ae230ad2f9d90a4e3f6222ff1a5d6e8da41ec0ad\"\u003e\u003ccode\u003eae230ad\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d9eb39d1a1bf2f6e6e5d3a55088f61c712cb864e\"\u003e\u003ccode\u003ed9eb39d\u003c/code\u003e\u003c/a\u003e ⬆ Bump inline-snapshot from 0.31.1 to 0.32.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15409\"\u003e#15409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4f8b5d14d324ae8e15cfae8d85adb4186d4c2175\"\u003e\u003ccode\u003e4f8b5d1\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.135.1...0.136.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.42.0 to 0.46.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.46.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2915\"\u003eKludex/uvicorn#2915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2916\"\u003eKludex/uvicorn#2916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in websockets-sansio by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2917\"\u003eKludex/uvicorn#2917\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.45.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve forwarded client ports in proxy headers middleware by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2903\"\u003eKludex/uvicorn#2903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003eos.PathLike\u003c/code\u003e for \u003ccode\u003elog_config\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2905\"\u003eKludex/uvicorn#2905\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2907\"\u003eKludex/uvicorn#2907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2906\"\u003eKludex/uvicorn#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert empty context for ASGI runs by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2911\"\u003eKludex/uvicorn#2911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2912\"\u003eKludex/uvicorn#2912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e) by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2913\"\u003eKludex/uvicorn#2913\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Krishnachaitanyakc\"\u003e\u003ccode\u003e@​Krishnachaitanyakc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2870\"\u003eKludex/uvicorn#2870\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.44.0...0.45.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.44.0...0.45.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.44.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2888\"\u003eKludex/uvicorn#2888\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.43.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.46.0 (April 23, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2916\"\u003e#2916\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2917\"\u003e#2917\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.45.0 (April 21, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2912\"\u003e#2912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003eos.PathLike\u003c/code\u003e for \u003ccode\u003elog_config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2905\"\u003e#2905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRevert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2913\"\u003e#2913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;Explicitly start ASGI run with empty context\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve forwarded client ports in proxy headers middleware (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRaise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2906\"\u003e#2906\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.44.0 (April 6, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2888\"\u003e#2888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.43.0 (April 3, 2026)\u003c/h2\u003e\n\u003cp\u003eYou can quit Uvicorn now. We heard you, \u003ca href=\"https://github.com/pamelafox\"\u003e\u003ccode\u003e@​pamelafox\u003c/code\u003e\u003c/a\u003e - all 47 of your Ctrl+C's (thanks for flagging it, and thanks to \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e for the fix 🙏). \u003ca href=\"https://x.com/pamelafox/status/2039097686155227623\"\u003eSee the tweet\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/b224045f5900b7f766743bcb16ba9fc3adea2606\"\u003e\u003ccode\u003eb224045\u003c/code\u003e\u003c/a\u003e Version 0.46.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2918\"\u003e#2918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7375b5bf66d962186d663e85615d4b4d956bf880\"\u003e\u003ccode\u003e7375b5b\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in websockets-sansio (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d438fb16fe2d23c7bbc2ca7094645cff1f116458\"\u003e\u003ccode\u003ed438fb1\u003c/code\u003e\u003c/a\u003e Support \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3e6b96446653d0156434bce529a14c80764c9eda\"\u003e\u003ccode\u003e3e6b964\u003c/code\u003e\u003c/a\u003e Support \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/2c423bd82be169459ea254a61476de34767e0326\"\u003e\u003ccode\u003e2c423bd\u003c/code\u003e\u003c/a\u003e Version 0.45.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2914\"\u003e#2914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7f027f8e25e47668a9c2ce8b5c21b35054c48d02\"\u003e\u003ccode\u003e7f027f8\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/73a80c3cc87de269ed016e584a25e585ae6f2b44\"\u003e\u003ccode\u003e73a80c3\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2912\"\u003e#2912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/45c0b568d38e9bf4f2f036bc2d79eb98b0e72f72\"\u003e\u003ccode\u003e45c0b56\u003c/code\u003e\u003c/a\u003e Revert empty context for ASGI runs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/850d92656de0cb5859ee5f6ba252e19ad3d38989\"\u003e\u003ccode\u003e850d926\u003c/code\u003e\u003c/a\u003e Raise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2906\"\u003e#2906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/fdcacb4b83bc686ea1ba9e50ffe5b8cfe49b3e00\"\u003e\u003ccode\u003efdcacb4\u003c/code\u003e\u003c/a\u003e Accept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.42.0...0.46.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.22 to 0.0.27\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.27\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePass parse offsets via constructors by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/268\"\u003eKludex/python-multipart#268\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd multipart header limits by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/267\"\u003eKludex/python-multipart#267\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.26\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before first multipart boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003eKludex/python-multipart#262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003eKludex/python-multipart#259\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply Apache-2.0 properly by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003eKludex/python-multipart#247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003eKludex/python-multipart#252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003eKludex/python-multipart#230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003eKludex/python-multipart#254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove custom FormParser classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003eKludex/python-multipart#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003eKludex/python-multipart#258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd MIME content type info to File by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003eKludex/python-multipart#143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003eKludex/python-multipart#244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003eKludex/python-multipart#196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e by \u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/blob/main/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.27 (2026-04-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd multipart header limits \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/267\"\u003e#267\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePass parse offsets via constructors \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/268\"\u003e#268\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.26 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before the first multipart boundary more efficiently \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003e#262\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing multipart boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003e#259\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.25 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd MIME content type info to \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003e#143\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003e#258\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRemove custom \u003ccode\u003eFormParser\u003c/code\u003e classes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003e#257\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003e#254\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003e#230\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003e#252\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eApply Apache-2.0 properly \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003e#247\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.24 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003e#244\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.23 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003e#196\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003e#229\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003e#227\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6d1d6892a6b01b25da6f3e7b097e8e06c57fb250\"\u003e\u003ccode\u003e6d1d689\u003c/code\u003e\u003c/a\u003e Version 0.0.27 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/272\"\u003e#272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/0b10220b1555af068a2bc8b198022b1ae238200f\"\u003e\u003ccode\u003e0b10220\u003c/code\u003e\u003c/a\u003e Run CI on main branch pull requests (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/271\"\u003e#271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/3e64f5f8caba0e5d391b0c1ad0f1c2edf9e8f911\"\u003e\u003ccode\u003e3e64f5f\u003c/code\u003e\u003c/a\u003e Add multipart header limits (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/eb109cc4eb8174f2a7efc1ba894b1bf6425c0b14\"\u003e\u003ccode\u003eeb109cc\u003c/code\u003e\u003c/a\u003e Pass parse offsets via constructors (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/78e29abb9a339598975beee093a770ec3033f76d\"\u003e\u003ccode\u003e78e29ab\u003c/code\u003e\u003c/a\u003e Bump pytest from 9.0.2 to 9.0.3 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/266\"\u003e#266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/b2ddd0982bdf0fe852e4f3baa12122d2827af46c\"\u003e\u003ccode\u003eb2ddd09\u003c/code\u003e\u003c/a\u003e fuzz: Enhance fuzzing capabilities with new chunked and boundary tests (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/28f47859b4a40c2e11e02dc514b2e9743ceedd2e\"\u003e\u003ccode\u003e28f4785\u003c/code\u003e\u003c/a\u003e Version 0.0.26 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d4452a78bbde94995dd3c0d1b4aff3610a5c472f\"\u003e\u003ccode\u003ed4452a7\u003c/code\u003e\u003c/a\u003e Silently discard epilogue data after the closing boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/259\"\u003e#259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6a7b76dd2653d99d8e5981d7ff09a4a047750b37\"\u003e\u003ccode\u003e6a7b76d\u003c/code\u003e\u003c/a\u003e Skip preamble before first multipart boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/4addb60350fc843f77a1502f14247db91930b3bf\"\u003e\u003ccode\u003e4addb60\u003c/code\u003e\u003c/a\u003e Version 0.0.25 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.27\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.48 to 2.0.49\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.49\u003c/h1\u003e\n\u003cp\u003eReleased: April 3, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where \u003ccode\u003e_orm.Session.get()\u003c/code\u003e would bypass the identity map\nand emit unnecessary SQL when \u003ccode\u003ewith_for_update=False\u003c/code\u003e was passed,\nrather than treating it equivalently to the default of \u003ccode\u003eNone\u003c/code\u003e.\nPull request courtesy of Joshua Swanson.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13176\"\u003e#13176\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where chained \u003ccode\u003e_orm.joinedload()\u003c/code\u003e options would not be\napplied correctly when the final relationship in the chain is declared on a\nbase mapper and accessed through a subclass mapper in a\n\u003ccode\u003e_orm.with_polymorphic()\u003c/code\u003e query. The path registry now correctly\ncomputes the natural path when a property declared on a base class is\naccessed through a path containing a subclass mapper, ensuring the loader\noption can be located during query compilation.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13193\"\u003e#13193\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using \u003ccode\u003e_orm.Load.options()\u003c/code\u003e to apply a chained loader\noption such as \u003ccode\u003e_orm.joinedload()\u003c/code\u003e or \u003ccode\u003e_orm.selectinload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot generate the necessary clauses for the polymorphic subclasses. The\npolymorphic loading strategy is now correctly propagated when using a call\nsuch as \u003ccode\u003ejoinedload(A.b).options(joinedload(B.c.of_type(poly)))\u003c/code\u003e to match\nthe behavior of direct chaining e.g.\n\u003ccode\u003ejoinedload(A.b).joinedload(B.c.of_type(poly))\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13202\"\u003e#13202\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using chained loader options such as\n\u003ccode\u003e_orm.selectinload()\u003c/code\u003e after \u003ccode\u003e_orm.joinedload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot properly apply the chained loader option. The loader option is now\ncorrectly applied when using a call such as\n\u003ccode\u003ejoinedload(A.b.of_type(poly)).selectinload(poly.SubClass.c)\u003c/code\u003e to eagerly\nload related objects.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13209\"\u003e#13209\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etyping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[typing] [bug]\u003c/strong\u003e Fixed a typing issue where the typed members of :data:\u003ccode\u003e.func\u003c/code\u003e would return\nthe appropriate class of the same name, however this creates an issue for\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/9e9a11132c980c4ec84ff6d2df06d4c1a55ca8f3\"\u003e\u003ccode\u003e9e9a111\u003c/code\u003e\u003c/a\u003e Fix backported test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1ec8c6aa0cae1c78409c6f31af738a24e16c7124\"\u003e\u003ccode\u003e1ec8c6a\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/fb4f2044436e9fa4ff9745479ce263016a99c4d6\"\u003e\u003ccode\u003efb4f204\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.13.1 to 2.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix parsing env vars into Optional Strict types by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/792\"\u003epydantic/pydantic-settings#792\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError with mutually recursive models in CLI by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/794\"\u003epydantic/pydantic-settings#794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix env_file from model_config ignored in CliApp.run() (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/795\"\u003e#795\u003c/a\u003e) by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/796\"\u003epydantic/pydantic-settings#796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/798\"\u003epydantic/pydantic-settings#798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Dependabot configuration by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/801\"\u003epydantic/pydantic-settings#801\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump samuelcolvin/check-python-version from 4.1 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/802\"\u003epydantic/pydantic-settings#802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 4 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/803\"\u003epydantic/pydantic-settings#803\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/804\"\u003epydantic/pydantic-settings#804\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 5 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/805\"\u003epydantic/pydantic-settings#805\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/806\"\u003epydantic/pydantic-settings#806\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore chardet and group GitHub Actions in Dependabot by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/808\"\u003epydantic/pydantic-settings#808\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 4 to 8 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/809\"\u003epydantic/pydantic-settings#809\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/810\"\u003epydantic/pydantic-settings#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport reading .env files from FIFOs (e.g. 1Password Environments) by \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/776\"\u003epydantic/pydantic-settings#776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AliasChoices ignored when changing provider priority by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/813\"\u003epydantic/pydantic-settings#813\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: resolve KeyError in run_subcommand for underscore field names by \u003ca href=\"https://github.com/bradykieffer\"\u003e\u003ccode\u003e@​bradykieffer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/799\"\u003epydantic/pydantic-settings#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/814\"\u003epydantic/pydantic-settings#814\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eLiteral[numeric Enum]\u003c/code\u003e coercion for CLI and env vars by \u003ca href=\"https://github.com/m9810223\"\u003e\u003ccode\u003e@​m9810223\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/811\"\u003epydantic/pydantic-settings#811\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix nested discriminated unions not discovered by env/CLI providers by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/816\"\u003epydantic/pydantic-settings#816\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/820\"\u003epydantic/pydantic-settings#820\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI ensure env nested max split internally. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/821\"\u003epydantic/pydantic-settings#821\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/824\"\u003epydantic/pydantic-settings#824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate \u003ccode\u003eboto3-stubs\u003c/code\u003e to \u003ccode\u003etypes-boto3\u003c/code\u003e by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/831\"\u003epydantic/pydantic-settings#831\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI not recognizing field name with validate_by_name and AliasChoices by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/826\"\u003epydantic/pydantic-settings#826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow customisation of the dotevn setting source to filter variables by \u003ca href=\"https://github.com/CaselIT\"\u003e\u003ccode\u003e@​CaselIT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/832\"\u003epydantic/pydantic-settings#832\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/833\"\u003epydantic/pydantic-settings#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce yamlfmt by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/836\"\u003epydantic/pydantic-settings#836\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump boto3 from 1.42.82 to 1.42.83 in the python-packages group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/837\"\u003epydantic/pydantic-settings#837\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce zizmor by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/838\"\u003epydantic/pydantic-settings#838\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CliPositionalArg[list[CustomType]] crash for custom types by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/839\"\u003epydantic/pydantic-settings#839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note about Mypy plugin for \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/842\"\u003epydantic/pydantic-settings#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ecli_ignore_unknown_args=True\u003c/code\u003e not working on subcommands by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/844\"\u003epydantic/pydantic-settings#844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/847\"\u003epydantic/pydantic-settings#847\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI descriptions lost under \u003ccode\u003epython -OO\u003c/code\u003e by falling back to \u003ccode\u003ejson_schema_extra\u003c/code\u003e by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/843\"\u003epydantic/pydantic-settings#843\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.14.0 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/848\"\u003epydantic/pydantic-settings#848\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/802\"\u003epydantic/pydantic-settings#802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/776\"\u003epydantic/pydantic-settings#776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bradykieffer\"\u003e\u003ccode\u003e@​bradykieffer\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/799\"\u003epydantic/pydantic-settings#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CaselIT\"\u003e\u003ccode\u003e@​CaselIT\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/832\"\u003epydantic/pydantic-settings#832\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/8916beeecc6d0510e3d0532a0ed839937400ddc3\"\u003e\u003ccode\u003e8916bee\u003c/code\u003e\u003c/a\u003e Prepare release 2.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/848\"\u003e#848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/39e551c0910c85505b608ff85a103b2c9f7396c5\"\u003e\u003ccode\u003e39e551c\u003c/code\u003e\u003c/a\u003e Fix CLI descriptions lost under \u003ccode\u003epython -OO\u003c/code\u003e by falling back to `json_schema_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/9ed7f48ea2c90f436a03b01f721fe6656c869b14\"\u003e\u003ccode\u003e9ed7f48\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 4 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/847\"\u003e#847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/617c690fb16c95eb0fb98fc88c0d6d82b9af4fa9\"\u003e\u003ccode\u003e617c690\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003ecli_ignore_unknown_args=True\u003c/code\u003e not working on subcommands (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/844\"\u003e#844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/577c05f7e8ac25904da2381db51ed4ddd4b3e4fe\"\u003e\u003ccode\u003e577c05f\u003c/code\u003e\u003c/a\u003e Add note about Mypy plugin for \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/842\"\u003e#842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/2355bc54e9d442ca7916f02de28d0c936e75441c\"\u003e\u003ccode\u003e2355bc5\u003c/code\u003e\u003c/a\u003e Fix CliPositionalArg[list[CustomType]] crash for custom types (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/839\"\u003e#839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/16bd6fd230d6280d52db6ce2a0ffef8f908cc89d\"\u003e\u003ccode\u003e16bd6fd\u003c/code\u003e\u003c/a\u003e Introduce zizmor (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/838\"\u003e#838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/df8b239fe09ba712767bdf378bc90627df375f04\"\u003e\u003ccode\u003edf8b239\u003c/code\u003e\u003c/a\u003e Bump boto3 from 1.42.82 to 1.42.83 in the python-packages group (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/837\"\u003e#837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/c5401a27999cd6c0e93925deb0660cd51013c8b1\"\u003e\u003ccode\u003ec5401a2\u003c/code\u003e\u003c/a\u003e Introduce yamlfmt (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/836\"\u003e#836\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/953e28e6cfe9a9e536375d771a4ffd48535a4ab2\"\u003e\u003ccode\u003e953e28e\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 3 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/833\"\u003e#833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 7.3.0 to 7.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError in cluster metrics recording when connection is None or ClusterNode object instance is used to extract the connection info (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3999\"\u003e#3999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords might leak in plain text logs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3998\"\u003e#3998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cp\u003e-Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpose basic Otel classes and functions to be importable through redis.observability to match the examples in the readthedocs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3996\"\u003e#3996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/b72f24ad6a2226d46aed770e18094a86117d2217\"\u003e\u003ccode\u003eb72f24a\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/0a4e0afe36504c3fb6df1e38683ea946febac9d3\"\u003e\u003ccode\u003e0a4e0af\u003c/code\u003e\u003c/a\u003e Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/15492c9156d3ab8dce05360977480510cf24fbf9\"\u003e\u003ccode\u003e15492c9\u003c/code\u003e\u003c/a\u003e Refactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/cd964ac96649df872a051835e9a52e05a5090607\"\u003e\u003ccode\u003ecd964ac\u003c/code\u003e\u003c/a\u003e Expose basic Otel classes and funtions to be importable through redis.observa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/46ab74d02ed9b15176f67edb817de83524f8145a\"\u003e\u003ccode\u003e46ab74d\u003c/code\u003e\u003c/a\u003e Fixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/26482dbaae38abdb1966d9b1c803331e2dab2053\"\u003e\u003ccode\u003e26482db\u003c/code\u003e\u003c/a\u003e Fix AttributeError in cluster metrics recording when connection is None or Cl...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/redis-py/compare/v7.3.0...v7.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `meilisearch` from 0.40.0 to 0.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/meilisearch/meilisearch-python/releases\"\u003emeilisearch's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.41.0 🐍\u003c/h2\u003e\n\u003ch2\u003e🚀 Enhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for export api (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1171\"\u003e#1171\u003c/a\u003e) \u003ca href=\"https://github.com/jawad-khan\"\u003e\u003ccode\u003e@​jawad-khan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd method to list index fields (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1199\"\u003e#1199\u003c/a\u003e) \u003ca href=\"https://github.com/awais786\"\u003e\u003ccode\u003e@​awais786\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⚙️ Maintenance/misc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd AI usage disclosure guidelines to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1196\"\u003e#1196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(ci): use setup-python version for pipenv virtualenv (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1195\"\u003e#1195\u003c/a\u003e) \u003ca href=\"https://github.com/VedantMadane\"\u003e\u003ccode\u003e@​VedantMadane\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed pipenv compatibility issue (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1194\"\u003e#1194\u003c/a\u003e) \u003ca href=\"https://github.com/jawad-khan\"\u003e\u003ccode\u003e@​jawad-khan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update tests for v1.36.0 (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1210\"\u003e#1210\u003c/a\u003e) \u003ca href=\"https://github.com/Strift\"\u003e\u003ccode\u003e@​Strift\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add async usage section linking to meilisearch-python-sdk (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1212\"\u003e#1212\u003c/a\u003e) \u003ca href=\"https://github.com/vibeyclaw\"\u003e\u003ccode\u003e@​vibeyclaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace localhost:7700 with MEILISEARCH_URL (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1213\"\u003e#1213\u003c/a\u003e) \u003ca href=\"https://github.com/Strift\"\u003e\u003ccode\u003e@​Strift\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded missing code samples (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1200\"\u003e#1200\u003c/a\u003e) \u003ca href=\"https://github.com/aznszn\"\u003e\u003ccode\u003e@​aznszn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused code samples (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1216\"\u003e#1216\u003c/a\u003e) \u003ca href=\"https://github.com/curquiza\"\u003e\u003ccode\u003e@​curquiza\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused code samples (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1217\"\u003e#1217\u003c/a\u003e) \u003ca href=\"https://github.com/curquiza\"\u003e\u003ccode\u003e@​curquiza\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump wrapt from 2.0.1 to 2.1.1 (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1215\"\u003e#1215\u003c/a\u003e) @\u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(docs): add sphinx dependencies to Pipfile dev-packages (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1214\"\u003e#1214\u003c/a\u003e) \u003ca href=\"https://github.com/vibeyclaw\"\u003e\u003ccode\u003e@​vibeyclaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Added tests and docstrings for showPerformanceDetails (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1206\"\u003e#1206\u003c/a\u003e) \u003ca href=\"https://github.com/jawad-khan\"\u003e\u003ccode\u003e@​jawad-khan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: refactor pipenv installation steps across all workflow files (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1219\"\u003e#1219\u003c/a\u003e) \u003ca href=\"https://github.com/DhavalGojiya\"\u003e\u003ccode\u003e@​DhavalGojiya\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix outdated Pipfile.lock and pipenv install inconsistencies across CI jobs (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1223\"\u003e#1223\u003c/a\u003e) \u003ca href=\"https://github.com/DhavalGojiya\"\u003e\u003ccode\u003e@​DhavalGojiya\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused code samples (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1229\"\u003e#1229\u003c/a\u003e) \u003ca href=\"https://github.com/curquiza\"\u003e\u003ccode\u003e@​curquiza\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pytest from 8.4.1 to 8.4.2 (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1151\"\u003e#1151\u003c/a\u003e) @\u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks again to \u003ca href=\"https://github.com/DhavalGojiya\"\u003e\u003ccode\u003e@​DhavalGojiya\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Strift\"\u003e\u003ccode\u003e@​Strift\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/VedantMadane\"\u003e\u003ccode\u003e@​VedantMadane\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/awais786\"\u003e\u003ccode\u003e@​awais786\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/aznszn\"\u003e\u003ccode\u003e@​aznszn\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/curquiza\"\u003e\u003ccode\u003e@​curquiza\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot], \u003ca href=\"https://github.com/jawad-khan\"\u003e\u003ccode\u003e@​jawad-khan\u003c/code\u003e\u003c/a\u003e,  \u003ca href=\"https://github.com/sanders41\"\u003e\u003ccode\u003e@​sanders41\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/vibeyclaw\"\u003e\u003ccode\u003e@​vibeyclaw\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e! 🎉\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/meilisearch/meilisearch-python/commit/bc78e1268a7099e70522b98ffdf1f9e5cd98a7ef\"\u003e\u003ccode\u003ebc78e12\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1151\"\u003e#1151\u003c/a\u003e from meilisearch/dependabot/pip/pytest-8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/meilisearch/meilisearch-python/commit/dbbe82e710a8fb771d0ca326833d2433ea983564\"...\n\n_Description has been truncated_","html_url":"https://github.com/pilotspace/pilot-space/pull/136","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pilotspace%2Fpilot-space/issues/136","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/136/packages"},{"uuid":"4297012153","node_id":"PR_kwDOQGXyZ87UA8Pi","number":17,"state":"closed","title":"chore(deps): bump the python-packages group across 1 directory with 9 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-27T16:59:30.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-20T16:00:47.000Z","updated_at":"2026-04-27T16:59:33.000Z","time_to_close":608323,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-packages","update_count":9,"packages":[{"name":"attrs","old_version":"25.4.0","new_version":"26.1.0","repository_url":"https://github.com/python-attrs/attrs"},{"name":"django","old_version":"5.2.10","new_version":"5.2.13","repository_url":"https://github.com/django/django"},{"name":"djangorestframework","old_version":"3.16.1","new_version":"3.17.1","repository_url":"https://github.com/encode/django-rest-framework"},{"name":"dependency-injector","old_version":"4.48.3","new_version":"4.49.0","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"gunicorn","old_version":"23.0.0","new_version":"25.3.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"mypy","old_version":"1.19.1","new_version":"1.20.1","repository_url":"https://github.com/python/mypy"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"django-stubs","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/typeddjango/django-stubs"},{"name":"packaging","old_version":"26.0","new_version":"26.1","repository_url":"https://github.com/pypa/packaging"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-packages group with 9 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [attrs](https://github.com/python-attrs/attrs) | `25.4.0` | `26.1.0` |\n| [django](https://github.com/django/django) | `5.2.10` | `5.2.13` |\n| [djangorestframework](https://github.com/encode/django-rest-framework) | `3.16.1` | `3.17.1` |\n| [dependency-injector](https://github.com/ets-labs/python-dependency-injector) | `4.48.3` | `4.49.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `25.3.0` |\n| [mypy](https://github.com/python/mypy) | `1.19.1` | `1.20.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [django-stubs](https://github.com/typeddjango/django-stubs) | `6.0.1` | `6.0.3` |\n| [packaging](https://github.com/pypa/packaging) | `26.0` | `26.1` |\n\n\nUpdates `attrs` from 25.4.0 to 26.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-attrs/attrs/releases\"\u003eattrs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eThe main outward change here only affects people using field transformers, but it should be a nice quality of life improvement!\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFull changelog below!\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eSpecial Thanks\u003c/h2\u003e\n\u003cp\u003eThis release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If \u003cem\u003eyou\u003c/em\u003e would like to join them, go to \u003ca href=\"https://github.com/sponsors/hynek\"\u003ehttps://github.com/sponsors/hynek\u003c/a\u003e and check out the sweet perks!\u003c/p\u003e\n\u003ch3\u003eAbove and Beyond\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://www.variomedia.de/\"\u003eVariomedia AG\u003c/a\u003e (@\u003ca href=\"https://github.com/variomedia\"\u003evariomedia\u003c/a\u003e), \u003ca href=\"https://www.tidelift.com/\"\u003eTidelift\u003c/a\u003e (@\u003ca href=\"https://github.com/tidelift\"\u003etidelift\u003c/a\u003e), \u003ca href=\"https://kraken.tech\"\u003eKraken Tech\u003c/a\u003e (@\u003ca href=\"https://github.com/kraken-tech\"\u003ekraken-tech\u003c/a\u003e), \u003ca href=\"https://privacy-solutions.org\"\u003ePrivacy Solutions GmbH\u003c/a\u003e (@\u003ca href=\"https://github.com/privacy-solutions\"\u003eprivacy-solutions\u003c/a\u003e), \u003ca href=\"http://filepreviews.io/\"\u003eFilePreviews\u003c/a\u003e (@\u003ca href=\"https://github.com/filepreviews\"\u003efilepreviews\u003c/a\u003e), \u003ca href=\"https://ecosyste.ms\"\u003eEcosystems\u003c/a\u003e (@\u003ca href=\"https://github.com/ecosyste-ms\"\u003eecosyste-ms\u003c/a\u003e), \u003ca href=\"https://www.lambdatest.com\"\u003eTestMu AI Open Source Office (Formerly LambdaTest)\u003c/a\u003e (@\u003ca href=\"https://github.com/LambdaTest-Inc\"\u003eLambdaTest-Inc\u003c/a\u003e), \u003ca href=\"https://doist.com/\"\u003eDoist\u003c/a\u003e (@\u003ca href=\"https://github.com/Doist\"\u003eDoist\u003c/a\u003e), Daniel Fortunov (@\u003ca href=\"https://github.com/asqui\"\u003easqui\u003c/a\u003e), and Kevin P. Fleming (@\u003ca href=\"https://github.com/kpfleming\"\u003ekpfleming\u003c/a\u003e).\u003c/p\u003e\n\u003ch3\u003eMaintenance Sustainers\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://buttondown.com\"\u003eButtondown\u003c/a\u003e (@\u003ca href=\"https://github.com/buttondown\"\u003ebuttondown\u003c/a\u003e), \u003ca href=\"https://christopher.xyz\"\u003eChristopher Dignam\u003c/a\u003e (@\u003ca href=\"https://github.com/chdsbd\"\u003echdsbd\u003c/a\u003e), Magnus Watn (@\u003ca href=\"https://github.com/magnuswatn\"\u003emagnuswatn\u003c/a\u003e), \u003ca href=\"https://cra.mr\"\u003eDavid Cramer\u003c/a\u003e (@\u003ca href=\"https://github.com/dcramer\"\u003edcramer\u003c/a\u003e), \u003ca href=\"https://rivolaks.com\"\u003eRivo Laks\u003c/a\u003e (@\u003ca href=\"https://github.com/rivol\"\u003erivol\u003c/a\u003e), \u003ca href=\"https://polar.sh\"\u003ePolar\u003c/a\u003e (@\u003ca href=\"https://github.com/polarsource\"\u003epolarsource\u003c/a\u003e), \u003ca href=\"https://miketheman.dev\"\u003eMike Fiedler\u003c/a\u003e (@\u003ca href=\"https://github.com/miketheman\"\u003emiketheman\u003c/a\u003e), Duncan Hill (@\u003ca href=\"https://github.com/cricalix\"\u003ecricalix\u003c/a\u003e), Colin Marquardt (@\u003ca href=\"https://github.com/cmarqu\"\u003ecmarqu\u003c/a\u003e), \u003ca href=\"https://blog.journeythatcounts.nl\"\u003ePieter Swinkels\u003c/a\u003e (@\u003ca href=\"https://github.com/swinkels\"\u003eswinkels\u003c/a\u003e), Nick Libertini (@\u003ca href=\"https://github.com/libertininick\"\u003elibertininick\u003c/a\u003e), \u003ca href=\"https://bmdphd.info/\"\u003eBrian M. Dennis\u003c/a\u003e (@\u003ca href=\"https://github.com/crossjam\"\u003ecrossjam\u003c/a\u003e), Celebrity News AG (@\u003ca href=\"https://github.com/celebritynewsag\"\u003ecelebritynewsag\u003c/a\u003e), \u003ca href=\"https://westervelt.com\"\u003eThe Westervelt Company\u003c/a\u003e (@\u003ca href=\"https://github.com/westerveltco\"\u003ewesterveltco\u003c/a\u003e), \u003ca href=\"https://slafs.net\"\u003eSławomir Ehlert\u003c/a\u003e (@\u003ca href=\"https://github.com/slafs\"\u003eslafs\u003c/a\u003e), Mostafa Khalil (@\u003ca href=\"https://github.com/khadrawy\"\u003ekhadrawy\u003c/a\u003e), \u003ca href=\"https://fmularczyk.pl\"\u003eFilip Mularczyk\u003c/a\u003e (@\u003ca href=\"https://github.com/mukiblejlok\"\u003emukiblejlok\u003c/a\u003e), Thomas Klinger (@\u003ca href=\"https://github.com/thmsklngr\"\u003ethmsklngr\u003c/a\u003e), \u003ca href=\"https://poehlmann.io\"\u003eAndreas Poehlmann\u003c/a\u003e (@\u003ca href=\"https://github.com/ap--\"\u003eap--\u003c/a\u003e), \u003ca href=\"https://atbigelow.com\"\u003eAugust Trapper Bigelow\u003c/a\u003e (@\u003ca href=\"https://github.com/atbigelow\"\u003eatbigelow\u003c/a\u003e), \u003ca href=\"https://noumenal.es/\"\u003eCarlton Gibson\u003c/a\u003e (@\u003ca href=\"https://github.com/carltongibson\"\u003ecarltongibson\u003c/a\u003e), and \u003ca href=\"https://roboflow.com\"\u003eRoboflow\u003c/a\u003e (@\u003ca href=\"https://github.com/roboflow\"\u003eroboflow\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eFull Changelog\u003c/h2\u003e\n\u003ch3\u003eBackwards-incompatible Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eField aliases are now resolved \u003cem\u003ebefore\u003c/em\u003e calling \u003ccode\u003efield_transformer\u003c/code\u003e, so transformers receive fully populated \u003ccode\u003eAttribute\u003c/code\u003e objects with usable \u003ccode\u003ealias\u003c/code\u003e values instead of \u003ccode\u003eNone\u003c/code\u003e. The new \u003ccode\u003eAttribute.alias_is_default\u003c/code\u003e flag indicates whether the alias was auto-generated (\u003ccode\u003eTrue\u003c/code\u003e) or explicitly set by the user (\u003ccode\u003eFalse\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1509\"\u003e#1509\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix type annotations for \u003ccode\u003eattrs.validators.optional()\u003c/code\u003e, so it no longer rejects tuples with more than one validator. \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1496\"\u003e#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eattrs.validators.disabled()\u003c/code\u003e contextmanager can now be nested. \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1513\"\u003e#1513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFrozen classes can set \u003ccode\u003eon_setattr=attrs.setters.NO_OP\u003c/code\u003e in addition to \u003ccode\u003eNone\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1515\"\u003e#1515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIt's now possible to pass \u003cem\u003eattrs\u003c/em\u003e \u003cstrong\u003einstances\u003c/strong\u003e in addition to \u003cem\u003eattrs\u003c/em\u003e \u003cstrong\u003eclasses\u003c/strong\u003e to \u003ccode\u003eattrs.fields()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1529\"\u003e#1529\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eThis release contains contributions from \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/DavidCEllis\"\u003e\u003ccode\u003e@​DavidCEllis\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/finite-state-machine\"\u003e\u003ccode\u003e@​finite-state-machine\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/hynek\"\u003e\u003ccode\u003e@​hynek\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/vstinner\"\u003e\u003ccode\u003e@​vstinner\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eArtifact Attestations\u003c/h2\u003e\n\u003cp\u003eYou can verify this release's \u003ca href=\"https://docs.github.com/en/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds\"\u003eartifact attestions\u003c/a\u003e using \u003ca href=\"https://cli.github.com\"\u003eGitHub's CLI tool\u003c/a\u003e by downloading the sdist and wheel from \u003ca href=\"https://pypi.org/project/attrs\"\u003ePyPI\u003c/a\u003e and running:\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003e$ gh attestation verify --owner python-attrs attrs-26.1.0.tar.gz\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-attrs/attrs/blob/main/CHANGELOG.md\"\u003eattrs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/python-attrs/attrs/tree/26.1.0\"\u003e26.1.0\u003c/a\u003e - 2026-03-19\u003c/h2\u003e\n\u003ch3\u003eBackwards-incompatible Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eField aliases are now resolved \u003cem\u003ebefore\u003c/em\u003e calling \u003ccode\u003efield_transformer\u003c/code\u003e, so transformers receive fully populated \u003ccode\u003eAttribute\u003c/code\u003e objects with usable \u003ccode\u003ealias\u003c/code\u003e values instead of \u003ccode\u003eNone\u003c/code\u003e.\nThe new \u003ccode\u003eAttribute.alias_is_default\u003c/code\u003e flag indicates whether the alias was auto-generated (\u003ccode\u003eTrue\u003c/code\u003e) or explicitly set by the user (\u003ccode\u003eFalse\u003c/code\u003e).\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1509\"\u003e#1509\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix type annotations for \u003ccode\u003eattrs.validators.optional()\u003c/code\u003e, so it no longer rejects tuples with more than one validator.\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1496\"\u003e#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eattrs.validators.disabled()\u003c/code\u003e contextmanager can now be nested.\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1513\"\u003e#1513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFrozen classes can set \u003ccode\u003eon_setattr=attrs.setters.NO_OP\u003c/code\u003e in addition to \u003ccode\u003eNone\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1515\"\u003e#1515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIt's now possible to pass \u003cem\u003eattrs\u003c/em\u003e \u003cstrong\u003einstances\u003c/strong\u003e in addition to \u003cem\u003eattrs\u003c/em\u003e \u003cstrong\u003eclasses\u003c/strong\u003e to \u003ccode\u003eattrs.fields()\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1529\"\u003e#1529\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/7bfc49e9b22d5ba25b6e429524c3d49fee27cb36\"\u003e\u003ccode\u003e7bfc49e\u003c/code\u003e\u003c/a\u003e Prepare 26.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/31e02869da10824b492c378c1dc87ccc720ee5ad\"\u003e\u003ccode\u003e31e0286\u003c/code\u003e\u003c/a\u003e Update test_validators.py for Python 3.15a7 (\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1530\"\u003e#1530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/48b8611c27779811d161200e17de8da24aae7feb\"\u003e\u003ccode\u003e48b8611\u003c/code\u003e\u003c/a\u003e Add instance support to attrs.fields() (\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1529\"\u003e#1529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/3a68d4913221abc6f8ad3be50937f7ae49300a98\"\u003e\u003ccode\u003e3a68d49\u003c/code\u003e\u003c/a\u003e dev: document missing git tags failure mode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/a572c3a4c558a8b9b48cf989fcd956ab1a279439\"\u003e\u003ccode\u003ea572c3a\u003c/code\u003e\u003c/a\u003e Allow field(on_setattr=NO_OP) on frozen classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/af9c510912ce604a94896cc35c27368d5baf6ae6\"\u003e\u003ccode\u003eaf9c510\u003c/code\u003e\u003c/a\u003e Fix validators.disabled() to save/restore state on nesting (\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1513\"\u003e#1513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/ab7f8b2f4c0f747d5b1575247ce35e5adaad182e\"\u003e\u003ccode\u003eab7f8b2\u003c/code\u003e\u003c/a\u003e update dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/ce89f5d11feb0805da9ed10bb165238cc959f1bb\"\u003e\u003ccode\u003ece89f5d\u003c/code\u003e\u003c/a\u003e Fix message passing in frozen errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/eccd966d80aff5196efc959316961cfa780439f9\"\u003e\u003ccode\u003eeccd966\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eoptional\u003c/code\u003e validator to accept tuples of len \u0026gt; 1 (\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1496\"\u003e#1496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/e92fe52dfe1eb07167e6473724c5a8ada978add0\"\u003e\u003ccode\u003ee92fe52\u003c/code\u003e\u003c/a\u003e policies: tighten screws (\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1528\"\u003e#1528\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-attrs/attrs/compare/25.4.0...26.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django` from 5.2.10 to 5.2.13\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/7d831a9eeb88a6bf484af7b56fe29596bdbf09a6\"\u003e\u003ccode\u003e7d831a9\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.13 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/49e1e2b548999a35a025f9682598946bda9e9921\"\u003e\u003ccode\u003e49e1e2b\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2026-33034 -- Enforced DATA_UPLOAD_MAX_MEMORY_SIZE on body ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/0b467893bdde69a2d23034338e76021a1e4f4322\"\u003e\u003ccode\u003e0b46789\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2026-33033 -- Mitigated potential DoS in MultiPartParser.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/397c22048244db2cd4bb78f570e6c72a3967bf36\"\u003e\u003ccode\u003e397c220\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2026-4292 -- Disallowed instance creation via ModelAdmin.li...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/60ffa957c427e10a2eb0fc80d1674a8a8ccc30b0\"\u003e\u003ccode\u003e60ffa95\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2026-4277 -- Checked add permissions in GenericInlineModelA...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1cc2a7612f97c109b92415fc11ba9bd0501852e0\"\u003e\u003ccode\u003e1cc2a76\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2026-3902 -- Ignored headers with underscores in ASGIRequest.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/2a8a76a002774e3f6bc10188594593e0104ceb66\"\u003e\u003ccode\u003e2a8a76a\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.13 and 4.2.30.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/90924f5276de80a74ffbc51126ed81595dd2157a\"\u003e\u003ccode\u003e90924f5\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped black to 26.3.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/0ee44c674cf61efbca2056c40f3e4f2335aaeee6\"\u003e\u003ccode\u003e0ee44c6\u003c/code\u003e\u003c/a\u003e [5.2.x] Applied Black's 2026 stable style.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/89b4d944f7e331e267aa1030e295f29355b78172\"\u003e\u003ccode\u003e89b4d94\u003c/code\u003e\u003c/a\u003e [5.2.x] Combined scripts confirm_release.sh and test_new_version.sh into veri...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.2.10...5.2.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangorestframework` from 3.16.1 to 3.17.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/encode/django-rest-framework/releases\"\u003edjangorestframework's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.17.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eHTMLFormRenderer\u003c/code\u003e with empty \u003ccode\u003edatetime\u003c/code\u003e values by \u003ca href=\"https://github.com/p-r-a-v-i-n\"\u003e\u003ccode\u003e@​p-r-a-v-i-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9928\"\u003eencode/django-rest-framework#9928\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/django-rest-framework/compare/3.17.0...3.17.1\"\u003ehttps://github.com/encode/django-rest-framework/compare/3.17.0...3.17.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.17.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9781\"\u003eencode/django-rest-framework#9781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop deprecated coreapi support by \u003ca href=\"https://github.com/browniebroke\"\u003e\u003ccode\u003e@​browniebroke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9895\"\u003eencode/django-rest-framework#9895\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd ability to specify output format for \u003ccode\u003eDurationField\u003c/code\u003e by \u003ca href=\"https://github.com/sevdog\"\u003e\u003ccode\u003e@​sevdog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/8532\"\u003eencode/django-rest-framework#8532\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing decorators: \u003ccode\u003e@versioning_class()\u003c/code\u003e, \u003ccode\u003e@content_negotiation_class()\u003c/code\u003e, \u003ccode\u003e@metadata_class()\u003c/code\u003e for function-based views by \u003ca href=\"https://github.com/qqii\"\u003e\u003ccode\u003e@​qqii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9719\"\u003eencode/django-rest-framework#9719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9780\"\u003eencode/django-rest-framework#9780\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eviolation_error_code\u003c/code\u003e and \u003ccode\u003eviolation_error_message\u003c/code\u003e from \u003ccode\u003eUniqueConstraint\u003c/code\u003e in \u003ccode\u003eUniqueTogetherValidator\u003c/code\u003e by \u003ca href=\"https://github.com/s-aleshin\"\u003e\u003ccode\u003e@​s-aleshin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9766\"\u003eencode/django-rest-framework#9766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eipaddress\u003c/code\u003e objects in \u003ccode\u003eJSONEncoder\u003c/code\u003e by \u003ca href=\"https://github.com/corenting\"\u003e\u003ccode\u003e@​corenting\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9087\"\u003eencode/django-rest-framework#9087\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd optional support to serialize \u003ccode\u003eBigInteger\u003c/code\u003e to string by \u003ca href=\"https://github.com/HoodyH\"\u003e\u003ccode\u003e@​HoodyH\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9775\"\u003eencode/django-rest-framework#9775\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django 6.0 support by \u003ca href=\"https://github.com/MehrazRumman\"\u003e\u003ccode\u003e@​MehrazRumman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9819\"\u003eencode/django-rest-framework#9819\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent small risk of \u003ccode\u003eToken\u003c/code\u003e overwrite by \u003ca href=\"https://github.com/mahdirahimi1999\"\u003e\u003ccode\u003e@​mahdirahimi1999\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9754\"\u003eencode/django-rest-framework#9754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eUniqueTogetherValidator\u003c/code\u003e validation when condition references a read-only field by \u003ca href=\"https://github.com/ticosax\"\u003e\u003ccode\u003e@​ticosax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9764\"\u003eencode/django-rest-framework#9764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix validation on many to many field when \u003ccode\u003edefault=None\u003c/code\u003e by \u003ca href=\"https://github.com/Genarito\"\u003e\u003ccode\u003e@​Genarito\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9790\"\u003eencode/django-rest-framework#9790\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix invalid SPDX license expression in \u003ccode\u003e__init__.py\u003c/code\u003e by \u003ca href=\"https://github.com/TheFunctionalGuy\"\u003e\u003ccode\u003e@​TheFunctionalGuy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9799\"\u003eencode/django-rest-framework#9799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eHTMLFormRenderer\u003c/code\u003e to ensure a valid \u003ccode\u003edatetime-local\u003c/code\u003e format by \u003ca href=\"https://github.com/mgaligniana\"\u003e\u003ccode\u003e@​mgaligniana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9365\"\u003eencode/django-rest-framework#9365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix mutable default arguments in OrderingFilter methods by \u003ca href=\"https://github.com/killerdevildog\"\u003e\u003ccode\u003e@​killerdevildog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9742\"\u003eencode/django-rest-framework#9742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate TokenAdmin to respect USERNAME_FIELD of the user model by \u003ca href=\"https://github.com/m000\"\u003e\u003ccode\u003e@​m000\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9836\"\u003eencode/django-rest-framework#9836\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve ordering in \u003ccode\u003eMultipleChoiceField\u003c/code\u003e by \u003ca href=\"https://github.com/fbozhang\"\u003e\u003ccode\u003e@​fbozhang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9735\"\u003eencode/django-rest-framework#9735\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate French translation by \u003ca href=\"https://github.com/SebCorbin\"\u003e\u003ccode\u003e@​SebCorbin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9770\"\u003eencode/django-rest-framework#9770\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Brazilian Portuguese translations by \u003ca href=\"https://github.com/JVPinheiroReis\"\u003e\u003ccode\u003e@​JVPinheiroReis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9828\"\u003eencode/django-rest-framework#9828\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix and improve French translations by \u003ca href=\"https://github.com/deronnax\"\u003e\u003ccode\u003e@​deronnax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9896\"\u003eencode/django-rest-framework#9896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing Russian translation by \u003ca href=\"https://github.com/minorytanaka\"\u003e\u003ccode\u003e@​minorytanaka\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9903\"\u003eencode/django-rest-framework#9903\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate packaging to \u003ccode\u003epyproject.toml\u003c/code\u003e by \u003ca href=\"https://github.com/deronnax\"\u003e\u003ccode\u003e@​deronnax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9056\"\u003eencode/django-rest-framework#9056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove package data rules from \u003ccode\u003eMANIFEST.in\u003c/code\u003e to \u003ccode\u003epyproject.toml\u003c/code\u003e by \u003ca href=\"https://github.com/p-r-a-v-i-n\"\u003e\u003ccode\u003e@​p-r-a-v-i-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9825\"\u003eencode/django-rest-framework#9825\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet up release workflow with trusted publisher by \u003ca href=\"https://github.com/browniebroke\"\u003e\u003ccode\u003e@​browniebroke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9852\"\u003eencode/django-rest-framework#9852\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor token generation to use the \u003ccode\u003esecrets\u003c/code\u003e module by \u003ca href=\"https://github.com/mahdirahimi1999\"\u003e\u003ccode\u003e@​mahdirahimi1999\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9760\"\u003eencode/django-rest-framework#9760\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd validation for decorator out-of-order with \u003ccode\u003e@api_view\u003c/code\u003e by \u003ca href=\"https://github.com/kernelshard\"\u003e\u003ccode\u003e@​kernelshard\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9821\"\u003eencode/django-rest-framework#9821\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSwitch to mkdocs material theme for documentation by \u003ca href=\"https://github.com/browniebroke\"\u003e\u003ccode\u003e@​browniebroke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9849\"\u003eencode/django-rest-framework#9849\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/khaledsukkar2\"\u003e\u003ccode\u003e@​khaledsukkar2\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9717\"\u003eencode/django-rest-framework#9717\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/22e231cf2f77b4cfe929de875d958b93916b1a8b\"\u003e\u003ccode\u003e22e231c\u003c/code\u003e\u003c/a\u003e Prepare bug fix release 3.17.1 (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9931\"\u003e#9931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/8e99b53db7b122417580ec2993ac6776b4d858d5\"\u003e\u003ccode\u003e8e99b53\u003c/code\u003e\u003c/a\u003e Add condition to skip pushed tags from forks (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9924\"\u003e#9924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/c0407dee6ef8a5603c2d5d34373d724be7b98188\"\u003e\u003ccode\u003ec0407de\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eHTMLFormRenderer\u003c/code\u003e with empty \u003ccode\u003edatetime\u003c/code\u003e values (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9928\"\u003e#9928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/30d58a75eeef7097f97cdc9f171d2ec741b36d30\"\u003e\u003ccode\u003e30d58a7\u003c/code\u003e\u003c/a\u003e Fix the book sizing in the documentation (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9926\"\u003e#9926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/6f03b79c057c470524b12e9ac46bc2bb384570e0\"\u003e\u003ccode\u003e6f03b79\u003c/code\u003e\u003c/a\u003e Tweak order of changes in release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/021ab5664b085594876032cf062c1220bc1ca03c\"\u003e\u003ccode\u003e021ab56\u003c/code\u003e\u003c/a\u003e Bump version and update release notes for 3.17.0 (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9921\"\u003e#9921\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/19ebad70ae560e3f83c0e30af6be7c7df3b5aeec\"\u003e\u003ccode\u003e19ebad7\u003c/code\u003e\u003c/a\u003e Bump mkdocs-material[imaging] from 9.7.4 to 9.7.5 (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9923\"\u003e#9923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/f222c55d8a498c9770f2795c6cd34fedffaf043c\"\u003e\u003ccode\u003ef222c55\u003c/code\u003e\u003c/a\u003e Correct requires-python key in pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/7e7de6fceee3ad2e20b0dd93b119b6b00eadd797\"\u003e\u003ccode\u003e7e7de6f\u003c/code\u003e\u003c/a\u003e Remove code fences from release checklist\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/c599d309490fe59ae385954ad544a64b58abffd2\"\u003e\u003ccode\u003ec599d30\u003c/code\u003e\u003c/a\u003e Update release process\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/encode/django-rest-framework/compare/3.16.1...3.17.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dependency-injector` from 4.48.3 to 4.49.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.49.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.14 support\u003c/li\u003e\n\u003cli\u003eFix Pydantic v2 deprecation warning triggering on settings class import (fixes \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix grammar in Declarative Container documentation by \u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing warn_unresolved parameter to WiringConfiguration in containers.pyi by \u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd keep_cache argument to Container.wire typings by \u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for some type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/943\"\u003eets-labs/python-dependency-injector#943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for remaining type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/953\"\u003eets-labs/python-dependency-injector#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd provided()\u003c!-- raw HTML omitted --\u003e.call *args, **kwargs arguments \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/945\"\u003e#945\u003c/a\u003e by \u003ca href=\"https://github.com/pavalso\"\u003e\u003ccode\u003e@​pavalso\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/946\"\u003eets-labs/python-dependency-injector#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd context local resource by \u003ca href=\"https://github.com/elina-israyelyan\"\u003e\u003ccode\u003e@​elina-israyelyan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/931\"\u003eets-labs/python-dependency-injector#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI/CD to \u003ccode\u003eactions/checkout@v6\u003c/code\u003e, \u003ccode\u003eactions/setup-python@v6\u003c/code\u003e, \u003ccode\u003eactions/download-artifact@v8\u003c/code\u003e, \u003ccode\u003eactions/upload-artifact@v7\u003c/code\u003e and \u003ccode\u003epypa/cibuildwheel@v3.4.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdd dependabot config for GitHub Actions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pavalso\"\u003e\u003ccode\u003e@​pavalso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/946\"\u003eets-labs/python-dependency-injector#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elina-israyelyan\"\u003e\u003ccode\u003e@​elina-israyelyan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/931\"\u003eets-labs/python-dependency-injector#931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5f7aa1c337c77e782e1e927eb4b1e41a60912604\"\u003e\u003ccode\u003e5f7aa1c\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5863d99bd5e9b2d22c15f3815b23973317a453ee\"\u003e\u003ccode\u003e5863d99\u003c/code\u003e\u003c/a\u003e Add .github/dependabot.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/000c670c7e655cc7db423a76c6b877d185f706ce\"\u003e\u003ccode\u003e000c670\u003c/code\u003e\u003c/a\u003e Upgrade GHA actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/931084070a5304a26a925961375a5afcc3c3a38b\"\u003e\u003ccode\u003e9310840\u003c/code\u003e\u003c/a\u003e Fix iscoroutinefunction import for older Pythons\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/05a5e7d8701a1df8cb88ad55d187ba88cd6ffbe8\"\u003e\u003ccode\u003e05a5e7d\u003c/code\u003e\u003c/a\u003e Fix get_annotations import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/58700d9dbd3420a559330666edfb477418997ff9\"\u003e\u003ccode\u003e58700d9\u003c/code\u003e\u003c/a\u003e Use from import statements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/0e25331738716d5bfa5562d42617deb6ad65d23c\"\u003e\u003ccode\u003e0e25331\u003c/code\u003e\u003c/a\u003e Do not build nogil wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1696986aa7698120a7e2aab2355d93e178fc36f9\"\u003e\u003ccode\u003e1696986\u003c/code\u003e\u003c/a\u003e Python 3.14 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/525935137e81355657e44b454c0f7b19b69fdc7b\"\u003e\u003ccode\u003e5259351\u003c/code\u003e\u003c/a\u003e Add context local resource (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/931\"\u003e#931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/76d5932b7340719eac2b737bd444daacc7bb0682\"\u003e\u003ccode\u003e76d5932\u003c/code\u003e\u003c/a\u003e Add provided()\u0026lt;func\u0026gt;.call *args, **kwargs arguments (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/946\"\u003e#946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 23.0.0 to 25.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eGunicorn 25.3.0\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eHTTP/2 ASGI Body Duplication\u003c/strong\u003e: Fix request body being received twice in HTTP/2\nASGI requests, causing JSON parsing errors with \u0026quot;Extra data\u0026quot; messages\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3558\"\u003e#3558\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eASGI Chunked EOF Handling\u003c/strong\u003e: Add \u003ccode\u003efinish()\u003c/code\u003e method to callback parser to handle\nchunked encoding edge case where connection closes before final CRLF after zero-chunk\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eHTTP/2 Documentation\u003c/strong\u003e: Fix \u003ccode\u003ehttp_protocols\u003c/code\u003e examples to use comma-separated string\ninstead of list syntax (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3561\"\u003e#3561\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eChunked Encoding\u003c/strong\u003e: Reject chunk extensions containing bare CR bytes per RFC 9112\n(\u003ca href=\"https://github.com/benoitc/gunicorn/discussions/3556\"\u003e#3556\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eRequest Line Limit\u003c/strong\u003e: Fix \u003ccode\u003e--limit-request-line 0\u003c/code\u003e to mean unlimited as documented,\ninstead of using default maximum. Works with both Python and fast C parser.\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3563\"\u003e#3563\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Parser Header Validation\u003c/strong\u003e: Add security checks per RFC 9110/9112:\n\u003cul\u003e\n\u003cli\u003eReject duplicate Content-Length headers\u003c/li\u003e\n\u003cli\u003eReject requests with both Content-Length and Transfer-Encoding\u003c/li\u003e\n\u003cli\u003eReject chunked transfer encoding in HTTP/1.0\u003c/li\u003e\n\u003cli\u003eReject stacked chunked encoding\u003c/li\u003e\n\u003cli\u003eValidate Transfer-Encoding values\u003c/li\u003e\n\u003cli\u003eStrict chunk size validation\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFast HTTP Parser\u003c/strong\u003e: Update to gunicorn_h1c \u0026gt;= 0.6.3 for \u003ccode\u003easgi_headers\u003c/code\u003e property\nand \u003ccode\u003eInvalidChunkExtension\u003c/code\u003e validation for bare CR rejection\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eASGI PROXY Protocol\u003c/strong\u003e: Add PROXY protocol v1/v2 support to callback parser\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eDocker Images\u003c/strong\u003e: Update to Python 3.14\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eGunicorn 25.2.0\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFast HTTP Parser (gunicorn_h1c 0.4.1)\u003c/strong\u003e: Integrate new exception types and limit parameters from gunicorn_h1c 0.4.1 for both WSGI and ASGI workers\n\u003cul\u003e\n\u003cli\u003eRequires gunicorn_h1c \u0026gt;= 0.4.1 for \u003ccode\u003ehttp_parser='fast'\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFalls back to Python parser in \u003ccode\u003eauto\u003c/code\u003e mode if version not met\u003c/li\u003e\n\u003cli\u003eProper HTTP status codes for limit errors (414, 431)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003euWSGI Async Workers\u003c/strong\u003e: Fix \u003ccode\u003eInvalidUWSGIHeader: incomplete header\u003c/code\u003e error when using gevent or gthread workers with uwsgi protocol behind nginx. (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3552\"\u003e#3552\u003c/a\u003e, [PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3554\"\u003e#3554\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3554\"\u003ebenoitc/gunicorn#3554\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/9bce72cfc3985aba7e0c47bf3c00fa681b2847e4\"\u003e\u003ccode\u003e9bce72c\u003c/code\u003e\u003c/a\u003e Update changelog with missing 25.3.0 changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/2a15fdb93ab136e5776692d620852f481c89d610\"\u003e\u003ccode\u003e2a15fdb\u003c/code\u003e\u003c/a\u003e Fix pylint isinstance-second-argument-not-valid-type warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/8d08aaa2cbd38fdfa2ca6fb94094c47b9c16730a\"\u003e\u003ccode\u003e8d08aaa\u003c/code\u003e\u003c/a\u003e Fix --limit-request-line 0 to mean unlimited\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/d40a37454736e40916eb51e35895f1c22c0cd34a\"\u003e\u003ccode\u003ed40a374\u003c/code\u003e\u003c/a\u003e Fix pytest-asyncio configuration and treq_asgi hex escapes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/da8bd4850ac0f2d0df215390dad88392eb538d74\"\u003e\u003ccode\u003eda8bd48\u003c/code\u003e\u003c/a\u003e Remove unused AsyncRequest class\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/b00f125755ec3f509a3e82dc5568d9f2d8bddba7\"\u003e\u003ccode\u003eb00f125\u003c/code\u003e\u003c/a\u003e Integrate gunicorn_h1c 0.6.3 with InvalidChunkExtension support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/bdb2ebd5a4913fff1e92800f3763e4a879526d3e\"\u003e\u003ccode\u003ebdb2ebd\u003c/code\u003e\u003c/a\u003e Reject chunk extensions with bare CR bytes (RFC 9112)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/7057fc9f89f0ce4d9ac01a12ea2f39768fb32be6\"\u003e\u003ccode\u003e7057fc9\u003c/code\u003e\u003c/a\u003e Fix http_protocols documentation to use string syntax\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/d43acb8fe0910b6669c163e2f4a439e464eab012\"\u003e\u003ccode\u003ed43acb8\u003c/code\u003e\u003c/a\u003e Update to gunicorn_h1c \u0026gt;= 0.6.2 for asgi_headers support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/cbd27e82a238cb1326336c6aa4b8ae058e2c9ff9\"\u003e\u003ccode\u003ecbd27e8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3559\"\u003e#3559\u003c/a\u003e from benleembruggen/fix/http2-asgi-body-duplication\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/23.0.0...25.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.19.1 to 1.20.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.20.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways disable sync in SQLite cache (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21184\"\u003e21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTemporarily skip few base64 tests (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21193\"\u003e21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u003ccode\u003edict.__or__\u003c/code\u003e typeshed change (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21186\"\u003e21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing for match case with variadic tuples (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21192\"\u003e21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing \u003ccode\u003etype[T]\u003c/code\u003e in type calls (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21174\"\u003e21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression for catching empty tuple in except (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21153\"\u003e21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix reachability for frozenset and dict view narrowing (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21151\"\u003e21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing with chained comparison (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21150\"\u003e21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing to unreachable at module level (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21144\"\u003e21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow dangerous identity comparisons to \u003ccode\u003eAny\u003c/code\u003e typed variables (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21142\"\u003e21142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--warn-unused-config\u003c/code\u003e should not be a strict flag (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21139\"\u003e21139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eAaron Wieczorek\u003c/li\u003e\n\u003cli\u003eAdam Turner\u003c/li\u003e\n\u003cli\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003easce\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrent Westbrook\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChris Burroughs\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eColin Watson\u003c/li\u003e\n\u003cli\u003eDonghoon Nam\u003c/li\u003e\n\u003cli\u003eE. M. Bray\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eGeorge Ogden\u003c/li\u003e\n\u003cli\u003egetzze\u003c/li\u003e\n\u003cli\u003egrayjk\u003c/li\u003e\n\u003cli\u003eGregor Riepl\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilliard\u003c/li\u003e\n\u003cli\u003eJames Le Cuirot\u003c/li\u003e\n\u003cli\u003eJeremy Nimmer\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eKai (Kazuya Ito)\u003c/li\u003e\n\u003cli\u003ekaushal trivedi\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eLukas Geiger\u003c/li\u003e\n\u003cli\u003eŁukasz Langa\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael R. Crusoe\u003c/li\u003e\n\u003cli\u003emichaelm-openai\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c60e8bfcb5910974b577e443725c475e0485d269\"\u003e\u003ccode\u003ec60e8bf\u003c/code\u003e\u003c/a\u003e Bump version to 1.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/842e4927738264949e969df0c2ee285a13594d06\"\u003e\u003ccode\u003e842e492\u003c/code\u003e\u003c/a\u003e Always disable sync in SQLite cache (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21184\"\u003e#21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/e82a046356b242441fcd55c8cf922c7904ef311a\"\u003e\u003ccode\u003ee82a046\u003c/code\u003e\u003c/a\u003e Temporarily skip few base64 tests (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21193\"\u003e#21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f7fa418b6504e20c1277947e03a6db2f6d03e13e\"\u003e\u003ccode\u003ef7fa418\u003c/code\u003e\u003c/a\u003e Revert dict.\u003cstrong\u003eor\u003c/strong\u003e typeshed change (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21186\"\u003e#21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a2e8ee1afd5bbda26ad301496685295b1a7997a3\"\u003e\u003ccode\u003ea2e8ee1\u003c/code\u003e\u003c/a\u003e Fix narrowing for match case with variadic tuples (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21192\"\u003e#21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/521f88f510c2065132909928815f08502097ceea\"\u003e\u003ccode\u003e521f88f\u003c/code\u003e\u003c/a\u003e Avoid narrowing type[T] in type calls (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21174\"\u003e#21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4876e9186b927fe4777609fc9932752dcfb7047\"\u003e\u003ccode\u003ea4876e9\u003c/code\u003e\u003c/a\u003e Fix regression for catching empty tuple in except (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21153\"\u003e#21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/6fccffcac0c8c24034d4f2b262ca7e5564ba9375\"\u003e\u003ccode\u003e6fccffc\u003c/code\u003e\u003c/a\u003e Fix reachability for frozenset and dict view narrowing (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21151\"\u003e#21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/de50419dc84a66f0e8606308023f81a44dee54f3\"\u003e\u003ccode\u003ede50419\u003c/code\u003e\u003c/a\u003e Fix narrowing with chained comparison (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21150\"\u003e#21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/eafcf18ff1d83923c0f749cf3056962df63ed693\"\u003e\u003ccode\u003eeafcf18\u003c/code\u003e\u003c/a\u003e Avoid narrowing to unreachable at module level (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21144\"\u003e#21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.19.1...v1.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.2 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-stubs` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/59e66661e1e2e62501d4bb76b62c6acfc11cfaa1\"\u003e\u003ccode\u003e59e6666\u003c/code\u003e\u003c/a\u003e Version 6.0.3 release (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3319\"\u003e#3319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/e6049b483a50540456ede6f454b9343eae634a1f\"\u003e\u003ccode\u003ee6049b4\u003c/code\u003e\u003c/a\u003e Fix attname column (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3318\"\u003e#3318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/1ac68b440b14cc3ac913462addb6fd8c46b20460\"\u003e\u003ccode\u003e1ac68b4\u003c/code\u003e\u003c/a\u003e Update mypy to 1.20.1 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3316\"\u003e#3316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/134e3915da2d248d8ca0ebc438591b893fcd6fc8\"\u003e\u003ccode\u003e134e391\u003c/code\u003e\u003c/a\u003e Update dependency ty to v0.0.30 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3315\"\u003e#3315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/f6653b98157975d02b7b93a027f0b74834b280c4\"\u003e\u003ccode\u003ef6653b9\u003c/code\u003e\u003c/a\u003e Make Func generic over output_field (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3311\"\u003e#3311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/56a4d5290861f32edfd222076669d6dd4642d9b7\"\u003e\u003ccode\u003e56a4d52\u003c/code\u003e\u003c/a\u003e Update dependency pyrefly to v0.61.0 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3312\"\u003e#3312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/6dd79432cc6979519f8006bc7e7384d6eedcdb7e\"\u003e\u003ccode\u003e6dd7943\u003c/code\u003e\u003c/a\u003e Type-check (a)get_or_create and (a)update_or_create kwargs (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3309\"\u003e#3309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/af3e8a819804e24f047393f6e89717cce34f3744\"\u003e\u003ccode\u003eaf3e8a8\u003c/code\u003e\u003c/a\u003e Update actions/cache digest to 27d5ce7 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3301\"\u003e#3301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/d97823e76ba4d61fd709f9f782c6656f021a4834\"\u003e\u003ccode\u003ed97823e\u003c/code\u003e\u003c/a\u003e Bump pytest-mypy-plugin (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3299\"\u003e#3299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/649ff18b31a5a35db271021bdf475613e6f2630a\"\u003e\u003ccode\u003e649ff18\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3303\"\u003e#3303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/typeddjango/django-stubs/compare/6.0.1...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 26.0 to 26.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cdel\u003ePEP 783: add handling for Emscripten wheel tags by \u003ca href=\"https://github.com/hoodmane\"\u003e\u003ccode\u003e@​hoodmane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/804\"\u003epypa/packaging#804\u003c/a\u003e\u003c/del\u003e (old name used in implementation, will be fixed in next release)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1099\"\u003epypa/packaging#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1065\"\u003epypa/packaging#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/944\"\u003epypa/packaging#944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1071\"\u003epypa/packaging#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1119\"\u003epypa/packaging#1119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1110\"\u003epypa/packaging#1110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1068\"\u003epypa/packaging#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1146\"\u003epypa/packaging#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1078\"\u003epypa/packaging#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1150\"\u003epypa/packaging#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026lt;V.postN\u003c/code\u003e to match spec by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1140\"\u003epypa/packaging#1140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNarrow exclusion of post-releases for \u003ccode\u003e\u0026gt;V\u003c/code\u003e to match spec by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1141\"\u003epypa/packaging#1141\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eformat_full_version\u003c/code\u003e to \u003ccode\u003e_format_full_version\u003c/code\u003e to make it visibly private by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1125\"\u003epypa/packaging#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestrict local version to ASCII by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1102\"\u003epypa/packaging#1102\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePylock (PEP 751) updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd pylock \u003ccode\u003eselect\u003c/code\u003e function by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1092\"\u003epypa/packaging#1092\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument pylock \u003ccode\u003eselect()\u003c/code\u003e method and \u003ccode\u003ePylockSelectError\u003c/code\u003e by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1153\"\u003epypa/packaging#1153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003efilename\u003c/code\u003e property to \u003ccode\u003ePackageSdist\u003c/code\u003e and \u003ccode\u003ePackageWheel\u003c/code\u003e, more validation by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1095\"\u003epypa/packaging#1095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGive preference to path over url by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1128\"\u003epypa/packaging#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate name/version consistency in file names by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1114\"\u003epypa/packaging#1114\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e\u0026gt;\u003c/code\u003e comparison for versions with dev+local segments by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1097\"\u003epypa/packaging#1097\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrect self-comparison for \u003ccode\u003eInfinityType\u003c/code\u003e and \u003ccode\u003eNegativeInfinityType\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1093\"\u003epypa/packaging#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCanonicalize when deduplicating specifiers in \u003ccode\u003eSpecifierSet\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1109\"\u003epypa/packaging#1109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix charset error message formatting by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1121\"\u003epypa/packaging#1121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle the \u003ccode\u003ekey\u003c/code\u003e parameter in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e when specifiers are empty and prerelease is \u003ccode\u003eFalse\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1096\"\u003epypa/packaging#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStandardize inner components of \u003ccode\u003erepr\u003c/code\u003e output by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1090\"\u003epypa/packaging#1090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003e===\u003c/code\u003e uses original string, not normalized, when available by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1124\"\u003epypa/packaging#1124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate int-max-str-digits \u003ccode\u003eValueError\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1155\"\u003epypa/packaging#1155\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fast path for parsing simple versions (digits and dots only) by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1082\"\u003epypa/packaging#1082\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fast path for \u003ccode\u003eVersion\u003c/code\u003e to \u003ccode\u003eVersion\u003c/code\u003e comparison by skipping \u003ccode\u003e_key\u003c/code\u003e property by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1083\"\u003epypa/packaging#1083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eVersion\u003c/code\u003e hash value in dedicated slot by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1118\"\u003epypa/packaging#1118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOverhaul \u003ccode\u003e_cmpkey\u003c/code\u003e to remove use of custom objects by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1116\"\u003epypa/packaging#1116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip \u003ccode\u003e__replace__\u003c/code\u003e in Specifier comparison if not needed by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1081\"\u003epypa/packaging#1081\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifierSet\u003c/code\u003e use \u003ccode\u003etuple\u003c/code\u003e instead of \u003ccode\u003efrozenset\u003c/code\u003e for \u003ccode\u003e_specs\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1108\"\u003epypa/packaging#1108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeed up complex \u003ccode\u003eSpecifierSet\u003c/code\u003e filtering by implementing cost-based ordering by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1105\"\u003epypa/packaging#1105\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.1 - 2026-04-14\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFeatures:\n\u003cul\u003e\n\u003cli\u003ePEP 783: add handling for Emscripten wheel tags in (:pull:\u003ccode\u003e804\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag in (:pull:\u003ccode\u003e1099\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package in (:pull:\u003ccode\u003e1065\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module in (:pull:\u003ccode\u003e944\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module in (:pull:\u003ccode\u003e1071\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) in (:pull:\u003ccode\u003e1119\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags in (:pull:\u003ccode\u003e1110\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e in (:pull:\u003ccode\u003e1068\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's in (:pull:\u003ccode\u003e1146\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e in (:pull:\u003ccode\u003e1078\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e in (:pull:\u003ccode\u003e1150\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026amp;lt;V.postN\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1140\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNarrow exclusion of post-releases for \u003ccode\u003e\u0026amp;gt;V\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1141\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eformat_full_version\u003c/code\u003e to \u003ccode\u003e_format_full_version\u003c/code\u003e to make it visibly private in (:pull:\u003ccode\u003e1125\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict local version to ASCII in (:pull:\u003ccode\u003e1102\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePylock (PEP 751) updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd pylock \u003ccode\u003eselect\u003c/code\u003e function in (:pull:\u003ccode\u003e1092\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDocument pylock \u003ccode\u003eselect()\u003c/code\u003e method and \u003ccode\u003ePylockSelectError\u003c/code\u003e in (:pull:\u003ccode\u003e1153\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003efilename\u003c/code\u003e property to \u003ccode\u003ePackageSdist\u003c/code\u003e and \u003ccode\u003ePackageWheel\u003c/code\u003e, more validation in (:pull:\u003ccode\u003e1095\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eGive preference to path over url in (:pull:\u003ccode\u003e1128\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eValidate name/version consistency in file names in (:pull:\u003ccode\u003e1114\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e\u0026amp;gt;\u003c/code\u003e comparison for versions with dev+local segments in (:pull:\u003ccode\u003e1097\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix incorrect self-comparison for \u003ccode\u003eInfinityType\u003c/code\u003e and \u003ccode\u003eNegativeInfinityType\u003c/code\u003e in (:pull:\u003ccode\u003e1093\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalize when deduplicating specifiers in \u003ccode\u003eSpecifierSet\u003c/code\u003e in (:pull:\u003ccode\u003e1109\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix charset error message formatting in (:pull:\u003ccode\u003e1121\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eHandle the \u003ccode\u003ekey\u003c/code\u003e parameter in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e when specifiers are empty and prerelease is \u003ccode\u003eFalse\u003c/code\u003e in (:pull:\u003ccode\u003e1096\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eStandardize inner components of \u003ccode\u003erepr\u003c/code\u003e output in (:pull:\u003ccode\u003e1090\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003e===\u003c/code\u003e uses original string, not normalized, when available in (:pull:\u003ccode\u003e1124\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate int-max-str-digits \u003ccode\u003eValueError\u003c/code\u003e in (:pull:\u003ccode\u003e1155\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fast path for parsing simple versions (digits and dots only) in (:pull:\u003ccode\u003e1082\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd fast path for \u003ccode\u003eVersion\u003c/code\u003e to \u003ccode\u003eVersion\u003c/code\u003e comparison by skipping \u003ccode\u003e_key\u003c/code\u003e property in (:pull:\u003ccode\u003e1083\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eVersion\u003c/code\u003e hash value in dedicated slot in (:pull:\u003ccode\u003e1118\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOverhaul \u003ccode\u003e_cmpkey\u003c/code\u003e to remove use of custom objects in (:pull:\u003ccode\u003e1116\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSkip \u003ccode\u003e__replace__\u003c/code\u003e in Specifier comparison if not needed in (:pull:\u003ccode\u003e1081\u003c/code\u003e)\u003cbr /\u003e\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/c1a88a3e035e8bfe47dbc957f4a2493e8a7b4f3c\"\u003e\u003ccode\u003ec1a88a3\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/702c25ecc297054f9597acda987a75dd6833acf5\"\u003e\u003ccode\u003e702c25e\u003c/code\u003e\u003c/a\u003e docs: update changelog for 26.1 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1156\"\u003e#1156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3f4f5d46808f51709aba8341d4121f20752b3235\"\u003e\u003ccode\u003e3f4f5d4\u003c/code\u003e\u003c/a\u003e Implement \u003ccode\u003eis_unsatisfiable\u003c/code\u003e on \u003ccode\u003eSpecifierSet\u003c/code\u003e using ranges (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1119\"\u003e#1119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/06c6555f44f0f7b84459c876375c5b1d52ee7fef\"\u003e\u003ccode\u003e06c6555\u003c/code\u003e\u003c/a\u003e Propagate int-max-str-digits ValueError (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1155\"\u003e#1155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/905c90c1eb8c77dede11899194ca4b0f5eaf188d\"\u003e\u003ccode\u003e905c90c\u003c/code\u003e\u003c/a\u003e feat: option to validate compressed tag set sort order in `parse_wheel_filena...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/af0026cff97a8f28d165d6ac4afb58b2cdc8ffc5\"\u003e\u003ccode\u003eaf0026c\u003c/code\u003e\u003c/a\u003e docs(pylock): document select() method and PylockSelectError (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1153\"\u003e#1153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/668da8662a112036e4850b68980790cb2d10dae9\"\u003e\u003ccode\u003e668da86\u003c/code\u003e\u003c/a\u003e Rename format_full_version to _format_full_version to make it visibly private...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/f294d529e2634798a98fd9cee6708307a5c1792c\"\u003e\u003ccode\u003ef294d52\u003c/code\u003e\u003c...\n\n_Description has been truncated_","html_url":"https://github.com/masterivanic/Bank-service/pull/17","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/masterivanic%2FBank-service/issues/17","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/17/packages"},{"uuid":"4292559575","node_id":"PR_kwDORMFN3c7TyjfF","number":134,"state":"closed","title":"chore(deps): bump the python-minor-patch group across 1 directory with 35 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-27T01:18:27.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-20T01:20:03.000Z","updated_at":"2026-04-27T01:18:29.000Z","time_to_close":604704,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-minor-patch","update_count":35,"packages":[{"name":"fastapi","old_version":"0.135.1","new_version":"0.136.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.42.0","new_version":"0.44.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"python-multipart","old_version":"0.0.22","new_version":"0.0.26","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"sqlalchemy","old_version":"2.0.48","new_version":"2.0.49","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.2","repository_url":"https://github.com/pydantic/pydantic"},{"name":"redis","old_version":"7.3.0","new_version":"7.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"supabase","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"postgrest","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"storage3","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"anthropic","old_version":"0.85.0","new_version":"0.96.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"openai","old_version":"2.28.0","new_version":"2.32.0","repository_url":"https://github.com/openai/openai-python"},{"name":"claude-agent-sdk","old_version":"0.1.48","new_version":"0.1.63","repository_url":"https://github.com/anthropics/claude-agent-sdk-python"},{"name":"dependency-injector","old_version":"4.48.3","new_version":"4.49.0","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"orjson","old_version":"3.11.7","new_version":"3.11.8","repository_url":"https://github.com/ijl/orjson"},{"name":"cryptography","old_version":"46.0.5","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"ua-parser","old_version":"1.0.1","new_version":"1.0.2","repository_url":"https://github.com/ua-parser/uap-python"},{"name":"anyio","old_version":"4.12.1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"charset-normalizer","old_version":"3.4.6","new_version":"3.4.7","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.1","new_version":"8.3.2","repository_url":"https://github.com/pallets/click"},{"name":"docstring-parser","old_version":"0.17.0","new_version":"0.18.0","repository_url":"https://github.com/rr-/docstring_parser"},{"name":"fsspec","old_version":"2026.2.0","new_version":"2026.3.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"greenlet","old_version":"3.3.2","new_version":"3.4.0","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"jiter","old_version":"0.13.0","new_version":"0.14.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"mako","old_version":"1.3.10","new_version":"1.3.11","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"mcp","old_version":"1.26.0","new_version":"1.27.0","repository_url":"https://github.com/modelcontextprotocol/python-sdk"},{"name":"numpy","old_version":"2.4.3","new_version":"2.4.4","repository_url":"https://github.com/numpy/numpy"},{"name":"packaging","old_version":"26.0","new_version":"26.1","repository_url":"https://github.com/pypa/packaging"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.46.2","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.19.2","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyroaring","old_version":"1.0.3","new_version":"1.0.4","repository_url":"https://github.com/Ezibenroc/PyRoaringBitMap"},{"name":"realtime","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"sse-starlette","old_version":"3.3.2","new_version":"3.3.4","repository_url":"https://github.com/sysid/sse-starlette"},{"name":"supabase-auth","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"supabase-functions","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 35 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.135.1` | `0.136.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.42.0` | `0.44.0` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.22` | `0.0.26` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.48` | `2.0.49` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.2` |\n| [redis](https://github.com/redis/redis-py) | `7.3.0` | `7.4.0` |\n| [supabase](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [postgrest](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [storage3](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.85.0` | `0.96.0` |\n| [openai](https://github.com/openai/openai-python) | `2.28.0` | `2.32.0` |\n| [claude-agent-sdk](https://github.com/anthropics/claude-agent-sdk-python) | `0.1.48` | `0.1.63` |\n| [dependency-injector](https://github.com/ets-labs/python-dependency-injector) | `4.48.3` | `4.49.0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.7` | `3.11.8` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.5` | `46.0.7` |\n| [ua-parser](https://github.com/ua-parser/uap-python) | `1.0.1` | `1.0.2` |\n| [anyio](https://github.com/agronholm/anyio) | `4.12.1` | `4.13.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.6` | `3.4.7` |\n| [click](https://github.com/pallets/click) | `8.3.1` | `8.3.2` |\n| [docstring-parser](https://github.com/rr-/docstring_parser) | `0.17.0` | `0.18.0` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.2.0` | `2026.3.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.3.2` | `3.4.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.13.0` | `0.14.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.3.11` |\n| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `1.26.0` | `1.27.0` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.3` | `2.4.4` |\n| [packaging](https://github.com/pypa/packaging) | `26.0` | `26.1` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.5` | `2.46.2` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.2` | `2.20.0` |\n| [pyroaring](https://github.com/Ezibenroc/PyRoaringBitMap) | `1.0.3` | `1.0.4` |\n| [realtime](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [sse-starlette](https://github.com/sysid/sse-starlette) | `3.3.2` | `3.3.4` |\n| [supabase-auth](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [supabase-functions](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n\n\nUpdates `fastapi` from 0.135.1 to 0.136.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.136.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Support free-threaded Python 3.14t. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15149\"\u003e#15149\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15363\"\u003e#15363\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump cryptography from 46.0.5 to 46.0.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15314\"\u003e#15314\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15309\"\u003e#15309\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15293\"\u003e#15293\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.3\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for \u003ccode\u003e@app.vibe()\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15280\"\u003e#15280\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eNew docs: \u003ca href=\"https://fastapi.tiangolo.com/advanced/vibe/\"\u003eVibe Coding\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✏️ Fix typo for \u003ccode\u003eclient_secret\u003c/code\u003e in OAuth2 form docstrings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14946\"\u003e#14946\u003c/a\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👥 Update FastAPI People - Experts. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15279\"\u003e#15279\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump orjson from 3.11.7 to 3.11.8. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15276\"\u003e#15276\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.0 to 0.15.8. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15277\"\u003e#15277\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI GitHub topic repositories. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15274\"\u003e#15274\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastmcp from 2.14.5 to 3.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15267\"\u003e#15267\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI People - Contributors and Translators. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15270\"\u003e#15270\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump requests from 2.32.5 to 2.33.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15228\"\u003e#15228\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Add ty check to \u003ccode\u003elint.sh\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15136\"\u003e#15136\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.2\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Increase lower bound to \u003ccode\u003epydantic \u0026gt;=2.9.0.\u003c/code\u003e and fix the test suite. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15139\"\u003e#15139\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add missing last release notes dates. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15202\"\u003e#15202\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update docs for contributors and team members regarding translation PRs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15200\"\u003e#15200\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Fix code blocks in reference docs overflowing table width. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15094\"\u003e#15094\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix duplicated words in docstrings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15116\"\u003e#15116\u003c/a\u003e by \u003ca href=\"https://github.com/AhsanSheraz\"\u003e\u003ccode\u003e@​AhsanSheraz\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add docs for \u003ccode\u003epyproject.toml\u003c/code\u003e with \u003ccode\u003eentrypoint\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15075\"\u003e#15075\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update links in docs to no longer use the classes external-link and internal-link. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15061\"\u003e#15061\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/708606c982cf35718cb2214c0bb9261cf548f042\"\u003e\u003ccode\u003e708606c\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/13be6a3a0f12d3f36c286196ef555dd51dc09edb\"\u003e\u003ccode\u003e13be6a3\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b264878d71b2dc0e9e0f90ef15459d4302a7f9c\"\u003e\u003ccode\u003e4b26487\u003c/code\u003e\u003c/a\u003e ⬆️ Support free-threaded Python 3.14t (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15149\"\u003e#15149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/f796c346a8537876de43729ff1ca1409d4648893\"\u003e\u003ccode\u003ef796c34\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.135.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/09d1d1cb7073b3c7bd1f58fcf6faefa9b2c29de4\"\u003e\u003ccode\u003e09d1d1c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ae4e45c5cc20a1e1503fbcab2369821d188feb09\"\u003e\u003ccode\u003eae4e45c\u003c/code\u003e\u003c/a\u003e 🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15363\"\u003e#15363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9653034b8d459607a4b7f761e6c23a6f287fa5fa\"\u003e\u003ccode\u003e9653034\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6f9a102faf071dbfa812a3af88d7d309d2ded4a6\"\u003e\u003ccode\u003e6f9a102\u003c/code\u003e\u003c/a\u003e ⬆ Bump cryptography from 46.0.5 to 46.0.7 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15314\"\u003e#15314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/eba8942c81dbf990d25fbae34e6601bdbc21e74b\"\u003e\u003ccode\u003eeba8942\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/77d080caf850b8af5c0f467389edf03c057c7697\"\u003e\u003ccode\u003e77d080c\u003c/code\u003e\u003c/a\u003e ⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15309\"\u003e#15309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.135.1...0.136.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.42.0 to 0.44.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.44.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2888\"\u003eKludex/uvicorn#2888\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.43.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.44.0 (April 6, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2888\"\u003e#2888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.43.0 (April 3, 2026)\u003c/h2\u003e\n\u003cp\u003eYou can quit Uvicorn now. We heard you, \u003ca href=\"https://github.com/pamelafox\"\u003e\u003ccode\u003e@​pamelafox\u003c/code\u003e\u003c/a\u003e - all 47 of your Ctrl+C's (thanks for flagging it, and thanks to \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e for the fix 🙏). \u003ca href=\"https://x.com/pamelafox/status/2039097686155227623\"\u003eSee the tweet\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/edb54c43c0321c0b41eee1473f3f4cf145e8927f\"\u003e\u003ccode\u003eedb54c4\u003c/code\u003e\u003c/a\u003e Version 0.44.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2890\"\u003e#2890\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/029be08867fe899cde6fd31a3ba75fffca7bd9ae\"\u003e\u003ccode\u003e029be08\u003c/code\u003e\u003c/a\u003e Implement websocket keepalive pings for websockets-sansio (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2888\"\u003e#2888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/8d397c73191b49c6d5280098d7c09dbe474e00bf\"\u003e\u003ccode\u003e8d397c7\u003c/code\u003e\u003c/a\u003e Version 0.43.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2885\"\u003e#2885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/587042d68ff6c813ec0d8cfafaa820ebe7229d23\"\u003e\u003ccode\u003e587042d\u003c/code\u003e\u003c/a\u003e 🐛 Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for s...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/c9a75fb67b2e969253a41ef4ad447e013eee879e\"\u003e\u003ccode\u003ec9a75fb\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2878\"\u003e#2878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/84fd578224e36766efb056585cb6cc5171270089\"\u003e\u003ccode\u003e84fd578\u003c/code\u003e\u003c/a\u003e chore(deps): bump pygments from 2.19.2 to 2.20.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2877\"\u003e#2877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/cd52d34b55d898180a65cfc01a6a88aac54c65c3\"\u003e\u003ccode\u003ecd52d34\u003c/code\u003e\u003c/a\u003e Use native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5211880320b2e99a532eb121808039404da234ab\"\u003e\u003ccode\u003e5211880\u003c/code\u003e\u003c/a\u003e Drop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/1cb8e747e2817ee46a4c0d44139e46b3b1f8fab6\"\u003e\u003ccode\u003e1cb8e74\u003c/code\u003e\u003c/a\u003e Add websocket 500 fallback header test (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2874\"\u003e#2874\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/28efbb24bd590f1f943cbc2bf84f197268a8c6d8\"\u003e\u003ccode\u003e28efbb2\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump cryptography from 46.0.5 to 46.0.6 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2873\"\u003e#2873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.42.0...0.44.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.22 to 0.0.26\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.26\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before first multipart boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003eKludex/python-multipart#262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003eKludex/python-multipart#259\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply Apache-2.0 properly by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003eKludex/python-multipart#247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003eKludex/python-multipart#252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003eKludex/python-multipart#230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003eKludex/python-multipart#254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove custom FormParser classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003eKludex/python-multipart#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003eKludex/python-multipart#258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd MIME content type info to File by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003eKludex/python-multipart#143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003eKludex/python-multipart#244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003eKludex/python-multipart#196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e by \u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.26 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before the first multipart boundary more efficiently \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003e#262\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing multipart boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003e#259\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.25 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd MIME content type info to \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003e#143\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003e#258\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRemove custom \u003ccode\u003eFormParser\u003c/code\u003e classes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003e#257\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003e#254\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003e#230\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003e#252\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eApply Apache-2.0 properly \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003e#247\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.24 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003e#244\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.23 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003e#196\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003e#229\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003e#227\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/28f47859b4a40c2e11e02dc514b2e9743ceedd2e\"\u003e\u003ccode\u003e28f4785\u003c/code\u003e\u003c/a\u003e Version 0.0.26 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d4452a78bbde94995dd3c0d1b4aff3610a5c472f\"\u003e\u003ccode\u003ed4452a7\u003c/code\u003e\u003c/a\u003e Silently discard epilogue data after the closing boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/259\"\u003e#259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6a7b76dd2653d99d8e5981d7ff09a4a047750b37\"\u003e\u003ccode\u003e6a7b76d\u003c/code\u003e\u003c/a\u003e Skip preamble before first multipart boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/4addb60350fc843f77a1502f14247db91930b3bf\"\u003e\u003ccode\u003e4addb60\u003c/code\u003e\u003c/a\u003e Version 0.0.25 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d3a4698e0dc16cbd85f98076b2ebf9b696cd3604\"\u003e\u003ccode\u003ed3a4698\u003c/code\u003e\u003c/a\u003e Add MIME content type info to File (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/143\"\u003e#143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/9a1ecbd074801fcd3911266f3f4442181d10ab92\"\u003e\u003ccode\u003e9a1ecbd\u003c/code\u003e\u003c/a\u003e Handle CTE values case-insensitively (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/258\"\u003e#258\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/ef2a0b94f95676ea6a7b77d2252b09f5797cb8ed\"\u003e\u003ccode\u003eef2a0b9\u003c/code\u003e\u003c/a\u003e Remove custom FormParser classes (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/257\"\u003e#257\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/3a757d7cf209e654eb17cf7b7af868eed469f680\"\u003e\u003ccode\u003e3a757d7\u003c/code\u003e\u003c/a\u003e Ignore local Claude state (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/255\"\u003e#255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/55e739617db7c40e2cd04c5ad8c7acf2ed0a1d19\"\u003e\u003ccode\u003e55e7396\u003c/code\u003e\u003c/a\u003e fuzz: Add cifuzz (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/186\"\u003e#186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d6d1d111e7de9ce3d3f8623fe5f5e4201c0a5fd1\"\u003e\u003ccode\u003ed6d1d11\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/249\"\u003e#249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.26\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.48 to 2.0.49\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.49\u003c/h1\u003e\n\u003cp\u003eReleased: April 3, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where \u003ccode\u003e_orm.Session.get()\u003c/code\u003e would bypass the identity map\nand emit unnecessary SQL when \u003ccode\u003ewith_for_update=False\u003c/code\u003e was passed,\nrather than treating it equivalently to the default of \u003ccode\u003eNone\u003c/code\u003e.\nPull request courtesy of Joshua Swanson.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13176\"\u003e#13176\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where chained \u003ccode\u003e_orm.joinedload()\u003c/code\u003e options would not be\napplied correctly when the final relationship in the chain is declared on a\nbase mapper and accessed through a subclass mapper in a\n\u003ccode\u003e_orm.with_polymorphic()\u003c/code\u003e query. The path registry now correctly\ncomputes the natural path when a property declared on a base class is\naccessed through a path containing a subclass mapper, ensuring the loader\noption can be located during query compilation.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13193\"\u003e#13193\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using \u003ccode\u003e_orm.Load.options()\u003c/code\u003e to apply a chained loader\noption such as \u003ccode\u003e_orm.joinedload()\u003c/code\u003e or \u003ccode\u003e_orm.selectinload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot generate the necessary clauses for the polymorphic subclasses. The\npolymorphic loading strategy is now correctly propagated when using a call\nsuch as \u003ccode\u003ejoinedload(A.b).options(joinedload(B.c.of_type(poly)))\u003c/code\u003e to match\nthe behavior of direct chaining e.g.\n\u003ccode\u003ejoinedload(A.b).joinedload(B.c.of_type(poly))\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13202\"\u003e#13202\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using chained loader options such as\n\u003ccode\u003e_orm.selectinload()\u003c/code\u003e after \u003ccode\u003e_orm.joinedload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot properly apply the chained loader option. The loader option is now\ncorrectly applied when using a call such as\n\u003ccode\u003ejoinedload(A.b.of_type(poly)).selectinload(poly.SubClass.c)\u003c/code\u003e to eagerly\nload related objects.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13209\"\u003e#13209\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etyping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[typing] [bug]\u003c/strong\u003e Fixed a typing issue where the typed members of :data:\u003ccode\u003e.func\u003c/code\u003e would return\nthe appropriate class of the same name, however this creates an issue for\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13062\"\u003e#13062\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.0\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0b3 2026-03-31\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.13.2/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13062\"\u003e#13062\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/17a35e371bdff348c0690651d324c91fc7c9ff9e\"\u003e\u003ccode\u003e17a35e3\u003c/code\u003e\u003c/a\u003e Update jiter to v0.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13064\"\u003e#13064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/feea402b23fa23774669908c4e08a61ba1e4238e\"\u003e\u003ccode\u003efeea402\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003esimulation\u003c/code\u003e mode in Codspeed CI (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13063\"\u003e#13063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/671c9b0d4d3f9b2f1b95ca32ac85cb69e824e0bc\"\u003e\u003ccode\u003e671c9b0\u003c/code\u003e\u003c/a\u003e Add basic benchmarks for model equality (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13061\"\u003e#13061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 7.3.0 to 7.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError in cluster metrics recording when connection is None or ClusterNode object instance is used to extract the connection info (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3999\"\u003e#3999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords might leak in plain text logs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3998\"\u003e#3998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cp\u003e-Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpose basic Otel classes and functions to be importable through redis.observability to match the examples in the readthedocs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3996\"\u003e#3996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/b72f24ad6a2226d46aed770e18094a86117d2217\"\u003e\u003ccode\u003eb72f24a\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/0a4e0afe36504c3fb6df1e38683ea946febac9d3\"\u003e\u003ccode\u003e0a4e0af\u003c/code\u003e\u003c/a\u003e Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/15492c9156d3ab8dce05360977480510cf24fbf9\"\u003e\u003ccode\u003e15492c9\u003c/code\u003e\u003c/a\u003e Refactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/cd964ac96649df872a051835e9a52e05a5090607\"\u003e\u003ccode\u003ecd964ac\u003c/code\u003e\u003c/a\u003e Expose basic Otel classes and funtions to be importable through redis.observa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/46ab74d02ed9b15176f67edb817de83524f8145a\"\u003e\u003ccode\u003e46ab74d\u003c/code\u003e\u003c/a\u003e Fixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/26482dbaae38abdb1966d9b1c803331e2dab2053\"\u003e\u003ccode\u003e26482db\u003c/code\u003e\u003c/a\u003e Fix AttributeError in cluster metrics recording when connection is None or Cl...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/redis-py/compare/v7.3.0...v7.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `supabase` from 2.28.2 to 2.28.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003esupabase's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.28.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md\"\u003esupabase's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/deac3232f6bdd242f60b46c7a8922e010524ca53\"\u003e\u003ccode\u003edeac323\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.3 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003e\u003ccode\u003ec7f8f13\u003c/code\u003e\u003c/a\u003e fix(postgrest): fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `postgrest` from 2.28.2 to 2.28.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003epostgrest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.28.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md\"\u003epostgrest's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/deac3232f6bdd242f60b46c7a8922e010524ca53\"\u003e\u003ccode\u003edeac323\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.3 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003e\u003ccode\u003ec7f8f13\u003c/code\u003e\u003c/a\u003e fix(postgrest): fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `storage3` from 2.28.2 to 2.28.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003estorage3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.28.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md\"\u003estorage3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/deac3232f6bdd242f60b46c7a8922e010524ca53\"\u003e\u003ccode\u003edeac323\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.3 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003e\u003ccode\u003ec7f8f13\u003c/code\u003e\u003c/a\u003e fix(postgrest): fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anthropic` from 0.85.0 to 0.96.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/releases\"\u003eanthropic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.96.0\u003c/h2\u003e\n\u003ch2\u003e0.96.0 (2026-04-16)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.95.0...v0.96.0\"\u003ev0.95.0...v0.96.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add claude-opus-4-7, token budgets and user_profiles (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0aa2a0d4388a39984134d1dfc2bcbd6b206f7184\"\u003e0aa2a0d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e remove release-doctor workflow (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1d9add35d0bd4c71f2bca3b0d494d1d0a348817a\"\u003e1d9add3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.95.0\u003c/h2\u003e\n\u003ch2\u003e0.95.0 (2026-04-14)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.1...v0.95.0\"\u003ev0.94.1...v0.95.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e mark Sonnet and Opus 4 as deprecated (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0c1e7736394585dd021b53c1f87383c4fae29a6b\"\u003e0c1e773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebedrock:\u003c/strong\u003e use auth header for mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1644\"\u003e#1644\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3b93090e121861462f21a7621484cda66c139997\"\u003e3b93090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.94.1\u003c/h2\u003e\n\u003ch2\u003e0.94.1 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.0...v0.94.1\"\u003ev0.94.0...v0.94.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e add missing events (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c6a06d80b7e87bc034bd6ade950c735da02a0be3\"\u003ec6a06d8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.94.0\u003c/h2\u003e\n\u003ch2\u003e0.94.0 (2026-04-10)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.93.0...v0.94.0\"\u003ev0.93.0...v0.94.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evertex eu region (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1658\"\u003e#1658\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b7e157d85f50b2900ddf896e8e80882dd7311bfd\"\u003eb7e157d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/837b25bb6262186a5bae92aa70eb73c3cf8c90af\"\u003e837b25b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/blob/main/CHANGELOG.md\"\u003eanthropic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.96.0 (2026-04-16)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.95.0...v0.96.0\"\u003ev0.95.0...v0.96.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add claude-opus-4-7, token budgets and user_profiles (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0aa2a0d4388a39984134d1dfc2bcbd6b206f7184\"\u003e0aa2a0d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e remove release-doctor workflow (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1d9add35d0bd4c71f2bca3b0d494d1d0a348817a\"\u003e1d9add3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.95.0 (2026-04-14)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.1...v0.95.0\"\u003ev0.94.1...v0.95.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e mark Sonnet and Opus 4 as deprecated (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0c1e7736394585dd021b53c1f87383c4fae29a6b\"\u003e0c1e773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebedrock:\u003c/strong\u003e use auth header for mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1644\"\u003e#1644\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3b93090e121861462f21a7621484cda66c139997\"\u003e3b93090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.94.1 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.0...v0.94.1\"\u003ev0.94.0...v0.94.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e add missing events (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c6a06d80b7e87bc034bd6ade950c735da02a0be3\"\u003ec6a06d8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.94.0 (2026-04-10)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.93.0...v0.94.0\"\u003ev0.93.0...v0.94.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evertex eu region (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1658\"\u003e#1658\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b7e157d85f50b2900ddf896e8e80882dd7311bfd\"\u003eb7e157d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/837b25bb6262186a5bae92aa70eb73c3cf8c90af\"\u003e837b25b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimprove examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/48089fdb788500d00718b9d4ae24cd34e5e91beb\"\u003e48089fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0f3c28b973026d135f91f38c4ad82ae2b1131522\"\u003e0f3c28b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.93.0 (2026-04-09)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/78de297e71bacbe6acf4d3b420edcaad90ce1045\"\u003e\u003ccode\u003e78de297\u003c/code\u003e\u003c/a\u003e release: 0.96.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/dc0c79294528932c8fb4b27d6c0c24a0198d2c0a\"\u003e\u003ccode\u003edc0c792\u003c/code\u003e\u003c/a\u003e feat(api): add claude-opus-4-7, token budgets and user_profiles\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/71eff1fee942056bf54219e9953615be143f67ec\"\u003e\u003ccode\u003e71eff1f\u003c/code\u003e\u003c/a\u003e chore(ci): remove release-doctor workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1056685678c8e52cb2492e43b75d695ab91a4b51\"\u003e\u003ccode\u003e1056685\u003c/code\u003e\u003c/a\u003e release: 0.95.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/9741185561f6ebf289051a9eec136cf4ce7846a6\"\u003e\u003ccode\u003e9741185\u003c/code\u003e\u003c/a\u003e feat(bedrock): use auth header for mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1644\"\u003e#1644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/ef22dbbd4a2005fd4e1b8e24cfb562c35c688313\"\u003e\u003ccode\u003eef22dbb\u003c/code\u003e\u003c/a\u003e feat(api): mark Sonnet and Opus 4 as deprecated\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/6d9b98672387c1f4f1f4a8fc02ea6d0e45a8362b\"\u003e\u003ccode\u003e6d9b986\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/47c48a9eee1b6b34b7b87569c4481d3d89c5bc33\"\u003e\u003ccode\u003e47c48a9\u003c/code\u003e\u003c/a\u003e release: 0.94.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/49bab64536c113302653510ed6a639b34ade1af2\"\u003e\u003ccode\u003e49bab64\u003c/code\u003e\u003c/a\u003e fix(streaming): add missing events\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7b03b0fc0b103eaba7732fc5ae54fc86c963839a\"\u003e\u003ccode\u003e7b03b0f\u003c/code\u003e\u003c/a\u003e release: 0.94.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.85.0...v0.96.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.28.0 to 2.32.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.32.0\u003c/h2\u003e\n\u003ch2\u003e2.32.0 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.31.0...v2.32.0\"\u003ev2.31.0...v2.32.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add detail to InputFileContent (\u003ca href=\"https://github.com/openai/openai-python/commit/60de21d1fcfbcadea0d9b8d884c73c9dc49d14ff\"\u003e60de21d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add OAuthErrorCode type (\u003ca href=\"https://github.com/openai/openai-python/commit/0c8d2c3b44242c9139dc554896ea489b56e236b8\"\u003e0c8d2c3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add event handler implementation for websockets (\u003ca href=\"https://github.com/openai/openai-python/commit/0280d0568f706684ecbf0aabf3575cdcb7fd22d5\"\u003e0280d05\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e allow enqueuing to websockets even when not connected (\u003ca href=\"https://github.com/openai/openai-python/commit/67aa20e69bc0e4a3b7694327c808606bfa24a966\"\u003e67aa20e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e support reconnection in websockets (\u003ca href=\"https://github.com/openai/openai-python/commit/eb72a953ea9dc5beec3eef537be6eb32292c3f65\"\u003eeb72a95\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/openai/openai-python/commit/c0c2ecd0f6b64fa5fafda6134bb06995b143a2cf\"\u003ec0c2ecd\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimprove examples (\u003ca href=\"https://github.com/openai/openai-python/commit/84712fa0f094b53151a0fe6ac85aa98018b2a7e2\"\u003e84712fa\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.31.0\u003c/h2\u003e\n\u003ch2\u003e2.31.0 (2026-04-08)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.30.0...v2.31.0\"\u003ev2.30.0...v2.31.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add phase field to conversations message (\u003ca href=\"https://github.com/openai/openai-python/commit/3e5834efb39b24e019a29dc54d890c67d18cbb54\"\u003e3e5834e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add web_search_call.results to ResponseIncludable type (\u003ca href=\"https://github.com/openai/openai-python/commit/ffd8741dd38609a5af0159ceb800d8ddba7925f8\"\u003effd8741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add support for short-lived tokens (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/1608\"\u003e#1608\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/22fe7228d4990c197cd721b3ad7931ad05cca5dd\"\u003e22fe722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e support sending raw data over websockets (\u003ca href=\"https://github.com/openai/openai-python/commit/f1bc52ef641dfca6fdf2a5b00ce3b09bff2552f5\"\u003ef1bc52e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e implement indices array format for query and form serialization (\u003ca href=\"https://github.com/openai/openai-python/commit/49194cfa711328216ff131d6f65c9298822a7c51\"\u003e49194cf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e preserve hardcoded query params when merging with user params (\u003ca href=\"https://github.com/openai/openai-python/commit/92e109c3d9569a942e1919e75977dc13fa015f9a\"\u003e92e109c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e remove web_search_call.results from ResponseIncludable (\u003ca href=\"https://github.com/openai/openai-python/commit/d3cc40165cd86015833d15167cc7712b4102f932\"\u003ed3cc401\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.20.1 (\u003ca href=\"https://github.com/openai/openai-python/commit/d60e2eea7f6916540cd4ba901dceb07051119da4\"\u003ed60e2ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.20.2 (\u003ca href=\"https://github.com/openai/openai-python/commit/6508d474332d4e82d9615c0a9a77379f9b5e4412\"\u003e6508d47\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.0 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.31.0...v2.32.0\"\u003ev2.31.0...v2.32.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add detail to InputFileContent (\u003ca href=\"https://github.com/openai/openai-python/commit/60de21d1fcfbcadea0d9b8d884c73c9dc49d14ff\"\u003e60de21d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add OAuthErrorCode type (\u003ca href=\"https://github.com/openai/openai-python/commit/0c8d2c3b44242c9139dc554896ea489b56e236b8\"\u003e0c8d2c3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add event handler implementation for websockets (\u003ca href=\"https://github.com/openai/openai-python/commit/0280d0568f706684ecbf0aabf3575cdcb7fd22d5\"\u003e0280d05\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e allow enqueuing to websockets even when not connected (\u003ca href=\"https://github.com/openai/openai-python/commit/67aa20e69bc0e4a3b7694327c808606bfa24a966\"\u003e67aa20e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e support reconnection in websockets (\u003ca href=\"https://github.com/openai/openai-python/commit/eb72a953ea9dc5beec3eef537be6eb32292c3f65\"\u003eeb72a95\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/openai/openai-python/commit/c0c2ecd0f6b64fa5fafda6134bb06995b143a2cf\"\u003ec0c2ecd\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimprove examples (\u003ca href=\"https://github.com/openai/openai-python/commit/84712fa0f094b53151a0fe6ac85aa98018b2a7e2\"\u003e84712fa\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.31.0 (2026-04-08)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.30.0...v2.31.0\"\u003ev2.30.0...v2.31.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add phase field to conversations message (\u003ca href=\"https://github.com/openai/openai-python/commit/3e5834efb39b24e019a29dc54d890c67d18cbb54\"\u003e3e5834e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add web_search_call.results to ResponseIncludable type (\u003ca href=\"https://github.com/openai/openai-python/commit/ffd8741dd38609a5af0159ceb800d8ddba7925f8\"\u003effd8741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add support for short-lived tokens (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/1608\"\u003e#1608\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/22fe7228d4990c197cd721b3ad7931ad05cca5dd\"\u003e22fe722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e support sending raw data over websockets (\u003ca href=\"https://github.com/openai/openai-python/commit/f1bc52ef641dfca6fdf2a5b00ce3b09bff2552f5\"\u003ef1bc52e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e implement indices array format for query and form serialization (\u003ca href=\"https://github.com/openai/openai-python/commit/49194cfa711328216ff131d6f65c9298822a7c51\"\u003e49194cf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e preserve hardcoded query params when merging with user params (\u003ca href=\"https://github.com/openai/openai-python/commit/92e109c3d9569a942e1919e75977dc13fa015f9a\"\u003e92e109c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e remove web_search_call.results from ResponseIncludable (\u003ca href=\"https://github.com/openai/openai-python/commit/d3cc40165cd86015833d15167cc7712b4102f932\"\u003ed3cc401\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.20.1 (\u003ca href=\"https://github.com/openai/openai-python/commit/d60e2eea7f6916540cd4ba901dceb07051119da4\"\u003ed60e2ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.20.2 (\u003ca href=\"https://github.com/openai/openai-python/commit/6508d474332d4e82d9615c0a9a77379f9b5e4412\"\u003e6508d47\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update file parameter descriptions in vector_stores files and file_batches (\u003ca href=\"https://github.com/openai/openai-python/commit/a9e7ebd505b9ae90514339aa63c6f1984a08cf6b\"\u003ea9e7ebd\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/e507a4ebeea4c3f93cd48986014a3e2ca79230c2\"\u003e\u003ccode\u003ee507a4e\u003c/code\u003e\u003c/a\u003e release: 2.32.0 (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3074\"\u003e#3074\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/750354ed65565b31d0547bf00f4f3180ac1bfeef\"\u003e\u003ccode\u003e750354e\u003c/code\u003e\u003c/a\u003e release: 2.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/5be95364a5a82746cb7b1c77df10dfaf138496bb\"\u003e\u003ccode\u003e5be9536\u003c/code\u003e\u003c/a\u003e feat(client): add support for short-lived tokens (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/1608\"\u003e#1608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/f1fd4fae0329ee3df2f1bb25d93f51311782ad1a\"\u003e\u003ccode\u003ef1fd4fa\u003c/code\u003e\u003c/a\u003e feat(client): support sending raw data over websockets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/73ea2f75ba57a1db964518b33b790b1e1251b8d5\"\u003e\u003ccode\u003e73ea2f7\u003c/code\u003e\u003c/a\u003e fix(client): preserve hardcoded query params when merging with user params\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/454b2575d59a086f279d99dc791058acee2f14c0\"\u003e\u003ccode\u003e454b257\u003c/code\u003e\u003c/a\u003e feat(api): add web_search_call.results to ResponseIncludable type\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/de2c7b1d087f41f33ada85a7460f32e55331778a\"\u003e\u003ccode\u003ede2c7b1\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/6efca95a76f6ca9cb91fdf536c6c9ebcef075541\"\u003e\u003ccode\u003e6efca95\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2076d85f9226113e4ba360a7f456091988092dbf\"\u003e\u003ccode\u003e2076d85\u003c/code\u003e\u003c/a\u003e feat(api): add phase field to conversations message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/c0c59afa39a82f73063a52f624a9a4a2a6bf3313\"\u003e\u003ccode\u003ec0c59af\u003c/code\u003e\u003c/a\u003e fix(types): remove web_search_call.results from ResponseIncludable\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.28.0...v2.32.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `claude-agent-sdk` from 0.1.48 to 0.1.63\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/releases\"\u003eclaude-agent-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.1.63\u003c/h2\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.114\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003ePyPI:\u003c/strong\u003e \u003ca href=\"https://pypi.org/project/claude-agent-sdk/0.1.63/\"\u003ehttps://pypi.org/project/claude-agent-sdk/0.1.63/\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install claude-agent-sdk==0.1.63\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.1.62\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTop-level \u003ccode\u003eskills\u003c/code\u003e option\u003c/strong\u003e: Added \u003ccode\u003eskills\u003c/code\u003e parameter to \u003ccode\u003eClaudeAgentOptions\u003c/code\u003e for enabling skills on the main session without manually configuring \u003ccode\u003eallowed_tools\u003c/code\u003e and \u003ccode\u003esetting_sources\u003c/code\u003e. Supports \u003ccode\u003e\u0026quot;all\u0026quot;\u003c/code\u003e for every discovered skill, a list of named skills, or \u003ccode\u003e[]\u003c/code\u003e to suppress all skills (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/804\"\u003e#804\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.113\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003ePyPI:\u003c/strong\u003e \u003ca href=\"https://pypi.org/project/claude-agent-sdk/0.1.62/\"\u003ehttps://pypi.org/project/claude-agent-sdk/0.1.62/\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install claude-agent-sdk==0.1.62\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.1.61\u003c/h2\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003c...\n\n_Description has been truncated_","html_url":"https://github.com/pilotspace/pilot-space/pull/134","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pilotspace%2Fpilot-space/issues/134","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/134/packages"},{"uuid":"4281164486","node_id":"PR_kwDOPYkt3s7TPU3P","number":542,"state":"closed","title":"build(deps): bump the all-python-deps group across 1 directory with 19 updates","user":"dependabot[bot]","labels":[],"assignees":["scottfrasso"],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-21T08:16:53.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-17T08:16:56.000Z","updated_at":"2026-04-21T08:16:55.000Z","time_to_close":345597,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"all-python-deps","update_count":19,"packages":[{"name":"rich","old_version":"14.3.3","new_version":"15.0.0","repository_url":"https://github.com/Textualize/rich"},{"name":"logfire","old_version":"4.29.0","new_version":"4.32.1","repository_url":"https://github.com/pydantic/logfire"},{"name":"posthog","old_version":"7.9.12","new_version":"7.12.0","repository_url":"https://github.com/posthog/posthog-python"},{"name":"textual","old_version":"8.1.1","new_version":"8.2.3","repository_url":"https://github.com/Textualize/textual"},{"name":"real-ladybug","old_version":"0.15.1","new_version":"0.15.3","repository_url":"https://github.com/lbugdb/lbug"},{"name":"tree-sitter-rust","old_version":"0.24.0","new_version":"0.24.2","repository_url":"https://github.com/tree-sitter/tree-sitter-rust"},{"name":"openai","old_version":"2.29.0","new_version":"2.32.0","repository_url":"https://github.com/openai/openai-python"},{"name":"anthropic","old_version":"0.85.0","new_version":"0.96.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"genai-prices","old_version":"0.0.55","new_version":"0.0.56","repository_url":"https://github.com/pydantic/genai-prices"},{"name":"dependency-injector","old_version":"4.48.3","new_version":"4.49.0","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"claude-agent-sdk","old_version":"0.1.48","new_version":"0.1.61","repository_url":"https://github.com/anthropics/claude-agent-sdk-python"},{"name":"lefthook","old_version":"2.1.4","new_version":"2.1.6","repository_url":"https://github.com/evilmartians/lefthook"},{"name":"mypy","old_version":"1.19.1","new_version":"1.20.1","repository_url":"https://github.com/python/mypy"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"ruff","old_version":"0.15.6","new_version":"0.15.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"types-aiofiles","old_version":"25.1.0.20251011","new_version":"25.1.0.20260409","repository_url":"https://github.com/python/typeshed"},{"name":"types-psutil","old_version":"7.2.2.20260130","new_version":"7.2.2.20260408","repository_url":"https://github.com/python/typeshed"},{"name":"types-pyyaml","old_version":"6.0.12.20250915","new_version":"6.0.12.20260408","repository_url":"https://github.com/python/typeshed"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-python-deps group with 19 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rich](https://github.com/Textualize/rich) | `14.3.3` | `15.0.0` |\n| [logfire](https://github.com/pydantic/logfire) | `4.29.0` | `4.32.1` |\n| [posthog](https://github.com/posthog/posthog-python) | `7.9.12` | `7.12.0` |\n| [textual](https://github.com/Textualize/textual) | `8.1.1` | `8.2.3` |\n| [real-ladybug](https://github.com/lbugdb/lbug) | `0.15.1` | `0.15.3` |\n| [tree-sitter-rust](https://github.com/tree-sitter/tree-sitter-rust) | `0.24.0` | `0.24.2` |\n| [openai](https://github.com/openai/openai-python) | `2.29.0` | `2.32.0` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.85.0` | `0.96.0` |\n| [genai-prices](https://github.com/pydantic/genai-prices) | `0.0.55` | `0.0.56` |\n| [dependency-injector](https://github.com/ets-labs/python-dependency-injector) | `4.48.3` | `4.49.0` |\n| [claude-agent-sdk](https://github.com/anthropics/claude-agent-sdk-python) | `0.1.48` | `0.1.61` |\n| [lefthook](https://github.com/evilmartians/lefthook) | `2.1.4` | `2.1.6` |\n| [mypy](https://github.com/python/mypy) | `1.19.1` | `1.20.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.6` | `0.15.11` |\n| [types-aiofiles](https://github.com/python/typeshed) | `25.1.0.20251011` | `25.1.0.20260409` |\n| [types-psutil](https://github.com/python/typeshed) | `7.2.2.20260130` | `7.2.2.20260408` |\n| [types-pyyaml](https://github.com/python/typeshed) | `6.0.12.20250915` | `6.0.12.20260408` |\n\n\nUpdates `rich` from 14.3.3 to 15.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/rich/releases\"\u003erich's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eThe So Long 3.8 Release\u003c/h2\u003e\n\u003cp\u003eA few fixes. The major version bump is to honor the passing of 3.8 support which reached its EOL in October 7, 2024\u003c/p\u003e\n\u003ch2\u003e[15.0.0] - 2026-04-12\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBreaking change: Dropped support for Python3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed empty print ignoring the \u003ccode\u003eend\u003c/code\u003e parameter \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4075\"\u003eTextualize/rich#4075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eText.from_ansi\u003c/code\u003e removing newlines \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4076\"\u003eTextualize/rich#4076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eFileProxy.isatty\u003c/code\u003e not proxying \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4077\"\u003eTextualize/rich#4077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed inline code in Markdown tables cells \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4079\"\u003eTextualize/rich#4079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe Faster Startup Release\u003c/h2\u003e\n\u003cp\u003eNo new features in this release, but there should be improved startup time for Rich apps, and potentially improved runtime if you have a lot of links.\u003c/p\u003e\n\u003ch2\u003e[14.3.4] - 2026-04-11\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved import time with lazy loading \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4070\"\u003eTextualize/rich#4070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged link id generation to avoid random number generation at runtime \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3845\"\u003eTextualize/rich#3845\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/rich/blob/master/CHANGELOG.md\"\u003erich's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[15.0.0] - 2026-04-12\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBreaking change: Dropped support for Python3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed empty print ignoring the \u003ccode\u003eend\u003c/code\u003e parameter \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4075\"\u003eTextualize/rich#4075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eText.from_ansi\u003c/code\u003e removing newlines \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4076\"\u003eTextualize/rich#4076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eFileProxy.isatty\u003c/code\u003e not proxying \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4077\"\u003eTextualize/rich#4077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed inline code in Markdown tables cells \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4079\"\u003eTextualize/rich#4079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[14.3.4] - 2026-04-11\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved import time with lazy loading \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4070\"\u003eTextualize/rich#4070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged link id generation to avoid random number generation at runtime \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3845\"\u003eTextualize/rich#3845\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/6ac483cbea39cab124dfd3483bba70ffafb71050\"\u003e\u003ccode\u003e6ac483c\u003c/code\u003e\u003c/a\u003e correction\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/458a9109c8b7da81c17b2270ea8a88f3e8c0465a\"\u003e\u003ccode\u003e458a910\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/4080\"\u003e#4080\u003c/a\u003e from Textualize/bump1500\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/82e06e0d9985fd8cce456dc3977e0d2d9e84b4d8\"\u003e\u003ccode\u003e82e06e0\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/d6556bc44881b9904f29f5d9d69a0812b30675d1\"\u003e\u003ccode\u003ed6556bc\u003c/code\u003e\u003c/a\u003e bump to 15.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/ffe2edc5968eac19d5493c2d7b27965031a692e9\"\u003e\u003ccode\u003effe2edc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/4079\"\u003e#4079\u003c/a\u003e from Textualize/inline-table-code\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/cf3b5a16f7a76b2e8c4921d3314021bb72a6c5c1\"\u003e\u003ccode\u003ecf3b5a1\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/77f0edbdef71f2a895cd0ab1481e9a1fc79d42e6\"\u003e\u003ccode\u003e77f0edb\u003c/code\u003e\u003c/a\u003e remove comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/7ef2d05ca8aa3cb405dab2fdf3282e69cf8089e3\"\u003e\u003ccode\u003e7ef2d05\u003c/code\u003e\u003c/a\u003e fix inline code in table cells\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/19c67b9a3479841e9133bea94607c89ee931d3fc\"\u003e\u003ccode\u003e19c67b9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/4077\"\u003e#4077\u003c/a\u003e from Textualize/isattry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/494b795031782c694297d2db78bd04fb8c82f590\"\u003e\u003ccode\u003e494b795\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Textualize/rich/compare/v14.3.3...v15.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `logfire` from 4.29.0 to 4.32.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/logfire/releases\"\u003elogfire's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.32.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport OpenTelemetry SDK 1.40.0 by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1861\"\u003e#1861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo row→column transformation client-side in query client by \u003ca href=\"https://github.com/adriangb\"\u003e\u003ccode\u003e@​adriangb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1862\"\u003e#1862\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark various genai attributes as safe from scrubbing by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1863\"\u003e#1863\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.32.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epush_dataset\u003c/code\u003e helpers to the experimental API client by \u003ca href=\"https://github.com/dmontagu\"\u003e\u003ccode\u003e@​dmontagu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1848\"\u003e#1848\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.31.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Show token badges for OpenAI streaming logs by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1857\"\u003e#1857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: OTel warning during tail sampling buffer replay by \u003ca href=\"https://github.com/cyberksh\"\u003e\u003ccode\u003e@​cyberksh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1632\"\u003e#1632\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.31.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCapture token usage and cost attributes in OpenAI streaming logs by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1846\"\u003e#1846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCapture token usage and cost attributes in Anthropic streaming logs by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1850\"\u003e#1850\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCapture \u003ccode\u003eoperation.cost\u003c/code\u003e for OpenAI embeddings by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1843\"\u003e#1843\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCapture \u003ccode\u003egen_ai.usage.raw\u003c/code\u003e for Anthropic by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1847\"\u003e#1847\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: strip \u003ccode\u003ecf-connecting-ip\u003c/code\u003e header in \u003ccode\u003eforward_export_request\u003c/code\u003e by \u003ca href=\"https://github.com/BreytMN\"\u003e\u003ccode\u003e@​BreytMN\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1824\"\u003e#1824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle patching of \u003ccode\u003esys.stdout\u003c/code\u003e better by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1840\"\u003e#1840\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.31.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elogfire.instrument_claude_agent_sdk()\u003c/code\u003e by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1799\"\u003e#1799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add \u003ccode\u003elogfire.url_from_eval(report)\u003c/code\u003e method by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1694\"\u003e#1694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: include cached tokens in \u003ccode\u003egen_ai.usage.input_tokens\u003c/code\u003e for Anthropic by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1812\"\u003e#1812\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle bare MCP request types for fastmcp 3.x compatibility by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1813\"\u003e#1813\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.30.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elogfire auth logout\u003c/code\u003e command by \u003ca href=\"https://github.com/ai-man-codes\"\u003e\u003ccode\u003e@​ai-man-codes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1781\"\u003e#1781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove Rich link styling from project URL output by \u003ca href=\"https://github.com/ameenalkhaldi\"\u003e\u003ccode\u003e@​ameenalkhaldi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1784\"\u003e#1784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix push_config() to push labels and versions by \u003ca href=\"https://github.com/dmontagu\"\u003e\u003ccode\u003e@​dmontagu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1785\"\u003e#1785\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMerge \u003ccode\u003eexport_dataset\u003c/code\u003e into \u003ccode\u003eget_dataset\u003c/code\u003e with \u003ccode\u003einclude_cases\u003c/code\u003e parameter by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1792\"\u003e#1792\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/logfire/blob/main/CHANGELOG.md\"\u003elogfire's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v4.32.1] (2026-04-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport OpenTelemetry SDK 1.40.0 by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1861\"\u003e#1861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo row→column transformation client-side in query client by \u003ca href=\"https://github.com/adriangb\"\u003e\u003ccode\u003e@​adriangb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1862\"\u003e#1862\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark various genai attributes as safe from scrubbing by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1863\"\u003e#1863\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[v4.32.0] (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epush_dataset\u003c/code\u003e helpers to the experimental API client by \u003ca href=\"https://github.com/dmontagu\"\u003e\u003ccode\u003e@​dmontagu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1848\"\u003e#1848\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[v4.31.2] (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Show token badges for OpenAI streaming logs by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1857\"\u003e#1857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: OTel warning during tail sampling buffer replay by \u003ca href=\"https://github.com/cyberksh\"\u003e\u003ccode\u003e@​cyberksh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1632\"\u003e#1632\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[v4.31.1] (2026-04-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCapture token usage and cost attributes in OpenAI streaming logs by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1846\"\u003e#1846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCapture token usage and cost attributes in Anthropic streaming logs by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1850\"\u003e#1850\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCapture \u003ccode\u003eoperation.cost\u003c/code\u003e for OpenAI embeddings by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1843\"\u003e#1843\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCapture \u003ccode\u003egen_ai.usage.raw\u003c/code\u003e for Anthropic by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1847\"\u003e#1847\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: strip \u003ccode\u003ecf-connecting-ip\u003c/code\u003e header in \u003ccode\u003eforward_export_request\u003c/code\u003e by \u003ca href=\"https://github.com/BreytMN\"\u003e\u003ccode\u003e@​BreytMN\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1824\"\u003e#1824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle patching of \u003ccode\u003esys.stdout\u003c/code\u003e better by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1840\"\u003e#1840\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[v4.31.0] (2026-03-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elogfire.instrument_claude_agent_sdk()\u003c/code\u003e by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1799\"\u003e#1799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add \u003ccode\u003elogfire.url_from_eval(report)\u003c/code\u003e method by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1694\"\u003e#1694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: include cached tokens in \u003ccode\u003egen_ai.usage.input_tokens\u003c/code\u003e for Anthropic by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1812\"\u003e#1812\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle bare MCP request types for fastmcp 3.x compatibility by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1813\"\u003e#1813\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[v4.30.0] (2026-03-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elogfire auth logout\u003c/code\u003e command by \u003ca href=\"https://github.com/ai-man-codes\"\u003e\u003ccode\u003e@​ai-man-codes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1781\"\u003e#1781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove Rich link styling from project URL output by \u003ca href=\"https://github.com/ameenalkhaldi\"\u003e\u003ccode\u003e@​ameenalkhaldi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1784\"\u003e#1784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix push_config() to push labels and versions by \u003ca href=\"https://github.com/dmontagu\"\u003e\u003ccode\u003e@​dmontagu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1785\"\u003e#1785\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMerge \u003ccode\u003eexport_dataset\u003c/code\u003e into \u003ccode\u003eget_dataset\u003c/code\u003e with \u003ccode\u003einclude_cases\u003c/code\u003e parameter by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1792\"\u003e#1792\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/c50a1c8e655ab17455f418964dde759323e7f19a\"\u003e\u003ccode\u003ec50a1c8\u003c/code\u003e\u003c/a\u003e Release v4.32.1 (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1864\"\u003e#1864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/1cce8df671a2cf9d4e63a33031fca49e516a5c46\"\u003e\u003ccode\u003e1cce8df\u003c/code\u003e\u003c/a\u003e Mark various genai attributes as safe from scrubbing (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1863\"\u003e#1863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/97b8aeff3ad1eb97eab534cdab76ede88b28c1af\"\u003e\u003ccode\u003e97b8aef\u003c/code\u003e\u003c/a\u003e Do row→column transformation client-side in query client (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1862\"\u003e#1862\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/b64a41d7703508f4d469b9c77cda9475787f34ed\"\u003e\u003ccode\u003eb64a41d\u003c/code\u003e\u003c/a\u003e Support OpenTelemetry SDK 1.40.0 (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1861\"\u003e#1861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/644e5ad487c17a72167b8abd7ee4551714b29e88\"\u003e\u003ccode\u003e644e5ad\u003c/code\u003e\u003c/a\u003e Release v4.32.0 (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1859\"\u003e#1859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/b68c83840e0d02e250814ae34559c51f25fc0844\"\u003e\u003ccode\u003eb68c838\u003c/code\u003e\u003c/a\u003e Add push_dataset helpers to the experimental API client (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/c3fa8f1d9c01003f9e2758ab5cd8be7df13062eb\"\u003e\u003ccode\u003ec3fa8f1\u003c/code\u003e\u003c/a\u003e Release v4.31.2 (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1858\"\u003e#1858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/7460a5e43bdcffa9a72decdd19aaf549c57d719e\"\u003e\u003ccode\u003e7460a5e\u003c/code\u003e\u003c/a\u003e fix: add gen_ai.system to OpenAI streaming logs (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/13a96f4e53364b15b55f197511d3b445e589a6ee\"\u003e\u003ccode\u003e13a96f4\u003c/code\u003e\u003c/a\u003e refactor: gateway shutdown date (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/cada147782a1da4c28701474308a6ef22cbcbf1b\"\u003e\u003ccode\u003ecada147\u003c/code\u003e\u003c/a\u003e remove note about not supporting grpc ingest (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1853\"\u003e#1853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/logfire/compare/v4.29.0...v4.32.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `posthog` from 7.9.12 to 7.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/posthog/posthog-python/releases\"\u003eposthog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.12.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: merge master into main by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/513\"\u003ePostHog/posthog-python#513\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PostHog/posthog-python/compare/v7.11.2...v7.12.0\"\u003ehttps://github.com/PostHog/posthog-python/compare/v7.11.2...v7.12.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.11.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: add GitHub community health files by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/505\"\u003ePostHog/posthog-python#505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump pyasn1 from 0.6.1 to 0.6.3 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/465\"\u003ePostHog/posthog-python#465\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump litellm from 1.82.6 to 1.83.0 in /examples/example-ai-dspy by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/487\"\u003ePostHog/posthog-python#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump requests from 2.32.5 to 2.33.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/473\"\u003ePostHog/posthog-python#473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update branch references to main by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/506\"\u003ePostHog/posthog-python#506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update endpoint for flags local eval by \u003ca href=\"https://github.com/patricio-posthog\"\u003e\u003ccode\u003e@​patricio-posthog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/509\"\u003ePostHog/posthog-python#509\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/465\"\u003ePostHog/posthog-python#465\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PostHog/posthog-python/compare/v7.11.1...v7.11.2\"\u003ehttps://github.com/PostHog/posthog-python/compare/v7.11.1...v7.11.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.11.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: add stale workflow for issues and PRs by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/502\"\u003ePostHog/posthog-python#502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(compliance): declare capabilities in health endpoint by \u003ca href=\"https://github.com/andehen\"\u003e\u003ccode\u003e@​andehen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/501\"\u003ePostHog/posthog-python#501\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add os_distro information to events by \u003ca href=\"https://github.com/parinporecha\"\u003e\u003ccode\u003e@​parinporecha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/467\"\u003ePostHog/posthog-python#467\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PostHog/posthog-python/compare/v7.11.0...v7.11.1\"\u003ehttps://github.com/PostHog/posthog-python/compare/v7.11.0...v7.11.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(llma): graceful fallback in claude_agent_sdk wrapper by \u003ca href=\"https://github.com/andrewm4894\"\u003e\u003ccode\u003e@​andrewm4894\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/495\"\u003ePostHog/posthog-python#495\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(llma): add $ai_stop_reason extraction for all providers by \u003ca href=\"https://github.com/carlos-marchal-ph\"\u003e\u003ccode\u003e@​carlos-marchal-ph\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/499\"\u003ePostHog/posthog-python#499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add Gemini embed_content tracking by \u003ca href=\"https://github.com/carlos-marchal-ph\"\u003e\u003ccode\u003e@​carlos-marchal-ph\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/498\"\u003ePostHog/posthog-python#498\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PostHog/posthog-python/compare/v7.10.3...v7.11.0\"\u003ehttps://github.com/PostHog/posthog-python/compare/v7.10.3...v7.11.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.10.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: pass before_send through module-level setup by \u003ca href=\"https://github.com/sipa-echo-zaoa\"\u003e\u003ccode\u003e@​sipa-echo-zaoa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/472\"\u003ePostHog/posthog-python#472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: add sampo changeset for before_send module-level setup fix (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/472\"\u003e#472\u003c/a\u003e) by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/489\"\u003ePostHog/posthog-python#489\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sipa-echo-zaoa\"\u003e\u003ccode\u003e@​sipa-echo-zaoa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/472\"\u003ePostHog/posthog-python#472\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PostHog/posthog-python/compare/v7.10.2...v7.10.3\"\u003ehttps://github.com/PostHog/posthog-python/compare/v7.10.2...v7.10.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.10.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PostHog/posthog-python/blob/main/CHANGELOG.md\"\u003eposthog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.12.0 — 2026-04-16\u003c/h2\u003e\n\u003ch3\u003eMinor changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/220d9e88877dee7eabd34fed68c2a4a65e6526a7\"\u003e220d9e8\u003c/a\u003e \u003ccode\u003ePrompts.get()\u003c/code\u003e now accepts \u003ccode\u003ewith_metadata=True\u003c/code\u003e and returns a \u003ccode\u003ePromptResult\u003c/code\u003e dataclass containing \u003ccode\u003esource\u003c/code\u003e (\u003ccode\u003eapi\u003c/code\u003e, \u003ccode\u003ecache\u003c/code\u003e, \u003ccode\u003estale_cache\u003c/code\u003e, or \u003ccode\u003ecode_fallback\u003c/code\u003e), \u003ccode\u003ename\u003c/code\u003e, and \u003ccode\u003eversion\u003c/code\u003e alongside the prompt text. The previous plain-string return is deprecated and will be removed in a future major version. — Thanks \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.11.2 — 2026-04-15\u003c/h2\u003e\n\u003ch3\u003ePatch changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/f5a95b454ae7fd8bf46381b1c624df827903260d\"\u003ef5a95b4\u003c/a\u003e feat(flags): switch local evaluation polling from \u003ccode\u003e/api/feature_flag/local_evaluation\u003c/code\u003e to \u003ccode\u003e/flags/definitions\u003c/code\u003e — Thanks \u003ca href=\"https://github.com/patricio-posthog\"\u003e\u003ccode\u003e@​patricio-posthog\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.11.1 — 2026-04-14\u003c/h2\u003e\n\u003ch3\u003ePatch changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/c3f097f72f5ef6c1ecd25ade7d3ba08e57765eaf\"\u003ec3f097f\u003c/a\u003e feat: Add os_distro information to events — Thanks \u003ca href=\"https://github.com/parinporecha\"\u003e\u003ccode\u003e@​parinporecha\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.11.0 — 2026-04-10\u003c/h2\u003e\n\u003ch3\u003eMinor changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/b921fe33a9115fbf5f5171b80e1deabffd3e66ca\"\u003eb921fe3\u003c/a\u003e Add Gemini \u003ccode\u003eembed_content\u003c/code\u003e tracking support for both sync and async clients — Thanks \u003ca href=\"https://github.com/carlos-marchal-ph\"\u003e\u003ccode\u003e@​carlos-marchal-ph\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/44b92a844a2d8170e5b2247e509279f4654c4ef6\"\u003e44b92a8\u003c/a\u003e feat(ai): add $ai_stop_reason extraction for all providers — Thanks \u003ca href=\"https://github.com/carlos-marchal-ph\"\u003e\u003ccode\u003e@​carlos-marchal-ph\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/7c5cad8fcf818c9b8b4f074876718b937f2f8072\"\u003e7c5cad8\u003c/a\u003e fix: graceful fallback in claude_agent_sdk query wrapper when PostHog is not configured — Thanks \u003ca href=\"https://github.com/andrewm4894\"\u003e\u003ccode\u003e@​andrewm4894\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.10.3 — 2026-04-08\u003c/h2\u003e\n\u003ch3\u003ePatch changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/e22e893b236bf6af1cb8f6c18712727d24fe5c7e\"\u003ee22e893\u003c/a\u003e fix: pass the module-level \u003ccode\u003eposthog.before_send\u003c/code\u003e callback into the lazily initialized default client — Thanks \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.10.2 — 2026-04-08\u003c/h2\u003e\n\u003ch3\u003ePatch changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/bae355cd787f4c1a119fd2b396ba444b1a218b6a\"\u003ebae355c\u003c/a\u003e feat(flags): make local evaluation endpoint configurable via \u003ccode\u003ePOSTHOG_LOCAL_EVALUATION_ENDPOINT\u003c/code\u003e env var with fallback to default endpoint — Thanks \u003ca href=\"https://github.com/patricio-posthog\"\u003e\u003ccode\u003e@​patricio-posthog\u003c/code\u003e\u003c/a\u003e for your first contribution 🎉!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.10.1 — 2026-04-08\u003c/h2\u003e\n\u003ch3\u003ePatch changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/a5052b089b106af5a2fa5236fcf1f4f84943f899\"\u003ea5052b0\u003c/a\u003e fix: Django middleware accidentally passed capture_exceptions as positional arg, setting fresh=True and resetting context state — Thanks \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.10.0 — 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eMinor changes\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/825bf1a09aa0d858df2f0f405ddd98776efefdf3\"\u003e\u003ccode\u003e825bf1a\u003c/code\u003e\u003c/a\u003e chore: Release v7.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/220d9e88877dee7eabd34fed68c2a4a65e6526a7\"\u003e\u003ccode\u003e220d9e8\u003c/code\u003e\u003c/a\u003e chore: merge master into main (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/82f599347701b0b04106eb24e5e91f886ffe725b\"\u003e\u003ccode\u003e82f5993\u003c/code\u003e\u003c/a\u003e chore: Release v7.11.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/f5a95b454ae7fd8bf46381b1c624df827903260d\"\u003e\u003ccode\u003ef5a95b4\u003c/code\u003e\u003c/a\u003e chore: update endpoint for flags local eval (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/509\"\u003e#509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/055f8fd271a10b6bcafefb5ffc5db46cfb02a77a\"\u003e\u003ccode\u003e055f8fd\u003c/code\u003e\u003c/a\u003e chore: update branch references to main (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/5f815482dbcb51a02d9029330cbebe04da2ca1ca\"\u003e\u003ccode\u003e5f81548\u003c/code\u003e\u003c/a\u003e chore(deps): bump requests from 2.32.5 to 2.33.0 (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/473\"\u003e#473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/bb69ddb3b80ac9964936cd53feeb39d54b5aa401\"\u003e\u003ccode\u003ebb69ddb\u003c/code\u003e\u003c/a\u003e chore(deps): bump litellm from 1.82.6 to 1.83.0 in /examples/example-ai-dspy ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/eba4a39fc292bd5a24ae1dc2fab16d475574138a\"\u003e\u003ccode\u003eeba4a39\u003c/code\u003e\u003c/a\u003e chore(deps): bump pyasn1 from 0.6.1 to 0.6.3 (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/465\"\u003e#465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/c59ca5938de4b5fd01f0412e345a0260088e849c\"\u003e\u003ccode\u003ec59ca59\u003c/code\u003e\u003c/a\u003e chore: add GitHub community health files (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/33342776e543837a618944565cb596b6bdeb84ce\"\u003e\u003ccode\u003e3334277\u003c/code\u003e\u003c/a\u003e chore: Release v7.11.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/posthog/posthog-python/compare/v7.9.12...v7.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `textual` from 8.1.1 to 8.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/textual/releases\"\u003etextual's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eThe snappier resize Release\u003c/h2\u003e\n\u003ch2\u003e[8.2.3] - 2026-04-05\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce lag when resizing window, by moving resize from idle to a timer \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6471\"\u003eTextualize/textual#6471\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe Faster Resize Release\u003c/h2\u003e\n\u003cp\u003eFixed an issue where styles were being unneccesarily updated when resizing. Textual apps will now adapt to changes in the terminal size much more quickly.\u003c/p\u003e\n\u003ch2\u003e[8.2.2] - 2026-04-03\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Pointless style updates when resizing \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6464\"\u003eTextualize/textual#6464\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe Hot Select Release\u003c/h2\u003e\n\u003cp\u003eFixes a crash when a selected widget is removed while selecting\u003c/p\u003e\n\u003ch2\u003e[8.2.1] - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash when a widget disapears between selections \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6455\"\u003eTextualize/textual#6455\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe Select Release\u003c/h2\u003e\n\u003cp\u003eThis release enhances text selection, with auto-scrolling, and the ability to select across container widgets.\u003c/p\u003e\n\u003cp\u003eThis work was sponsored by Mistral AI.\u003c/p\u003e\n\u003ch2\u003e[8.2.0] - 2026-03-27\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAuto-scrolling on select \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSelecting over containers \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eApp.ENABLE_SELECT_AUTO_SCROLL\u003c/code\u003e, \u003ccode\u003eApp.SELECT_AUTO_SCROLL_LINES\u003c/code\u003e, \u003ccode\u003eApp.SELECT_AUTO_SCROLL_SPEED\u003c/code\u003e to tweak auto scrolling behavior \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/textual/blob/main/CHANGELOG.md\"\u003etextual's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[8.2.3] - 2026-04-05\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce lag when resizing window, by moving resize from idle to a timer \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6471\"\u003eTextualize/textual#6471\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.2.2] - 2026-04-03\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Pointless style updates when resizing \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6464\"\u003eTextualize/textual#6464\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.2.1] - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash when a widget disapears between selections \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6455\"\u003eTextualize/textual#6455\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.2.0] - 2026-03-27\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAuto-scrolling on select \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSelecting over containers \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eApp.ENABLE_SELECT_AUTO_SCROLL\u003c/code\u003e, \u003ccode\u003eApp.SELECT_AUTO_SCROLL_LINES\u003c/code\u003e, \u003ccode\u003eApp.SELECT_AUTO_SCROLL_SPEED\u003c/code\u003e to tweak auto scrolling behavior \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/634ca6e786885ffebe211fc73e0e8a04e030f3c3\"\u003e\u003ccode\u003e634ca6e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6473\"\u003e#6473\u003c/a\u003e from Textualize/bump823\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/ccf1978c1a715ac7d33149dcfc344765dc250037\"\u003e\u003ccode\u003eccf1978\u003c/code\u003e\u003c/a\u003e bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/5ddfbdc6bf7966b99644f2da0251c94c83a50528\"\u003e\u003ccode\u003e5ddfbdc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6462\"\u003e#6462\u003c/a\u003e from IEBqp/guide-patch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/23bf10e77bd18fa91ed2c42e3a0693b0702e097d\"\u003e\u003ccode\u003e23bf10e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6470\"\u003e#6470\u003c/a\u003e from Textualize/defensive-selection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/32f1d23330efd7a47891a5ce90edd7677664fbc1\"\u003e\u003ccode\u003e32f1d23\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6471\"\u003e#6471\u003c/a\u003e from Textualize/resize-lag\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/2bbfbb7741470e8cf95c37476047b89787afaec5\"\u003e\u003ccode\u003e2bbfbb7\u003c/code\u003e\u003c/a\u003e force initial resize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/4b6579038979a90d1f4067d8e396f0af13e80f75\"\u003e\u003ccode\u003e4b65790\u003c/code\u003e\u003c/a\u003e ignore no size changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/63fe6f0646e0f1401b990fb64f292d9646d01014\"\u003e\u003ccode\u003e63fe6f0\u003c/code\u003e\u003c/a\u003e check resize timer on idle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/ec5b43ae1cc2c49361f0d791a53dd047bce08369\"\u003e\u003ccode\u003eec5b43a\u003c/code\u003e\u003c/a\u003e also resize on idle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/12a52d9e24f1d47eb680e814527fac6ee004e573\"\u003e\u003ccode\u003e12a52d9\u003c/code\u003e\u003c/a\u003e check screen error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Textualize/textual/compare/v8.1.1...v8.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `real-ladybug` from 0.15.1 to 0.15.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/lbugdb/lbug/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tree-sitter-rust` from 0.24.0 to 0.24.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/releases\"\u003etree-sitter-rust's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.24.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNOTE:\u003c/strong\u003e Download \u003ccode\u003etree-sitter-rust.tar.gz\u003c/code\u003e for the \u003cem\u003ecomplete\u003c/em\u003e source code.\u003c/p\u003e\n\u003ch2\u003ev0.24.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNOTE:\u003c/strong\u003e Download \u003ccode\u003etree-sitter-rust.tar.gz\u003c/code\u003e for the \u003cem\u003ecomplete\u003c/em\u003e source code.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/77a3747266f4d621d0757825e6b11edcbf991ca5\"\u003e\u003ccode\u003e77a3747\u003c/code\u003e\u003c/a\u003e 0.24.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/c9f157902a6b487f0c358dc383d2d694b98fd814\"\u003e\u003ccode\u003ec9f1579\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/v0.24.x'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/b3e615de069beb04ff44f65ac52f7f03cff04438\"\u003e\u003ccode\u003eb3e615d\u003c/code\u003e\u003c/a\u003e Fix bad error recovery when parsing repeated string literals (\u003ca href=\"https://redirect.github.com/tree-sitter/tree-sitter-rust/issues/307\"\u003e#307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/4b8106750a2865e4548459d18c797c9f468c440e\"\u003e\u003ccode\u003e4b81067\u003c/code\u003e\u003c/a\u003e Disable regeneration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/6651c80dc5f033f9666365de50260d02cea05412\"\u003e\u003ccode\u003e6651c80\u003c/code\u003e\u003c/a\u003e Regenerate parser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/96e3121c41bc5f2b659f21dd5a43894c4028ddf1\"\u003e\u003ccode\u003e96e3121\u003c/code\u003e\u003c/a\u003e Remove attestations from GH release job\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/8a1ccae7aaccdc11b04dbd803453e3e9cfd9159b\"\u003e\u003ccode\u003e8a1ccae\u003c/code\u003e\u003c/a\u003e 0.24.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/ab43fdbb1640bdece8fab9927b1aa6774d942189\"\u003e\u003ccode\u003eab43fdb\u003c/code\u003e\u003c/a\u003e Parse string literals even in with unexpected prefixes (\u003ca href=\"https://redirect.github.com/tree-sitter/tree-sitter-rust/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/261b20226c04ef601adbdf185a800512a5f66291\"\u003e\u003ccode\u003e261b202\u003c/code\u003e\u003c/a\u003e Raw reference/identifier conflict (\u003ca href=\"https://redirect.github.com/tree-sitter/tree-sitter-rust/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/946595d164e77b705fa28385654f9420f59262ef\"\u003e\u003ccode\u003e946595d\u003c/code\u003e\u003c/a\u003e Include LICENSE (\u003ca href=\"https://redirect.github.com/tree-sitter/tree-sitter-rust/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/compare/v0.24.0...v0.24.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.29.0 to 2.32.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.32.0\u003c/h2\u003e\n\u003ch2\u003e2.32.0 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.31.0...v2.32.0\"\u003ev2.31.0...v2.32.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add detail to InputFileContent (\u003ca href=\"https://github.com/openai/openai-python/commit/60de21d1fcfbcadea0d9b8d884c73c9dc49d14ff\"\u003e60de21d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add OAuthErrorCode type (\u003ca href=\"https://github.com/openai/openai-python/commit/0c8d2c3b44242c9139dc554896ea489b56e236b8\"\u003e0c8d2c3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add event handler implementation for websockets (\u003ca href=\"https://github.com/openai/openai-python/commit/0280d0568f706684ecbf0aabf3575cdcb7fd22d5\"\u003e0280d05\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e allow enqueuing to websockets even when not connected (\u003ca href=\"https://github.com/openai/openai-python/commit/67aa20e69bc0e4a3b7694327c808606bfa24a966\"\u003e67aa20e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e support reconnection in websockets (\u003ca href=\"https://github.com/openai/openai-python/commit/eb72a953ea9dc5beec3eef537be6eb32292c3f65\"\u003eeb72a95\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/openai/openai-python/commit/c0c2ecd0f6b64fa5fafda6134bb06995b143a2cf\"\u003ec0c2ecd\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimprove examples (\u003ca href=\"https://github.com/openai/openai-python/commit/84712fa0f094b53151a0fe6ac85aa98018b2a7e2\"\u003e84712fa\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.31.0\u003c/h2\u003e\n\u003ch2\u003e2.31.0 (2026-04-08)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.30.0...v2.31.0\"\u003ev2.30.0...v2.31.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add phase field to conversations message (\u003ca href=\"https://github.com/openai/openai-python/commit/3e5834efb39b24e019a29dc54d890c67d18cbb54\"\u003e3e5834e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add web_search_call.results to ResponseIncludable type (\u003ca href=\"https://github.com/openai/openai-python/commit/ffd8741dd38609a5af0159ceb800d8ddba7925f8\"\u003effd8741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add support for short-lived tokens (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/1608\"\u003e#1608\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/22fe7228d4990c197cd721b3ad7931ad05cca5dd\"\u003e22fe722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e support sending raw data over websockets (\u003ca href=\"https://github.com/openai/openai-python/commit/f1bc52ef641dfca6fdf2a5b00ce3b09bff2552f5\"\u003ef1bc52e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e implement indices array format for query and form serialization (\u003ca href=\"https://github.com/openai/openai-python/commit/49194cfa711328216ff131d6f65c9298822a7c51\"\u003e49194cf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e preserve hardcoded query params when merging with user params (\u003ca href=\"https://github.com/openai/openai-python/commit/92e109c3d9569a942e1919e75977dc13fa015f9a\"\u003e92e109c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e remove web_search_call.results from ResponseIncludable (\u003ca href=\"https://github.com/openai/openai-python/commit/d3cc40165cd86015833d15167cc7712b4102f932\"\u003ed3cc401\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.20.1 (\u003ca href=\"https://github.com/openai/openai-python/commit/d60e2eea7f6916540cd4ba901dceb07051119da4\"\u003ed60e2ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.20.2 (\u003ca href=\"https://github.com/openai/openai-python/commit/6508d474332d4e82d9615c0a9a77379f9b5e4412\"\u003e6508d47\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.0 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.31.0...v2.32.0\"\u003ev2.31.0...v2.32.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add detail to InputFileContent (\u003ca href=\"https://github.com/openai/openai-python/commit/60de21d1fcfbcadea0d9b8d884c73c9dc49d14ff\"\u003e60de21d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add OAuthErrorCode type (\u003ca href=\"https://github.com/openai/openai-python/commit/0c8d2c3b44242c9139dc554896ea489b56e236b8\"\u003e0c8d2c3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add event handler implementation for websockets (\u003ca href=\"https://github.com/openai/openai-python/commit/0280d0568f706684ecbf0aabf3575cdcb7fd22d5\"\u003e0280d05\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e allow enqueuing to websockets even when not connected (\u003ca href=\"https://github.com/openai/openai-python/commit/67aa20e69bc0e4a3b7694327c808606bfa24a966\"\u003e67aa20e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e support reconnection in websockets (\u003ca href=\"https://github.com/openai/openai-python/commit/eb72a953ea9dc5beec3eef537be6eb32292c3f65\"\u003eeb72a95\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/openai/openai-python/commit/c0c2ecd0f6b64fa5fafda6134bb06995b143a2cf\"\u003ec0c2ecd\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimprove examples (\u003ca href=\"https://github.com/openai/openai-python/commit/84712fa0f094b53151a0fe6ac85aa98018b2a7e2\"\u003e84712fa\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.31.0 (2026-04-08)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.30.0...v2.31.0\"\u003ev2.30.0...v2.31.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add phase field to conversations message (\u003ca href=\"https://github.com/openai/openai-python/commit/3e5834efb39b24e019a29dc54d890c67d18cbb54\"\u003e3e5834e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add web_search_call.results to ResponseIncludable type (\u003ca href=\"https://github.com/openai/openai-python/commit/ffd8741dd38609a5af0159ceb800d8ddba7925f8\"\u003effd8741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add support for short-lived tokens (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/1608\"\u003e#1608\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/22fe7228d4990c197cd721b3ad7931ad05cca5dd\"\u003e22fe722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e support sending raw data over websockets (\u003ca href=\"https://github.com/openai/openai-python/commit/f1bc52ef641dfca6fdf2a5b00ce3b09bff2552f5\"\u003ef1bc52e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e implement indices array format for query and form serialization (\u003ca href=\"https://github.com/openai/openai-python/commit/49194cfa711328216ff131d6f65c9298822a7c51\"\u003e49194cf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e preserve hardcoded query params when merging with user params (\u003ca href=\"https://github.com/openai/openai-python/commit/92e109c3d9569a942e1919e75977dc13fa015f9a\"\u003e92e109c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e remove web_search_call.results from ResponseIncludable (\u003ca href=\"https://github.com/openai/openai-python/commit/d3cc40165cd86015833d15167cc7712b4102f932\"\u003ed3cc401\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.20.1 (\u003ca href=\"https://github.com/openai/openai-python/commit/d60e2eea7f6916540cd4ba901dceb07051119da4\"\u003ed60e2ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.20.2 (\u003ca href=\"https://github.com/openai/openai-python/commit/6508d474332d4e82d9615c0a9a77379f9b5e4412\"\u003e6508d47\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update file parameter descriptions in vector_stores files and file_batches (\u003ca href=\"https://github.com/openai/openai-python/commit/a9e7ebd505b9ae90514339aa63c6f1984a08cf6b\"\u003ea9e7ebd\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/e507a4ebeea4c3f93cd48986014a3e2ca79230c2\"\u003e\u003ccode\u003ee507a4e\u003c/code\u003e\u003c/a\u003e release: 2.32.0 (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3074\"\u003e#3074\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/750354ed65565b31d0547bf00f4f3180ac1bfeef\"\u003e\u003ccode\u003e750354e\u003c/code\u003e\u003c/a\u003e release: 2.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/5be95364a5a82746cb7b1c77df10dfaf138496bb\"\u003e\u003ccode\u003e5be9536\u003c/code\u003e\u003c/a\u003e feat(client): add support for short-lived tokens (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/1608\"\u003e#1608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/f1fd4fae0329ee3df2f1bb25d93f51311782ad1a\"\u003e\u003ccode\u003ef1fd4fa\u003c/code\u003e\u003c/a\u003e feat(client): support sending raw data over websockets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/73ea2f75ba57a1db964518b33b790b1e1251b8d5\"\u003e\u003ccode\u003e73ea2f7\u003c/code\u003e\u003c/a\u003e fix(client): preserve hardcoded query params when merging with user params\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/454b2575d59a086f279d99dc791058acee2f14c0\"\u003e\u003ccode\u003e454b257\u003c/code\u003e\u003c/a\u003e feat(api): add web_search_call.results to ResponseIncludable type\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/de2c7b1d087f41f33ada85a7460f32e55331778a\"\u003e\u003ccode\u003ede2c7b1\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/6efca95a76f6ca9cb91fdf536c6c9ebcef075541\"\u003e\u003ccode\u003e6efca95\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2076d85f9226113e4ba360a7f456091988092dbf\"\u003e\u003ccode\u003e2076d85\u003c/code\u003e\u003c/a\u003e feat(api): add phase field to conversations message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/c0c59afa39a82f73063a52f624a9a4a2a6bf3313\"\u003e\u003ccode\u003ec0c59af\u003c/code\u003e\u003c/a\u003e fix(types): remove web_search_call.results from ResponseIncludable\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.29.0...v2.32.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anthropic` from 0.85.0 to 0.96.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/releases\"\u003eanthropic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.96.0\u003c/h2\u003e\n\u003ch2\u003e0.96.0 (2026-04-16)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.95.0...v0.96.0\"\u003ev0.95.0...v0.96.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add claude-opus-4-7, token budgets and user_profiles (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0aa2a0d4388a39984134d1dfc2bcbd6b206f7184\"\u003e0aa2a0d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e remove release-doctor workflow (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1d9add35d0bd4c71f2bca3b0d494d1d0a348817a\"\u003e1d9add3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.95.0\u003c/h2\u003e\n\u003ch2\u003e0.95.0 (2026-04-14)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.1...v0.95.0\"\u003ev0.94.1...v0.95.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e mark Sonnet and Opus 4 as deprecated (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0c1e7736394585dd021b53c1f87383c4fae29a6b\"\u003e0c1e773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebedrock:\u003c/strong\u003e use auth header for mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1644\"\u003e#1644\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3b93090e121861462f21a7621484cda66c139997\"\u003e3b93090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.94.1\u003c/h2\u003e\n\u003ch2\u003e0.94.1 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.0...v0.94.1\"\u003ev0.94.0...v0.94.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e add missing events (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c6a06d80b7e87bc034bd6ade950c735da02a0be3\"\u003ec6a06d8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.94.0\u003c/h2\u003e\n\u003ch2\u003e0.94.0 (2026-04-10)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.93.0...v0.94.0\"\u003ev0.93.0...v0.94.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evertex eu region (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1658\"\u003e#1658\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b7e157d85f50b2900ddf896e8e80882dd7311bfd\"\u003eb7e157d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/837b25bb6262186a5bae92aa70eb73c3cf8c90af\"\u003e837b25b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/blob/main/CHANGELOG.md\"\u003eanthropic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.96.0 (2026-04-16)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.95.0...v0.96.0\"\u003ev0.95.0...v0.96.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add claude-opus-4-7, token budgets and user_profiles (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0aa2a0d4388a39984134d1dfc2bcbd6b206f7184\"\u003e0aa2a0d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e remove release-doctor workflow (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1d9add35d0bd4c71f2bca3b0d494d1d0a348817a\"\u003e1d9add3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.95.0 (2026-04-14)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.1...v0.95.0\"\u003ev0.94.1...v0.95.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e mark Sonnet and Opus 4 as deprecated (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0c1e7736394585dd021b53c1f87383c4fae29a6b\"\u003e0c1e773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebedrock:\u003c/strong\u003e use auth header for mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1644\"\u003e#1644\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3b93090e121861462f21a7621484cda66c139997\"\u003e3b93090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.94.1 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.0...v0.94.1\"\u003ev0.94.0...v0.94.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e add missing events (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c6a06d80b7e87bc034bd6ade950c735da02a0be3\"\u003ec6a06d8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.94.0 (2026-04-10)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.93.0...v0.94.0\"\u003ev0.93.0...v0.94.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evertex eu region (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1658\"\u003e#1658\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b7e157d85f50b2900ddf896e8e80882dd7311bfd\"\u003eb7e157d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/837b25bb6262186a5bae92aa70eb73c3cf8c90af\"\u003e837b25b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimprove examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/48089fdb788500d00718b9d4ae24cd34e5e91beb\"\u003e48089fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0f3c28b973026d135f91f38c4ad82ae2b1131522\"\u003e0f3c28b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.93.0 (2026-04-09)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/78de297e71bacbe6acf4d3b420edcaad90ce1045\"\u003e\u003ccode\u003e78de297\u003c/code\u003e\u003c/a\u003e release: 0.96.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/dc0c79294528932c8fb4b27d6c0c24a0198d2c0a\"\u003e\u003ccode\u003edc0c792\u003c/code\u003e\u003c/a\u003e feat(api): add claude-opus-4-7, token budgets and user_profiles\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/71eff1fee942056bf54219e9953615be143f67ec\"\u003e\u003ccode\u003e71eff1f\u003c/code\u003e\u003c/a\u003e chore(ci): remove release-doctor workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1056685678c8e52cb2492e43b75d695ab91a4b51\"\u003e\u003ccode\u003e1056685\u003c/code\u003e\u003c/a\u003e release: 0.95.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/9741185561f6ebf289051a9eec136cf4ce7846a6\"\u003e\u003ccode\u003e9741185\u003c/code\u003e\u003c/a\u003e feat(bedrock): use auth header for mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1644\"\u003e#1644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/ef22dbbd4a2005fd4e1b8e24cfb562c35c688313\"\u003e\u003ccode\u003eef22dbb\u003c/code\u003e\u003c/a\u003e feat(api): mark Sonnet and Opus 4 as deprecated\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/6d9b98672387c1f4f1f4a8fc02ea6d0e45a8362b\"\u003e\u003ccode\u003e6d9b986\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/47c48a9eee1b6b34b7b87569c4481d3d89c5bc33\"\u003e\u003ccode\u003e47c48a9\u003c/code\u003e\u003c/a\u003e release: 0.94.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/49bab64536c113302653510ed6a639b34ade1af2\"\u003e\u003ccode\u003e49bab64\u003c/code\u003e\u003c/a\u003e fix(streaming): add missing events\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7b03b0fc0b103eaba7732fc5ae54fc86c963839a\"\u003e\u003ccode\u003e7b03b0f\u003c/code\u003e\u003c/a\u003e release: 0.94.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.85.0...v0.96.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `genai-prices` from 0.0.55 to 0.0.56\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/9ebd466b6a0bb57c81c168fa9ed6f6a1e547c22a\"\u003e\u003ccode\u003e9ebd466\u003c/code\u003e\u003c/a\u003e Prep 0.0.56 release (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/318\"\u003e#318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/c5bd290dd46af2deab22af7a0aa709906e7038d1\"\u003e\u003ccode\u003ec5bd290\u003c/code\u003e\u003c/a\u003e Add OpenRouter pricing for claude-sonnet-4.6 (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/296\"\u003e#296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/ea55b972b43eb679e99795c1479ccea4a502ebe0\"\u003e\u003ccode\u003eea55b97\u003c/code\u003e\u003c/a\u003e feat: add Qwen3 Max Thinking to OpenRouter (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/5f2a7bd337696bc2a9ca41147d0a9d7c00e824aa\"\u003e\u003ccode\u003e5f2a7bd\u003c/code\u003e\u003c/a\u003e Add Qwen3 VL 235B A22B (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/a7628264248ca1ce96acb3a2abbe19de47b3efdf\"\u003e\u003ccode\u003ea762826\u003c/code\u003e\u003c/a\u003e Add openrouter qwen/qwen3.5-plus-02-15 price (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/299\"\u003e#299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/8ab5336c8fefeb664d692f2238e1181d0ba0321b\"\u003e\u003ccode\u003e8ab5336\u003c/code\u003e\u003c/a\u003e feat: moonshot ai prices file (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/87f9120fc248dddafbb2c863a29ef5488a5164fc\"\u003e\u003ccode\u003e87f9120\u003c/code\u003e\u003c/a\u003e feat: add Gemini 3.1 Flash Image Preview pricing (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/303\"\u003e#303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/016961828b5ecb1e38932a5675fe9afa2668a135\"\u003e\u003ccode\u003e0169618\u003c/code\u003e\u003c/a\u003e Adding api-flavor for xAI native SDK (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/307\"\u003e#307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/ee468266850d8b6ebed856f9b175e37044437a44\"\u003e\u003ccode\u003eee46826\u003c/code\u003e\u003c/a\u003e feat: add GPT-5.4 mini and nano snapshot aliases (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/9205f145985ca898daa5bcf6148f932a82cf62a1\"\u003e\u003ccode\u003e9205f14\u003c/code\u003e\u003c/a\u003e feat: add pricing for GPT 5.4 mini and nano (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/315\"\u003e#315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/genai-prices/compare/v0.0.55...v0.0.56\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dependency-injector` from 4.48.3 to 4.49.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.49.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.14 support\u003c/li\u003e\n\u003cli\u003eFix Pydantic v2 deprecation warning triggering on settings class import (fixes \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix grammar in Declarative Container documentation by \u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing warn_unresolved parameter to WiringConfiguration in containers.pyi by \u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd keep_cache argument to Container.wire typings by \u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for some type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/943\"\u003eets-labs/python-dependency-injector#943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for remaining type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/953\"\u003eets-labs/python-dependency-injector#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd provided()\u003c!-- raw HTML omitted --\u003e.call *args, **kwargs arguments \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/945\"\u003e#945\u003c/a\u003e by \u003ca href=\"https://github.com/pavalso\"\u003e\u003ccode\u003e@​pavalso\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/946\"\u003eets-labs/python-dependency-injector#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd context local resource by \u003ca href=\"https://github.com/elina-israyelyan\"\u003e\u003ccode\u003e@​elina-israyelyan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/931\"\u003eets-labs/python-dependency-injector#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI/CD to \u003ccode\u003eactions/checkout@v6\u003c/code\u003e, \u003ccode\u003eactions/setup-python@v6\u003c/code\u003e, \u003ccode\u003eactions/download-artifact@v8\u003c/code\u003e, \u003ccode\u003eactions/upload-artifact@v7\u003c/code\u003e and \u003ccode\u003epypa/cibuildwheel@v3.4.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdd dependabot config for GitHub Actions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pavalso\"\u003e\u003ccode\u003e@​pavalso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/946\"\u003eets-labs/python-dependency-injector#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elina-israyelyan\"\u003e\u003ccode\u003e@​elina-israyelyan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/931\"\u003eets-labs/python-dependency-injector#931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5f7aa1c337c77e782e1e927eb4b1e41a60912604\"\u003e\u003ccode\u003e5f7aa1c\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5863d99bd5e9b2d22c15f3815b23973317a453ee\"\u003e\u003ccode\u003e5863d99\u003c/code\u003e\u003c/a\u003e Add .github/dependabot.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/000c670c7e655cc7db423a76c6b877d185f706ce\"\u003e\u003ccode\u003e000c670\u003c/code\u003e\u003c/a\u003e Upgrade GHA actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/931084070a5304a26a925961375a5afcc3c3a38b\"\u003e\u003ccode\u003e9310840\u003c/code\u003e\u003c/a\u003e Fix iscoroutinefunction import for older Pythons\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/05a5e7d8701a1df8cb88ad55d187ba88cd6ffbe8\"\u003e\u003ccode\u003e05a5e7d\u003c/code\u003e\u003c/a\u003e Fix get_annotations import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/58700d9dbd3420a559330666edfb477418997ff9\"\u003e\u003ccode\u003e58700d9\u003c/code\u003e\u003c/a\u003e Use from import statements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/0e25331738716d5bfa5562d42617deb6ad65d23c\"\u003e\u003ccode\u003e0e25331\u003c/code\u003e\u003c/a\u003e Do not build nogil wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1696986aa7698120a7e2aab2355d93e178fc36f9\"\u003e\u003ccode\u003e1696986\u003c/code\u003e\u003c/a...\n\n_Description has been truncated_","html_url":"https://github.com/shotgun-sh/shotgun/pull/542","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/shotgun-sh%2Fshotgun/issues/542","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/542/packages"},{"uuid":"4250619854","node_id":"PR_kwDORMFN3c7R11SD","number":131,"state":"open","title":"chore(deps): bump the python-minor-patch group across 1 directory with 31 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-13T01:20:38.000Z","updated_at":"2026-04-13T01:20:50.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-minor-patch","update_count":31,"packages":[{"name":"fastapi","old_version":"0.135.1","new_version":"0.135.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.42.0","new_version":"0.44.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"python-multipart","old_version":"0.0.22","new_version":"0.0.26","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"sqlalchemy","old_version":"2.0.48","new_version":"2.0.49","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"redis","old_version":"7.3.0","new_version":"7.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"supabase","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"postgrest","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"storage3","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"anthropic","old_version":"0.85.0","new_version":"0.94.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"openai","old_version":"2.28.0","new_version":"2.31.0","repository_url":"https://github.com/openai/openai-python"},{"name":"claude-agent-sdk","old_version":"0.1.48","new_version":"0.1.58","repository_url":"https://github.com/anthropics/claude-agent-sdk-python"},{"name":"dependency-injector","old_version":"4.48.3","new_version":"4.49.0","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"orjson","old_version":"3.11.7","new_version":"3.11.8","repository_url":"https://github.com/ijl/orjson"},{"name":"cryptography","old_version":"46.0.5","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"ua-parser","old_version":"1.0.1","new_version":"1.0.2","repository_url":"https://github.com/ua-parser/uap-python"},{"name":"anyio","old_version":"4.12.1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"charset-normalizer","old_version":"3.4.6","new_version":"3.4.7","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.1","new_version":"8.3.2","repository_url":"https://github.com/pallets/click"},{"name":"fsspec","old_version":"2026.2.0","new_version":"2026.3.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"greenlet","old_version":"3.3.2","new_version":"3.4.0","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"jiter","old_version":"0.13.0","new_version":"0.14.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"mcp","old_version":"1.26.0","new_version":"1.27.0","repository_url":"https://github.com/modelcontextprotocol/python-sdk"},{"name":"numpy","old_version":"2.4.3","new_version":"2.4.4","repository_url":"https://github.com/numpy/numpy"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.45.0","repository_url":"https://github.com/pydantic/pydantic-core"},{"name":"pygments","old_version":"2.19.2","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyroaring","old_version":"1.0.3","new_version":"1.0.4","repository_url":"https://github.com/Ezibenroc/PyRoaringBitMap"},{"name":"realtime","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"sse-starlette","old_version":"3.3.2","new_version":"3.3.4","repository_url":"https://github.com/sysid/sse-starlette"},{"name":"supabase-auth","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"supabase-functions","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 31 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.135.1` | `0.135.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.42.0` | `0.44.0` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.22` | `0.0.26` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.48` | `2.0.49` |\n| [redis](https://github.com/redis/redis-py) | `7.3.0` | `7.4.0` |\n| [supabase](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [postgrest](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [storage3](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.85.0` | `0.94.0` |\n| [openai](https://github.com/openai/openai-python) | `2.28.0` | `2.31.0` |\n| [claude-agent-sdk](https://github.com/anthropics/claude-agent-sdk-python) | `0.1.48` | `0.1.58` |\n| [dependency-injector](https://github.com/ets-labs/python-dependency-injector) | `4.48.3` | `4.49.0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.7` | `3.11.8` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.5` | `46.0.7` |\n| [ua-parser](https://github.com/ua-parser/uap-python) | `1.0.1` | `1.0.2` |\n| [anyio](https://github.com/agronholm/anyio) | `4.12.1` | `4.13.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.6` | `3.4.7` |\n| [click](https://github.com/pallets/click) | `8.3.1` | `8.3.2` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.2.0` | `2026.3.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.3.2` | `3.4.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.13.0` | `0.14.0` |\n| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `1.26.0` | `1.27.0` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.3` | `2.4.4` |\n| [pydantic-core](https://github.com/pydantic/pydantic-core) | `2.41.5` | `2.45.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.2` | `2.20.0` |\n| [pyroaring](https://github.com/Ezibenroc/PyRoaringBitMap) | `1.0.3` | `1.0.4` |\n| [realtime](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [sse-starlette](https://github.com/sysid/sse-starlette) | `3.3.2` | `3.3.4` |\n| [supabase-auth](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [supabase-functions](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n\n\nUpdates `fastapi` from 0.135.1 to 0.135.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.135.3\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for \u003ccode\u003e@app.vibe()\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15280\"\u003e#15280\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eNew docs: \u003ca href=\"https://fastapi.tiangolo.com/advanced/vibe/\"\u003eVibe Coding\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✏️ Fix typo for \u003ccode\u003eclient_secret\u003c/code\u003e in OAuth2 form docstrings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14946\"\u003e#14946\u003c/a\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👥 Update FastAPI People - Experts. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15279\"\u003e#15279\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump orjson from 3.11.7 to 3.11.8. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15276\"\u003e#15276\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.0 to 0.15.8. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15277\"\u003e#15277\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI GitHub topic repositories. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15274\"\u003e#15274\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastmcp from 2.14.5 to 3.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15267\"\u003e#15267\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI People - Contributors and Translators. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15270\"\u003e#15270\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump requests from 2.32.5 to 2.33.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15228\"\u003e#15228\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Add ty check to \u003ccode\u003elint.sh\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15136\"\u003e#15136\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.2\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Increase lower bound to \u003ccode\u003epydantic \u0026gt;=2.9.0.\u003c/code\u003e and fix the test suite. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15139\"\u003e#15139\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add missing last release notes dates. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15202\"\u003e#15202\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update docs for contributors and team members regarding translation PRs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15200\"\u003e#15200\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Fix code blocks in reference docs overflowing table width. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15094\"\u003e#15094\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix duplicated words in docstrings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15116\"\u003e#15116\u003c/a\u003e by \u003ca href=\"https://github.com/AhsanSheraz\"\u003e\u003ccode\u003e@​AhsanSheraz\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add docs for \u003ccode\u003epyproject.toml\u003c/code\u003e with \u003ccode\u003eentrypoint\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15075\"\u003e#15075\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update links in docs to no longer use the classes external-link and internal-link. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15061\"\u003e#15061\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add JS and CSS handling for automatic \u003ccode\u003etarget=_blank\u003c/code\u003e for links in docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15063\"\u003e#15063\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Update styles for internal and external links in new tab. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15058\"\u003e#15058\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝  Add documentation for the FastAPI VS Code extension. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15008\"\u003e#15008\u003c/a\u003e by \u003ca href=\"https://github.com/savannahostrowski\"\u003e\u003ccode\u003e@​savannahostrowski\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix doctrings for \u003ccode\u003emax_digits\u003c/code\u003e and \u003ccode\u003edecimal_places\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14944\"\u003e#14944\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add dates to release notes. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15001\"\u003e#15001\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15177\"\u003e#15177\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15178\"\u003e#15178\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15176\"\u003e#15176\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15175\"\u003e#15175\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15171\"\u003e#15171\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15170\"\u003e#15170\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for tr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15172\"\u003e#15172\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15168\"\u003e#15168\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1f442c454f2f74c7419f83c203e6333955399528\"\u003e\u003ccode\u003e1f442c4\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.135.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8f5d1577b471f389f6cdea878d40a1497fda7746\"\u003e\u003ccode\u003e8f5d157\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/428452a710338334ae11043a48b06d52d9b3edba\"\u003e\u003ccode\u003e428452a\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/70580da818722cce68b7a88928d67bd0f64f42c5\"\u003e\u003ccode\u003e70580da\u003c/code\u003e\u003c/a\u003e ✨ Add support for \u003ccode\u003e@app.vibe()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15280\"\u003e#15280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6ee87478d821171139264cd9cd17cbd2232934ce\"\u003e\u003ccode\u003e6ee8747\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3e72c09a2abfe9e1b55eede6a297cb1847126e49\"\u003e\u003ccode\u003e3e72c09\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI People - Experts (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15279\"\u003e#15279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/96df35f7a4337d612811483d8ade74f91cce2d61\"\u003e\u003ccode\u003e96df35f\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6c8112555bd86f21cfee8500140dca094ad26e20\"\u003e\u003ccode\u003e6c81125\u003c/code\u003e\u003c/a\u003e ⬆ Bump orjson from 3.11.7 to 3.11.8 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15276\"\u003e#15276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/428f82c93616b52aee2fcee03484a855135c07e5\"\u003e\u003ccode\u003e428f82c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/5599c59b9e7112109f04b63a58034fb95833f514\"\u003e\u003ccode\u003e5599c59\u003c/code\u003e\u003c/a\u003e ⬆ Bump ruff from 0.15.0 to 0.15.8 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15277\"\u003e#15277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.135.1...0.135.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.42.0 to 0.44.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.44.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2888\"\u003eKludex/uvicorn#2888\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.43.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.44.0 (April 6, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2888\"\u003e#2888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.43.0 (April 3, 2026)\u003c/h2\u003e\n\u003cp\u003eYou can quit Uvicorn now. We heard you, \u003ca href=\"https://github.com/pamelafox\"\u003e\u003ccode\u003e@​pamelafox\u003c/code\u003e\u003c/a\u003e - all 47 of your Ctrl+C's (thanks for flagging it, and thanks to \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e for the fix 🙏). \u003ca href=\"https://x.com/pamelafox/status/2039097686155227623\"\u003eSee the tweet\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/edb54c43c0321c0b41eee1473f3f4cf145e8927f\"\u003e\u003ccode\u003eedb54c4\u003c/code\u003e\u003c/a\u003e Version 0.44.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2890\"\u003e#2890\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/029be08867fe899cde6fd31a3ba75fffca7bd9ae\"\u003e\u003ccode\u003e029be08\u003c/code\u003e\u003c/a\u003e Implement websocket keepalive pings for websockets-sansio (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2888\"\u003e#2888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/8d397c73191b49c6d5280098d7c09dbe474e00bf\"\u003e\u003ccode\u003e8d397c7\u003c/code\u003e\u003c/a\u003e Version 0.43.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2885\"\u003e#2885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/587042d68ff6c813ec0d8cfafaa820ebe7229d23\"\u003e\u003ccode\u003e587042d\u003c/code\u003e\u003c/a\u003e 🐛 Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for s...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/c9a75fb67b2e969253a41ef4ad447e013eee879e\"\u003e\u003ccode\u003ec9a75fb\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2878\"\u003e#2878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/84fd578224e36766efb056585cb6cc5171270089\"\u003e\u003ccode\u003e84fd578\u003c/code\u003e\u003c/a\u003e chore(deps): bump pygments from 2.19.2 to 2.20.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2877\"\u003e#2877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/cd52d34b55d898180a65cfc01a6a88aac54c65c3\"\u003e\u003ccode\u003ecd52d34\u003c/code\u003e\u003c/a\u003e Use native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5211880320b2e99a532eb121808039404da234ab\"\u003e\u003ccode\u003e5211880\u003c/code\u003e\u003c/a\u003e Drop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/1cb8e747e2817ee46a4c0d44139e46b3b1f8fab6\"\u003e\u003ccode\u003e1cb8e74\u003c/code\u003e\u003c/a\u003e Add websocket 500 fallback header test (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2874\"\u003e#2874\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/28efbb24bd590f1f943cbc2bf84f197268a8c6d8\"\u003e\u003ccode\u003e28efbb2\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump cryptography from 46.0.5 to 46.0.6 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2873\"\u003e#2873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.42.0...0.44.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.22 to 0.0.26\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.26\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before first multipart boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003eKludex/python-multipart#262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003eKludex/python-multipart#259\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply Apache-2.0 properly by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003eKludex/python-multipart#247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003eKludex/python-multipart#252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003eKludex/python-multipart#230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003eKludex/python-multipart#254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove custom FormParser classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003eKludex/python-multipart#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003eKludex/python-multipart#258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd MIME content type info to File by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003eKludex/python-multipart#143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003eKludex/python-multipart#244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003eKludex/python-multipart#196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e by \u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.26 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before the first multipart boundary more efficiently \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003e#262\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing multipart boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003e#259\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.25 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd MIME content type info to \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003e#143\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003e#258\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRemove custom \u003ccode\u003eFormParser\u003c/code\u003e classes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003e#257\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003e#254\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003e#230\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003e#252\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eApply Apache-2.0 properly \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003e#247\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.24 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003e#244\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.23 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003e#196\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003e#229\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003e#227\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/28f47859b4a40c2e11e02dc514b2e9743ceedd2e\"\u003e\u003ccode\u003e28f4785\u003c/code\u003e\u003c/a\u003e Version 0.0.26 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d4452a78bbde94995dd3c0d1b4aff3610a5c472f\"\u003e\u003ccode\u003ed4452a7\u003c/code\u003e\u003c/a\u003e Silently discard epilogue data after the closing boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/259\"\u003e#259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6a7b76dd2653d99d8e5981d7ff09a4a047750b37\"\u003e\u003ccode\u003e6a7b76d\u003c/code\u003e\u003c/a\u003e Skip preamble before first multipart boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/4addb60350fc843f77a1502f14247db91930b3bf\"\u003e\u003ccode\u003e4addb60\u003c/code\u003e\u003c/a\u003e Version 0.0.25 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d3a4698e0dc16cbd85f98076b2ebf9b696cd3604\"\u003e\u003ccode\u003ed3a4698\u003c/code\u003e\u003c/a\u003e Add MIME content type info to File (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/143\"\u003e#143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/9a1ecbd074801fcd3911266f3f4442181d10ab92\"\u003e\u003ccode\u003e9a1ecbd\u003c/code\u003e\u003c/a\u003e Handle CTE values case-insensitively (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/258\"\u003e#258\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/ef2a0b94f95676ea6a7b77d2252b09f5797cb8ed\"\u003e\u003ccode\u003eef2a0b9\u003c/code\u003e\u003c/a\u003e Remove custom FormParser classes (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/257\"\u003e#257\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/3a757d7cf209e654eb17cf7b7af868eed469f680\"\u003e\u003ccode\u003e3a757d7\u003c/code\u003e\u003c/a\u003e Ignore local Claude state (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/255\"\u003e#255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/55e739617db7c40e2cd04c5ad8c7acf2ed0a1d19\"\u003e\u003ccode\u003e55e7396\u003c/code\u003e\u003c/a\u003e fuzz: Add cifuzz (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/186\"\u003e#186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d6d1d111e7de9ce3d3f8623fe5f5e4201c0a5fd1\"\u003e\u003ccode\u003ed6d1d11\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/249\"\u003e#249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.26\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.48 to 2.0.49\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.49\u003c/h1\u003e\n\u003cp\u003eReleased: April 3, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where \u003ccode\u003e_orm.Session.get()\u003c/code\u003e would bypass the identity map\nand emit unnecessary SQL when \u003ccode\u003ewith_for_update=False\u003c/code\u003e was passed,\nrather than treating it equivalently to the default of \u003ccode\u003eNone\u003c/code\u003e.\nPull request courtesy of Joshua Swanson.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13176\"\u003e#13176\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where chained \u003ccode\u003e_orm.joinedload()\u003c/code\u003e options would not be\napplied correctly when the final relationship in the chain is declared on a\nbase mapper and accessed through a subclass mapper in a\n\u003ccode\u003e_orm.with_polymorphic()\u003c/code\u003e query. The path registry now correctly\ncomputes the natural path when a property declared on a base class is\naccessed through a path containing a subclass mapper, ensuring the loader\noption can be located during query compilation.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13193\"\u003e#13193\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using \u003ccode\u003e_orm.Load.options()\u003c/code\u003e to apply a chained loader\noption such as \u003ccode\u003e_orm.joinedload()\u003c/code\u003e or \u003ccode\u003e_orm.selectinload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot generate the necessary clauses for the polymorphic subclasses. The\npolymorphic loading strategy is now correctly propagated when using a call\nsuch as \u003ccode\u003ejoinedload(A.b).options(joinedload(B.c.of_type(poly)))\u003c/code\u003e to match\nthe behavior of direct chaining e.g.\n\u003ccode\u003ejoinedload(A.b).joinedload(B.c.of_type(poly))\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13202\"\u003e#13202\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using chained loader options such as\n\u003ccode\u003e_orm.selectinload()\u003c/code\u003e after \u003ccode\u003e_orm.joinedload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot properly apply the chained loader option. The loader option is now\ncorrectly applied when using a call such as\n\u003ccode\u003ejoinedload(A.b.of_type(poly)).selectinload(poly.SubClass.c)\u003c/code\u003e to eagerly\nload related objects.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13209\"\u003e#13209\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etyping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[typing] [bug]\u003c/strong\u003e Fixed a typing issue where the typed members of :data:\u003ccode\u003e.func\u003c/code\u003e would return\nthe appropriate class of the same name, however this creates an issue for\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 7.3.0 to 7.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError in cluster metrics recording when connection is None or ClusterNode object instance is used to extract the connection info (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3999\"\u003e#3999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords might leak in plain text logs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3998\"\u003e#3998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cp\u003e-Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpose basic Otel classes and functions to be importable through redis.observability to match the examples in the readthedocs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3996\"\u003e#3996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/b72f24ad6a2226d46aed770e18094a86117d2217\"\u003e\u003ccode\u003eb72f24a\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/0a4e0afe36504c3fb6df1e38683ea946febac9d3\"\u003e\u003ccode\u003e0a4e0af\u003c/code\u003e\u003c/a\u003e Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/15492c9156d3ab8dce05360977480510cf24fbf9\"\u003e\u003ccode\u003e15492c9\u003c/code\u003e\u003c/a\u003e Refactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/cd964ac96649df872a051835e9a52e05a5090607\"\u003e\u003ccode\u003ecd964ac\u003c/code\u003e\u003c/a\u003e Expose basic Otel classes and funtions to be importable through redis.observa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/46ab74d02ed9b15176f67edb817de83524f8145a\"\u003e\u003ccode\u003e46ab74d\u003c/code\u003e\u003c/a\u003e Fixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/26482dbaae38abdb1966d9b1c803331e2dab2053\"\u003e\u003ccode\u003e26482db\u003c/code\u003e\u003c/a\u003e Fix AttributeError in cluster metrics recording when connection is None or Cl...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/redis-py/compare/v7.3.0...v7.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `supabase` from 2.28.2 to 2.28.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003esupabase's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.28.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md\"\u003esupabase's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/deac3232f6bdd242f60b46c7a8922e010524ca53\"\u003e\u003ccode\u003edeac323\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.3 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003e\u003ccode\u003ec7f8f13\u003c/code\u003e\u003c/a\u003e fix(postgrest): fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `postgrest` from 2.28.2 to 2.28.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003epostgrest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.28.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md\"\u003epostgrest's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/deac3232f6bdd242f60b46c7a8922e010524ca53\"\u003e\u003ccode\u003edeac323\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.3 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003e\u003ccode\u003ec7f8f13\u003c/code\u003e\u003c/a\u003e fix(postgrest): fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `storage3` from 2.28.2 to 2.28.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003estorage3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.28.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md\"\u003estorage3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/deac3232f6bdd242f60b46c7a8922e010524ca53\"\u003e\u003ccode\u003edeac323\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.3 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003e\u003ccode\u003ec7f8f13\u003c/code\u003e\u003c/a\u003e fix(postgrest): fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anthropic` from 0.85.0 to 0.94.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/releases\"\u003eanthropic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.94.0\u003c/h2\u003e\n\u003ch2\u003e0.94.0 (2026-04-10)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.93.0...v0.94.0\"\u003ev0.93.0...v0.94.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evertex eu region (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1658\"\u003e#1658\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b7e157d85f50b2900ddf896e8e80882dd7311bfd\"\u003eb7e157d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/837b25bb6262186a5bae92aa70eb73c3cf8c90af\"\u003e837b25b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimprove examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/48089fdb788500d00718b9d4ae24cd34e5e91beb\"\u003e48089fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0f3c28b973026d135f91f38c4ad82ae2b1131522\"\u003e0f3c28b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.93.0\u003c/h2\u003e\n\u003ch2\u003e0.93.0 (2026-04-09)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.92.0...v0.93.0\"\u003ev0.92.0...v0.93.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add beta advisor tool (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/4297dca285441b185ea9e3d18b7f912102b54be2\"\u003e4297dca\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.92.0\u003c/h2\u003e\n\u003ch2\u003e0.92.0 (2026-04-08)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.91.0...v0.92.0\"\u003ev0.91.0...v0.92.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add support for Claude Managed Agents (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/5b879a7d929bd93332d777bed067be680819dfac\"\u003e5b879a7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.91.0\u003c/h2\u003e\n\u003ch2\u003e0.91.0 (2026-04-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.90.0...v0.91.0\"\u003ev0.90.0...v0.91.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e Create Bedrock Mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1616\"\u003e#1616\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fd195a2fa2cd44ebf4513e69f671def88d2b6ec9\"\u003efd195a2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.90.0\u003c/h2\u003e\n\u003ch2\u003e0.90.0 (2026-04-07)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/blob/main/CHANGELOG.md\"\u003eanthropic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.94.0 (2026-04-10)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.93.0...v0.94.0\"\u003ev0.93.0...v0.94.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evertex eu region (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1658\"\u003e#1658\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b7e157d85f50b2900ddf896e8e80882dd7311bfd\"\u003eb7e157d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/837b25bb6262186a5bae92aa70eb73c3cf8c90af\"\u003e837b25b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimprove examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/48089fdb788500d00718b9d4ae24cd34e5e91beb\"\u003e48089fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0f3c28b973026d135f91f38c4ad82ae2b1131522\"\u003e0f3c28b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.93.0 (2026-04-09)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.92.0...v0.93.0\"\u003ev0.92.0...v0.93.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add beta advisor tool (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/4297dca285441b185ea9e3d18b7f912102b54be2\"\u003e4297dca\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.92.0 (2026-04-08)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.91.0...v0.92.0\"\u003ev0.91.0...v0.92.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add support for Claude Managed Agents (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/5b879a7d929bd93332d777bed067be680819dfac\"\u003e5b879a7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.91.0 (2026-04-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.90.0...v0.91.0\"\u003ev0.90.0...v0.91.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e Create Bedrock Mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1616\"\u003e#1616\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fd195a2fa2cd44ebf4513e69f671def88d2b6ec9\"\u003efd195a2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.90.0 (2026-04-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.89.0...v0.90.0\"\u003ev0.89.0...v0.90.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add support for claude-mythos-preview (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fc7ddd8e0296a578f09c7fa2baf00e50d81cf980\"\u003efc7ddd8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7b03b0fc0b103eaba7732fc5ae54fc86c963839a\"\u003e\u003ccode\u003e7b03b0f\u003c/code\u003e\u003c/a\u003e release: 0.94.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/42ee3dab539d6346505bae13745d34fe91c1946e\"\u003e\u003ccode\u003e42ee3da\u003c/code\u003e\u003c/a\u003e docs: update examples\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0c8a8c9ec660108666baf96acd4aab08d41027af\"\u003e\u003ccode\u003e0c8a8c9\u003c/code\u003e\u003c/a\u003e fix: ensure file data are only sent as 1 parameter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/9092064e862fe03afbca1740cbc21d20edcb4984\"\u003e\u003ccode\u003e9092064\u003c/code\u003e\u003c/a\u003e feat: vertex eu region (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/25b6c31ca04c107c9b31d61e13ad69a1598ff65f\"\u003e\u003ccode\u003e25b6c31\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/717f90bf95b0dd3e1fefb2df06c022f16a03ee96\"\u003e\u003ccode\u003e717f90b\u003c/code\u003e\u003c/a\u003e release: 0.93.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c10155947d844c7545b533bb62748e4381d5d7c5\"\u003e\u003ccode\u003ec101559\u003c/code\u003e\u003c/a\u003e feat(api): Add beta advisor tool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/5a290a8defab65e68d240116cbefa85987253946\"\u003e\u003ccode\u003e5a290a8\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c2cc6f9947fb89afd9c11cbc178631209dd2fba5\"\u003e\u003ccode\u003ec2cc6f9\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/90cd200895a7625481e6edc4696704e37b6d7dfd\"\u003e\u003ccode\u003e90cd200\u003c/code\u003e\u003c/a\u003e release: 0.92.0 (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1348\"\u003e#1348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.85.0...v0.94.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.28.0 to 2.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.31.0\u003c/h2\u003e\n\u003ch2\u003e2.31.0 (2026-04-08)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.30.0...v2.31.0\"\u003ev2.30.0...v2.31.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add phase field to conversations message (\u003ca href=\"https://github.com/openai/openai-python/commit/3e5834efb39b24e019a29dc54d890c67d18cbb54\"\u003e3e5834e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add web_search_call.results to ResponseIncludable type (\u003ca href=\"https://github.com/openai/openai-python/commit/ffd8741dd38609a5af0159ceb800d8ddba7925f8\"\u003effd8741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add support for short-lived tokens (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/1608\"\u003e#1608\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/22fe7228d4990c197cd721b3ad7931ad05cca5dd\"\u003e22fe722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e support sending raw data over websockets (\u003ca href=\"https://github.com/openai/openai-python/commit/f1bc52ef641dfca6fdf2a5b00ce3b09bff2552f5\"\u003ef1bc52e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e implement indices array format for query and form serialization (\u003ca href=\"https://github.com/openai/openai-python/commit/49194cfa711328216ff131d6f65c9298822a7c51\"\u003e49194cf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e preserve hardcoded query params when merging with user params (\u003ca href=\"https://github.com/openai/openai-python/commit/92e109c3d9569a942e1919e75977dc13fa015f9a\"\u003e92e109c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e remove web_search_call.results from ResponseIncludable (\u003ca href=\"https://github.com/openai/openai-python/commit/d3cc40165cd86015833d15167cc7712b4102f932\"\u003ed3cc401\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.20.1 (\u003ca href=\"https://github.com/openai/openai-python/commit/d60e2eea7f6916540cd4ba901dceb07051119da4\"\u003ed60e2ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.20.2 (\u003ca href=\"https://github.com/openai/openai-python/commit/6508d474332d4e82d9615c0a9a77379f9b5e4412\"\u003e6508d47\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update file parameter descriptions in vector_stores files and file_batches (\u003ca href=\"https://github.com/openai/openai-python/commit/a9e7ebd505b9ae90514339aa63c6f1984a08cf6b\"\u003ea9e7ebd\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.30.0\u003c/h2\u003e\n\u003ch2\u003e2.30.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.29.0...v2.30.0\"\u003ev2.29.0...v2.30.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add keys field to Click/DoubleClick/Drag/Move/Scroll computer actions (\u003ca href=\"https://github.com/openai/openai-python/commit/ee1bbeddbb38dab817557412dc106354409bb950\"\u003eee1bbed\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e align SDK response types with expanded item schemas (\u003ca href=\"https://github.com/openai/openai-python/commit/f3f258a9d4d19db3fb0c6c35e25ad3cedbe71254\"\u003ef3f258a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esanitize endpoint path params (\u003ca href=\"https://github.com/openai/openai-python/commit/89f66988fde790c0c83ff8b876d1e1b10d616367\"\u003e89f6698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e make type required in ResponseInputMessageItem (\u003ca href=\"https://github.com/openai/openai-python/commit/cfdb1676ea0550840330a58f1a31a40a41a0a53f\"\u003ecfdb167\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e skip lint on metadata-only changes (\u003ca href=\"https://github.com/openai/openai-python/commit/faa93e19a1d5c30c7dd672a08dbbdbb3c0374714\"\u003efaa93e1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.31.0 (2026-04-08)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.30.0...v2.31.0\"\u003ev2.30.0...v2.31.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add phase field to conversations message (\u003ca href=\"https://github.com/openai/openai-python/commit/3e5834efb39b24e019a29dc54d890c67d18cbb54\"\u003e3e5834e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add web_search_call.results to ResponseIncludable type (\u003ca href=\"https://github.com/openai/openai-python/commit/ffd8741dd38609a5af0159ceb800d8ddba7925f8\"\u003effd8741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add support for short-lived tokens (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/1608\"\u003e#1608\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/22fe7228d4990c197cd721b3ad7931ad05cca5dd\"\u003e22fe722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e support sending raw data over websockets (\u003ca href=\"https://github.com/openai/openai-python/commit/f1bc52ef641dfca6fdf2a5b00ce3b09bff2552f5\"\u003ef1bc52e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e implement indices array format for query and form serialization (\u003ca href=\"https://github.com/openai/openai-python/commit/49194cfa711328216ff131d6f65c9298822a7c51\"\u003e49194cf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e preserve hardcoded query params when merging with user params (\u003ca href=\"https://github.com/openai/openai-python/commit/92e109c3d9569a942e1919e75977dc13fa015f9a\"\u003e92e109c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e remove web_search_call.results from ResponseIncludable (\u003ca href=\"https://github.com/openai/openai-python/commit/d3cc40165cd86015833d15167cc7712b4102f932\"\u003ed3cc401\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.20.1 (\u003ca href=\"https://github.com/openai/openai-python/commit/d60e2eea7f6916540cd4ba901dceb07051119da4\"\u003ed60e2ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.20.2 (\u003ca href=\"https://github.com/openai/openai-python/commit/6508d474332d4e82d9615c0a9a77379f9b5e4412\"\u003e6508d47\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update file parameter descriptions in vector_stores files and file_batches (\u003ca href=\"https://github.com/openai/openai-python/commit/a9e7ebd505b9ae90514339aa63c6f1984a08cf6b\"\u003ea9e7ebd\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.30.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.29.0...v2.30.0\"\u003ev2.29.0...v2.30.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add keys field to Click/DoubleClick/Drag/Move/Scroll computer actions (\u003ca href=\"https://github.com/openai/openai-python/commit/ee1bbeddbb38dab817557412dc106354409bb950\"\u003eee1bbed\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e align SDK response types with expanded item schemas (\u003ca href=\"https://github.com/openai/openai-python/commit/f3f258a9d4d19db3fb0c6c35e25ad3cedbe71254\"\u003ef3f258a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esanitize endpoint path params (\u003ca href=\"https://github.com/openai/openai-python/commit/89f66988fde790c0c83ff8b876d1e1b10d616367\"\u003e89f6698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e make type required in ResponseInputMessageItem (\u003ca href=\"https://github.com/openai/openai-python/commit/cfdb1676ea0550840330a58f1a31a40a41a0a53f\"\u003ecfdb167\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e skip lint on metadata-only changes (\u003ca href=\"https://github.com/openai/openai-python/commit/faa93e19a1d5c30c7dd672a08dbbdbb3c0374714\"\u003efaa93e1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e update gitignore (\u003ca href=\"https://github.com/openai/openai-python/commit/c468477f1546579618865a726e35a685cffeacd9\"\u003ec468477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.4 (\u003ca href=\"https://github.com/openai/openai-python/commit/f350af86c13ade0237778010d264c55fda443354\"\u003ef350af8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/750354ed65565b31d0547bf00f4f3180ac1bfeef\"\u003e\u003ccode\u003e750354e\u003c/code\u003e\u003c/a\u003e release: 2.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/5be95364a5a82746cb7b1c77df10dfaf138496bb\"\u003e\u003ccode\u003e5be9536\u003c/code\u003e\u003c/a\u003e feat(client): add support for short-lived tokens (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/1608\"\u003e#1608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/f1fd4fae0329ee3df2f1bb25d93f51311782ad1a\"\u003e\u003ccode\u003ef1fd4fa\u003c/code\u003e\u003c/a\u003e feat(client): support sending raw data over websockets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/73ea2f75ba57a1db964518b33b790b1e1251b8d5\"\u003e\u003ccode\u003e73ea2f7\u003c/code\u003e\u003c/a\u003e fix(client): preserve hardcoded query params when merging with user params\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/454b2575d59a086f279d99dc791058acee2f14c0\"\u003e\u003ccode\u003e454b257\u003c/code\u003e\u003c/a\u003e feat(api): add web_search_call.results to ResponseIncludable type\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/de2c7b1d087f41f33ada85a7460f32e55331778a\"\u003e\u003ccode\u003ede2c7b1\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/6efca95a76f6ca9cb91fdf536c6c9ebcef075541\"\u003e\u003ccode\u003e6efca95\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2076d85f9226113e4ba360a7f456091988092dbf\"\u003e\u003ccode\u003e2076d85\u003c/code\u003e\u003c/a\u003e feat(api): add phase field to conversations message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/c0c59afa39a82f73063a52f624a9a4a2a6bf3313\"\u003e\u003ccode\u003ec0c59af\u003c/code\u003e\u003c/a\u003e fix(types): remove web_search_call.results from ResponseIncludable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/ad7cc79c80b7ddffb03c0339be05f468ae46d54f\"\u003e\u003ccode\u003ead7cc79\u003c/code\u003e\u003c/a\u003e docs(api): update file parameter descriptions in vector_stores files and file...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.28.0...v2.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `claude-agent-sdk` from 0.1.48 to 0.1.58\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/releases\"\u003eclaude-agent-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.1.58\u003c/h2\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.97\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003ePyPI:\u003c/strong\u003e \u003ca href=\"https://pypi.org/project/claude-agent-sdk/0.1.58/\"\u003ehttps://pypi.org/project/claude-agent-sdk/0.1.58/\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install claude-agent-sdk==0.1.58\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.1.57\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCross-user prompt caching\u003c/strong\u003e: Added \u003ccode\u003eexclude_dynamic_sections\u003c/code\u003e option to \u003ccode\u003eSystemPromptPreset\u003c/code\u003e, enabling cross-user prompt cache hits by moving per-user dynamic sections (working directory, memory, git status) out of the system prompt (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/797\"\u003e#797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAuto permission mode\u003c/strong\u003e: Added \u003ccode\u003e\u0026quot;auto\u0026quot;\u003c/code\u003e to the \u003ccode\u003ePermissionMode\u003c/code\u003e type, bringing parity with the TypeScript SDK and CLI v2.1.90+ (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/785\"\u003e#785\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eThinking configuration\u003c/strong\u003e: Fixed \u003ccode\u003ethinking={\u0026quot;type\u0026quot;: \u0026quot;adaptive\u0026quot;}\u003c/code\u003e incorrectly mapping to \u003ccode\u003e--max-thinking-tokens 32000\u003c/code\u003e instead of \u003ccode\u003e--thinking adaptive\u003c/code\u003e. The \u003ccode\u003edisabled\u003c/code\u003e type similarly now uses \u003ccode\u003e--thinking disabled\u003c/code\u003e instead of \u003ccode\u003e--max-thinking-tokens 0\u003c/code\u003e, matching the TypeScript SDK behavior (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/796\"\u003e#796\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.96\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003ePyPI:\u003c/strong\u003e \u003ca href=\"https://pypi.org/project/claude-agent-sdk/0.1.57/\"\u003ehttps://pypi.org/project/claude-agent-sdk/0.1.57/\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install claude-agent-sdk==0.1.57\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.1.56\u003c/h2\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.92\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003ePyPI:\u003c/strong\u003e \u003ca href=\"https://pypi.org/project/claude-agent-sdk/0.1.56/\"\u003ehttps://pypi.org/project/claude-agent-sdk/0.1.56/\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/blob/main/CHANGELOG.md\"\u003eclaude-agent-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.1.58\u003c/h2\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.97\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.1.57\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCross-user prompt caching\u003c/strong\u003e: Added \u003ccode\u003eexclude_dynamic_sections\u003c/code\u003e option to \u003ccode\u003eSystemPromptPreset\u003c/code\u003e, enabling cross-user prompt cache hits by moving per-user dynamic sections (working directory, memory, git status) out of the system prompt (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/797\"\u003e#797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAuto permission mode\u003c/strong\u003e: Added \u003ccode\u003e\u0026quot;auto\u0026quot;\u003c/code\u003e to the \u003ccode\u003ePermissionMode\u003c/code\u003e type, bringing parity with the TypeScript SDK and CLI v2.1.90+ (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/785\"\u003e#785\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eThinking configuration\u003c/strong\u003e: Fixed \u003ccode\u003ethinking={\u0026quot;type\u0026quot;: \u0026quot;adaptive\u0026quot;}\u003c/code\u003e incorrectly mapping to \u003ccode\u003e--max-thinking-tokens 32000\u003c/code\u003e instead of \u003ccode\u003e--thinking adaptive\u003c/code\u003e. The \u003ccode\u003edisabled\u003c/code\u003e type similarly now uses \u003ccode\u003e--thinking disabled\u003c/code\u003e instead of \u003ccode\u003e--max-thinking-tokens 0\u003c/code\u003e, matching the TypeScript SDK behavior (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/796\"\u003e#796\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.96\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.1.56\u003c/h2\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.92\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.1.55\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eMCP large tool results\u003c/strong\u003e: Forward \u003ccode\u003emaxResultSizeChars\u003c/code\u003e from \u003ccode\u003eToolAnnotations\u003c/code\u003e via \u003ccode\u003e_meta\u003c/code\u003e to bypass Zod annotation stripping in the CLI, fixing silent truncation of large MCP tool results (\u0026gt;50K chars) (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.91\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.1.53\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSetting sources flag\u003c/strong\u003e: Fixed \u003ccode\u003e--setting-sources\u003c/code\u003e being passed as an empty string when not provided, which caused the CLI to misparse subsequent flags (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/778\"\u003e#778\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eString prompt deadlock\u003c/strong\u003e: Fixed deadlock when using \u003ccode\u003equery()\u003c/code\u003e with a string prompt and hooks/MCP servers that trigger many tool calls, by spawning \u003ccode\u003ewait_for_result_and_end_input()\u003c/code\u003e as a background task (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/780\"\u003e#780\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.88\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.1.52\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/1f47adda040da10273a715a120c0e43560861589\"\u003e\u003ccode\u003e1f47add\u003c/code\u003e\u003c/a\u003e docs: update changelog for v0.1.58\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/9cfc38f4b0264087459a5c2aa026bc4afe482a20\"\u003e\u003ccode\u003e9cfc38f\u003c/code\u003e\u003c/a\u003e chore: release v0.1.58\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/25c1342f40b25f470f2f355890b4bce20c63fd01\"\u003e\u003ccode\u003e25c1342\u003c/code\u003e\u003c/a\u003e chore: bump bundled CLI version to 2.1.97\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/51adfc78c14dc22ee232f57b1adae966751ec407\"\u003e\u003ccode\u003e51adfc7\u003c/code\u003e\u003c/a\u003e docs: update changelog for v0.1.57\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/78fc3e0d5db624ce62406e1889f41b317c947d8a\"\u003e\u003ccode\u003e78fc3e0\u003c/code\u003e\u003c/a\u003e chore: release v0.1.57\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/6870ef1d885b3e64aaba6bb6738fcc8c1866ac00\"\u003e\u003ccode\u003e6870ef1\u003c/code\u003e\u003c/a\u003e chore: bump bundled CLI version to 2.1.96\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/3bf8fd5a46af36b44e86ca6af083f7a4e24f86c5\"\u003e\u003ccode\u003e3bf8fd5\u003c/code\u003e\u003c/a\u003e Add exclude_dynamic_sections to SystemPromptPreset for cross-user caching (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/797\"\u003e#797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/83c1e0ad1e7e8603abcb2fa08894197e0e774dde\"\u003e\u003ccode\u003e83c1e0a\u003c/code\u003e\u003c/a\u003e chore: bump bundled CLI version to 2.1.94\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/6617b9ea425fd544a1a0ac07c0f1589f704a6674\"\u003e\u003ccode\u003e6617b9e\u003c/code\u003e\u003c/a\u003e fix: pass --thinking flag for adaptive/disabled instead of budget tokens (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/796\"\u003e#796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/841ee8730412bff5127d898661df8af449d2e985\"\u003e\u003ccode\u003e841ee87\u003c/code\u003e\u003c/a\u003e Add 'auto' to PermissionMode type (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/785\"\u003e#785\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/compare/v0.1.48...v0.1.58\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dependency-injector` from 4.48.3 to 4.49.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.49.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.14 support\u003c/li\u003e\n\u003cli\u003eFix Pydantic v2 deprecation warning triggering on settings class import (fixes \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix grammar in Declarative Container documentation by \u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing warn_unresolved parameter to WiringConfiguration in containers.pyi by \u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd keep_cache argument to Container.wire typings by \u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for some type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/943\"\u003eets-labs/python-dependency-inj...\n\n_Description has been truncated_","html_url":"https://github.com/pilotspace/pilot-space/pull/131","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pilotspace%2Fpilot-space/issues/131","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/131/packages"},{"uuid":"4223111749","node_id":"PR_kwDOPYkt3s7QvRfu","number":532,"state":"closed","title":"build(deps): bump the all-python-deps group across 1 directory with 18 updates","user":"dependabot[bot]","labels":[],"assignees":["scottfrasso"],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-13T08:25:26.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-08T08:18:12.000Z","updated_at":"2026-04-13T08:25:28.000Z","time_to_close":432434,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"all-python-deps","update_count":18,"packages":[{"name":"pydantic-ai","old_version":"1.70.0","new_version":"1.78.0","repository_url":"https://github.com/pydantic/pydantic-ai"},{"name":"logfire","old_version":"4.29.0","new_version":"4.31.0","repository_url":"https://github.com/pydantic/logfire"},{"name":"posthog","old_version":"7.9.12","new_version":"7.10.0","repository_url":"https://github.com/posthog/posthog-python"},{"name":"textual","old_version":"8.1.1","new_version":"8.2.3","repository_url":"https://github.com/Textualize/textual"},{"name":"real-ladybug","old_version":"0.15.1","new_version":"0.15.3","repository_url":"https://github.com/lbugdb/lbug"},{"name":"tree-sitter-rust","old_version":"0.24.0","new_version":"0.24.2","repository_url":"https://github.com/tree-sitter/tree-sitter-rust"},{"name":"openai","old_version":"2.29.0","new_version":"2.30.0","repository_url":"https://github.com/openai/openai-python"},{"name":"anthropic","old_version":"0.85.0","new_version":"0.91.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"genai-prices","old_version":"0.0.55","new_version":"0.0.56","repository_url":"https://github.com/pydantic/genai-prices"},{"name":"dependency-injector","old_version":"4.48.3","new_version":"4.49.0","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"claude-agent-sdk","old_version":"0.1.48","new_version":"0.1.56","repository_url":"https://github.com/anthropics/claude-agent-sdk-python"},{"name":"mypy","old_version":"1.19.1","new_version":"1.20.0","repository_url":"https://github.com/python/mypy"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"ruff","old_version":"0.15.6","new_version":"0.15.9","repository_url":"https://github.com/astral-sh/ruff"},{"name":"types-aiofiles","old_version":"25.1.0.20251011","new_version":"25.1.0.20260408","repository_url":"https://github.com/python/typeshed"},{"name":"types-psutil","old_version":"7.2.2.20260130","new_version":"7.2.2.20260408","repository_url":"https://github.com/python/typeshed"},{"name":"types-pyyaml","old_version":"6.0.12.20250915","new_version":"6.0.12.20260408","repository_url":"https://github.com/python/typeshed"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-python-deps group with 18 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic-ai](https://github.com/pydantic/pydantic-ai) | `1.70.0` | `1.78.0` |\n| [logfire](https://github.com/pydantic/logfire) | `4.29.0` | `4.31.0` |\n| [posthog](https://github.com/posthog/posthog-python) | `7.9.12` | `7.10.0` |\n| [textual](https://github.com/Textualize/textual) | `8.1.1` | `8.2.3` |\n| [real-ladybug](https://github.com/lbugdb/lbug) | `0.15.1` | `0.15.3` |\n| [tree-sitter-rust](https://github.com/tree-sitter/tree-sitter-rust) | `0.24.0` | `0.24.2` |\n| [openai](https://github.com/openai/openai-python) | `2.29.0` | `2.30.0` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.85.0` | `0.91.0` |\n| [genai-prices](https://github.com/pydantic/genai-prices) | `0.0.55` | `0.0.56` |\n| [dependency-injector](https://github.com/ets-labs/python-dependency-injector) | `4.48.3` | `4.49.0` |\n| [claude-agent-sdk](https://github.com/anthropics/claude-agent-sdk-python) | `0.1.48` | `0.1.56` |\n| [mypy](https://github.com/python/mypy) | `1.19.1` | `1.20.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.6` | `0.15.9` |\n| [types-aiofiles](https://github.com/python/typeshed) | `25.1.0.20251011` | `25.1.0.20260408` |\n| [types-psutil](https://github.com/python/typeshed) | `7.2.2.20260130` | `7.2.2.20260408` |\n| [types-pyyaml](https://github.com/python/typeshed) | `6.0.12.20250915` | `6.0.12.20260408` |\n\n\nUpdates `pydantic-ai` from 1.70.0 to 1.78.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-ai/releases\"\u003epydantic-ai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.78.0 (2026-04-07)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd cached token span attributes per OTel spec by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/5013\"\u003epydantic/pydantic-ai#5013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add \u003ccode\u003ereturn_schema\u003c/code\u003e and \u003ccode\u003efunction_signature\u003c/code\u003e to \u003ccode\u003eToolDefinition\u003c/code\u003e by \u003ca href=\"https://github.com/adtyavrdhn\"\u003e\u003ccode\u003e@​adtyavrdhn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4964\"\u003epydantic/pydantic-ai#4964\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add \u003ccode\u003eSetToolMetadata\u003c/code\u003e capability by \u003ca href=\"https://github.com/DouweM\"\u003e\u003ccode\u003e@​DouweM\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4964\"\u003epydantic/pydantic-ai#4964\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Ricardo-M-L\"\u003e\u003ccode\u003e@​Ricardo-M-L\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4968\"\u003epydantic/pydantic-ai#4968\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chernistry\"\u003e\u003ccode\u003e@​chernistry\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/5005\"\u003epydantic/pydantic-ai#5005\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vladdoster\"\u003e\u003ccode\u003e@​vladdoster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4620\"\u003epydantic/pydantic-ai#4620\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/edmcman\"\u003e\u003ccode\u003e@​edmcman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4584\"\u003epydantic/pydantic-ai#4584\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drPod\"\u003e\u003ccode\u003e@​drPod\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4809\"\u003epydantic/pydantic-ai#4809\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/1Ninad\"\u003e\u003ccode\u003e@​1Ninad\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4945\"\u003epydantic/pydantic-ai#4945\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-ai/compare/v1.77.0...v1.78.0\"\u003ehttps://github.com/pydantic/pydantic-ai/compare/v1.77.0...v1.78.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.77.0 (2026-04-02)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add local \u003ccode\u003eWebFetch\u003c/code\u003e tool and have \u003ccode\u003eWebFetch\u003c/code\u003e capability use it when provider lacks builtin support by \u003ca href=\"https://github.com/DEENUU1\"\u003e\u003ccode\u003e@​DEENUU1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4906\"\u003epydantic/pydantic-ai#4906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003edefer_loading\u003c/code\u003e to tools and toolsets to enable tool search by \u003ca href=\"https://github.com/dsfaccini\"\u003e\u003ccode\u003e@​dsfaccini\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4090\"\u003epydantic/pydantic-ai#4090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eThreadExecutor\u003c/code\u003e capability and \u003ccode\u003eAgent.using_thread_executor()\u003c/code\u003e by \u003ca href=\"https://github.com/DouweM\"\u003e\u003ccode\u003e@​DouweM\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4942\"\u003epydantic/pydantic-ai#4942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: smart instruction caching — automatically insert Anthropic/Bedrock cache boundary at static/dynamic split by \u003ca href=\"https://github.com/Alex-Resch\"\u003e\u003ccode\u003e@​Alex-Resch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4865\"\u003epydantic/pydantic-ai#4865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eserver_message_id\u003c/code\u003e in \u003ccode\u003eVercelAIEventStream\u003c/code\u003e by \u003ca href=\"https://github.com/dsfaccini\"\u003e\u003ccode\u003e@​dsfaccini\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4579\"\u003epydantic/pydantic-ai#4579\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: run output validators for image outputs by \u003ca href=\"https://github.com/dsfaccini\"\u003e\u003ccode\u003e@​dsfaccini\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4938\"\u003epydantic/pydantic-ai#4938\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap streaming SDK errors in \u003ccode\u003eModelHTTPError\u003c/code\u003e/\u003ccode\u003eModelAPIError\u003c/code\u003e by \u003ca href=\"https://github.com/dsfaccini\"\u003e\u003ccode\u003e@​dsfaccini\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4889\"\u003epydantic/pydantic-ai#4889\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Alex-Resch\"\u003e\u003ccode\u003e@​Alex-Resch\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4865\"\u003epydantic/pydantic-ai#4865\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-ai/compare/v1.76.0...v1.77.0\"\u003ehttps://github.com/pydantic/pydantic-ai/compare/v1.76.0...v1.77.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.76.0 (2026-04-01)\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHave \u003ccode\u003eImageGeneration\u003c/code\u003e capability auto-fallback to subagent with imagegen model if main model lacks imagegen by \u003ca href=\"https://github.com/DouweM\"\u003e\u003ccode\u003e@​DouweM\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4910\"\u003epydantic/pydantic-ai#4910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eagent\u003c/code\u003e to \u003ccode\u003eRunContext\u003c/code\u003e by \u003ca href=\"https://github.com/DouweM\"\u003e\u003ccode\u003e@​DouweM\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4922\"\u003epydantic/pydantic-ai#4922\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eInclude \u003ccode\u003egen_ai.operation.name\u003c/code\u003e span attribute in agent runs by \u003ca href=\"https://github.com/adriangb\"\u003e\u003ccode\u003e@​adriangb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4936\"\u003epydantic/pydantic-ai#4936\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e📦 Dependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate Mistral integration to mistralai SDK v2 by \u003ca href=\"https://github.com/doramirdor\"\u003e\u003ccode\u003e@​doramirdor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4736\"\u003epydantic/pydantic-ai#4736\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/doramirdor\"\u003e\u003ccode\u003e@​doramirdor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4736\"\u003epydantic/pydantic-ai#4736\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/9c51f802aec045485871ab483484183164eae450\"\u003e\u003ccode\u003e9c51f80\u003c/code\u003e\u003c/a\u003e feat: add \u003ccode\u003ereturn_schema\u003c/code\u003e and \u003ccode\u003efunction_signature\u003c/code\u003e to \u003ccode\u003eToolDefinition\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/issues/4964\"\u003e#4964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/0c0cb3bd7820cc1853e7acdeaeff41427685c6bf\"\u003e\u003ccode\u003e0c0cb3b\u003c/code\u003e\u003c/a\u003e Add cached token span attributes per OTel spec (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/issues/5013\"\u003e#5013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/75f7fb84cefbd046859dde5098c3677ff7b6660b\"\u003e\u003ccode\u003e75f7fb8\u003c/code\u003e\u003c/a\u003e groq: migrate usage extraction to \u003ccode\u003eRequestUsage.extract()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/issues/4945\"\u003e#4945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/34884f5659b2c6379cfa38d5781006fc98927bb7\"\u003e\u003ccode\u003e34884f5\u003c/code\u003e\u003c/a\u003e fix: correct grammar and duplicate words across codebase (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/issues/4970\"\u003e#4970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/cbdbb8fed29bf53d63a2fd5ba5bb39e34ab41bc8\"\u003e\u003ccode\u003ecbdbb8f\u003c/code\u003e\u003c/a\u003e Add Respan to alternative observability backends (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/issues/4809\"\u003e#4809\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/fc8413d17875da85001e44a152279fc56d97bc13\"\u003e\u003ccode\u003efc8413d\u003c/code\u003e\u003c/a\u003e Improve openai model docs (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/issues/4584\"\u003e#4584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/9ea99d158465518323caea95379d814d00b07c9b\"\u003e\u003ccode\u003e9ea99d1\u003c/code\u003e\u003c/a\u003e docs: correct inconsistent spelling of \u003ccode\u003ereuse\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/issues/4620\"\u003e#4620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/74dfd747b4da7808acc234ca2ffbe4eb033d3bf2\"\u003e\u003ccode\u003e74dfd74\u003c/code\u003e\u003c/a\u003e fix: correct typos in BaseStatePersistence docstrings (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/issues/5005\"\u003e#5005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/0cf69c078169b4211a2b5a2841c2450a2f611c64\"\u003e\u003ccode\u003e0cf69c0\u003c/code\u003e\u003c/a\u003e fix: remove duplicate word in toolsets documentation (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/issues/4968\"\u003e#4968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/5349a9a0ea0a62ddc64e875cb2c6f685495ff1a3\"\u003e\u003ccode\u003e5349a9a\u003c/code\u003e\u003c/a\u003e chore: bump vulnerable dependencies (Dependabot alerts) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/issues/4978\"\u003e#4978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-ai/compare/v1.70.0...v1.78.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `logfire` from 4.29.0 to 4.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/logfire/releases\"\u003elogfire's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.31.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elogfire.instrument_claude_agent_sdk()\u003c/code\u003e by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1799\"\u003e#1799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add \u003ccode\u003elogfire.url_from_eval(report)\u003c/code\u003e method by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1694\"\u003e#1694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: include cached tokens in \u003ccode\u003egen_ai.usage.input_tokens\u003c/code\u003e for Anthropic by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1812\"\u003e#1812\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle bare MCP request types for fastmcp 3.x compatibility by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1813\"\u003e#1813\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.30.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elogfire auth logout\u003c/code\u003e command by \u003ca href=\"https://github.com/ai-man-codes\"\u003e\u003ccode\u003e@​ai-man-codes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1781\"\u003e#1781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove Rich link styling from project URL output by \u003ca href=\"https://github.com/ameenalkhaldi\"\u003e\u003ccode\u003e@​ameenalkhaldi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1784\"\u003e#1784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix push_config() to push labels and versions by \u003ca href=\"https://github.com/dmontagu\"\u003e\u003ccode\u003e@​dmontagu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1785\"\u003e#1785\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMerge \u003ccode\u003eexport_dataset\u003c/code\u003e into \u003ccode\u003eget_dataset\u003c/code\u003e with \u003ccode\u003einclude_cases\u003c/code\u003e parameter by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1792\"\u003e#1792\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/logfire/blob/main/CHANGELOG.md\"\u003elogfire's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v4.31.0] (2026-03-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elogfire.instrument_claude_agent_sdk()\u003c/code\u003e by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1799\"\u003e#1799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add \u003ccode\u003elogfire.url_from_eval(report)\u003c/code\u003e method by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1694\"\u003e#1694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: include cached tokens in \u003ccode\u003egen_ai.usage.input_tokens\u003c/code\u003e for Anthropic by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1812\"\u003e#1812\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle bare MCP request types for fastmcp 3.x compatibility by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1813\"\u003e#1813\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[v4.30.0] (2026-03-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elogfire auth logout\u003c/code\u003e command by \u003ca href=\"https://github.com/ai-man-codes\"\u003e\u003ccode\u003e@​ai-man-codes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1781\"\u003e#1781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove Rich link styling from project URL output by \u003ca href=\"https://github.com/ameenalkhaldi\"\u003e\u003ccode\u003e@​ameenalkhaldi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1784\"\u003e#1784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix push_config() to push labels and versions by \u003ca href=\"https://github.com/dmontagu\"\u003e\u003ccode\u003e@​dmontagu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1785\"\u003e#1785\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMerge \u003ccode\u003eexport_dataset\u003c/code\u003e into \u003ccode\u003eget_dataset\u003c/code\u003e with \u003ccode\u003einclude_cases\u003c/code\u003e parameter by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1792\"\u003e#1792\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/7750fed650ea27827a920295f43bfcc217f3982e\"\u003e\u003ccode\u003e7750fed\u003c/code\u003e\u003c/a\u003e Release v4.31.0 (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1814\"\u003e#1814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/5b377818903e56d548172d841ab2813ab84f5575\"\u003e\u003ccode\u003e5b37781\u003c/code\u003e\u003c/a\u003e fix: handle bare MCP request types for fastmcp 3.x compatibility (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1813\"\u003e#1813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/6de926bba6cc9ac302679c6ecb4077d7766a58e1\"\u003e\u003ccode\u003e6de926b\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003elogfire.instrument_claude_agent_sdk()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1799\"\u003e#1799\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/9272a0647ff3ce19bb233a9fd12a99a3f41564b8\"\u003e\u003ccode\u003e9272a06\u003c/code\u003e\u003c/a\u003e fix: include cached tokens in gen_ai.usage.input_tokens for Anthropic (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1812\"\u003e#1812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/7ee31f6b764442c3a8a48d6306737e1e5fa51179\"\u003e\u003ccode\u003e7ee31f6\u003c/code\u003e\u003c/a\u003e feat: add \u003ccode\u003elogfire.url_from_eval(report)\u003c/code\u003e method (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1694\"\u003e#1694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/c39f1a05934b830ddf79ec757148f7c69abaef51\"\u003e\u003ccode\u003ec39f1a0\u003c/code\u003e\u003c/a\u003e Add exclude-newer = \u0026quot;1 week\u0026quot; to uv to reduce security risks (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1805\"\u003e#1805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/c922c635b21a00932326df7f705270cd6a45d561\"\u003e\u003ccode\u003ec922c63\u003c/code\u003e\u003c/a\u003e docs: update API keys page with all available public APIs (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1803\"\u003e#1803\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/be5986723b9e7a5610009c3509d0e390cb6b45ac\"\u003e\u003ccode\u003ebe59867\u003c/code\u003e\u003c/a\u003e Move coverage out of make test into make testcov (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1802\"\u003e#1802\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/b8d18faf520c24e5026238085de06945ec5abb67\"\u003e\u003ccode\u003eb8d18fa\u003c/code\u003e\u003c/a\u003e Add documentation about Prompt Playground (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/4a97c2f8e056de5f10826da437cbccf2b386c9dc\"\u003e\u003ccode\u003e4a97c2f\u003c/code\u003e\u003c/a\u003e docs: update datasets docs for unified evals UI (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1787\"\u003e#1787\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/logfire/compare/v4.29.0...v4.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `posthog` from 7.9.12 to 7.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/posthog/posthog-python/releases\"\u003eposthog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add AI provider integration examples by \u003ca href=\"https://github.com/richardsolomou\"\u003e\u003ccode\u003e@​richardsolomou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/466\"\u003ePostHog/posthog-python#466\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: update localhost port in examples from 8000 to 8010 by \u003ca href=\"https://github.com/parinporecha\"\u003e\u003ccode\u003e@​parinporecha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/453\"\u003ePostHog/posthog-python#453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: pin litellm to 1.81.13 in example by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/469\"\u003ePostHog/posthog-python#469\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add minimum fastapi exception capture repro case by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/470\"\u003ePostHog/posthog-python#470\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: enforce 7-day minimum release age via uv exclude-newer by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/476\"\u003ePostHog/posthog-python#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(examples): migrate AI examples from pip to uv with locked versions by \u003ca href=\"https://github.com/richardsolomou\"\u003e\u003ccode\u003e@​richardsolomou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/471\"\u003ePostHog/posthog-python#471\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(ai): add Claude Agent SDK integration for LLM analytics by \u003ca href=\"https://github.com/andrewm4894\"\u003e\u003ccode\u003e@​andrewm4894\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/477\"\u003ePostHog/posthog-python#477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add AI provider examples for all LLM analytics integrations by \u003ca href=\"https://github.com/richardsolomou\"\u003e\u003ccode\u003e@​richardsolomou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/478\"\u003ePostHog/posthog-python#478\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: propagate missing params in module-level wrapper functions by \u003ca href=\"https://github.com/dustinbyrne\"\u003e\u003ccode\u003e@​dustinbyrne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/479\"\u003ePostHog/posthog-python#479\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/parinporecha\"\u003e\u003ccode\u003e@​parinporecha\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/453\"\u003ePostHog/posthog-python#453\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PostHog/posthog-python/compare/v7.9.12...v7.10.0\"\u003ehttps://github.com/PostHog/posthog-python/compare/v7.9.12...v7.10.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PostHog/posthog-python/blob/master/CHANGELOG.md\"\u003eposthog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.10.0 — 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eMinor changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/d234b53ff9578648d3bdb70d54cde98cdb7d9c87\"\u003ed234b53\u003c/a\u003e feat(ai): add Claude Agent SDK integration for LLM analytics — Thanks \u003ca href=\"https://github.com/andrewm4894\"\u003e\u003ccode\u003e@​andrewm4894\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/754c45fa024be3fdb1f1d1f312a94070786652b7\"\u003e754c45f\u003c/a\u003e fix: propagate missing params in module-level wrapper functions (\u003ccode\u003edistinct_id\u003c/code\u003e for \u003ccode\u003egroup_identify\u003c/code\u003e, \u003ccode\u003eflag_keys_to_evaluate\u003c/code\u003e for \u003ccode\u003eget_all_flags\u003c/code\u003e/\u003ccode\u003eget_all_flags_and_payloads\u003c/code\u003e) — Thanks \u003ca href=\"https://github.com/dustinbyrne\"\u003e\u003ccode\u003e@​dustinbyrne\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/95df295abf93c74c5950b28c1e58fd433191cd26\"\u003e\u003ccode\u003e95df295\u003c/code\u003e\u003c/a\u003e chore: Release v7.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/754c45fa024be3fdb1f1d1f312a94070786652b7\"\u003e\u003ccode\u003e754c45f\u003c/code\u003e\u003c/a\u003e fix: propagate missing params in module-level wrapper functions (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/479\"\u003e#479\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/7223c52550e80c4172da4132620f2adc55c87819\"\u003e\u003ccode\u003e7223c52\u003c/code\u003e\u003c/a\u003e docs: add AI provider examples for all LLM analytics integrations (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/478\"\u003e#478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/d234b53ff9578648d3bdb70d54cde98cdb7d9c87\"\u003e\u003ccode\u003ed234b53\u003c/code\u003e\u003c/a\u003e feat(ai): add Claude Agent SDK integration for LLM analytics (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/477\"\u003e#477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/0fdbc2e97ab44cf30c9b0f55cbbfdaf50572c58e\"\u003e\u003ccode\u003e0fdbc2e\u003c/code\u003e\u003c/a\u003e chore(examples): migrate AI examples from pip to uv with locked versions (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/471\"\u003e#471\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/795ee410682d3c28ffad759c95ccdbc5dcd9fd39\"\u003e\u003ccode\u003e795ee41\u003c/code\u003e\u003c/a\u003e chore: enforce 7-day minimum release age via uv exclude-newer (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/476\"\u003e#476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/fc4e85a9905914458b83e4488f7b5544e43f7243\"\u003e\u003ccode\u003efc4e85a\u003c/code\u003e\u003c/a\u003e feat: add minimum fastapi exception capture repro case (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/470\"\u003e#470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/b4f15a5e702d4d8436fc24f311d8b53a39c6e8b6\"\u003e\u003ccode\u003eb4f15a5\u003c/code\u003e\u003c/a\u003e chore: pin litellm to 1.81.13 in example (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/469\"\u003e#469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/dd8ee652d5c6520b1a7bd9b5392ddb2a4abb6359\"\u003e\u003ccode\u003edd8ee65\u003c/code\u003e\u003c/a\u003e fix: update localhost port in examples from 8000 to 8010 (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/453\"\u003e#453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/2cac15aa68c34c1fc8a6e436d76bd7c4f7ecca47\"\u003e\u003ccode\u003e2cac15a\u003c/code\u003e\u003c/a\u003e docs: add AI provider integration examples (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/466\"\u003e#466\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/posthog/posthog-python/compare/v7.9.12...v7.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `textual` from 8.1.1 to 8.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/textual/releases\"\u003etextual's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eThe snappier resize Release\u003c/h2\u003e\n\u003ch2\u003e[8.2.3] - 2026-04-05\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce lag when resizing window, by moving resize from idle to a timer \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6471\"\u003eTextualize/textual#6471\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe Faster Resize Release\u003c/h2\u003e\n\u003cp\u003eFixed an issue where styles were being unneccesarily updated when resizing. Textual apps will now adapt to changes in the terminal size much more quickly.\u003c/p\u003e\n\u003ch2\u003e[8.2.2] - 2026-04-03\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Pointless style updates when resizing \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6464\"\u003eTextualize/textual#6464\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe Hot Select Release\u003c/h2\u003e\n\u003cp\u003eFixes a crash when a selected widget is removed while selecting\u003c/p\u003e\n\u003ch2\u003e[8.2.1] - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash when a widget disapears between selections \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6455\"\u003eTextualize/textual#6455\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe Select Release\u003c/h2\u003e\n\u003cp\u003eThis release enhances text selection, with auto-scrolling, and the ability to select across container widgets.\u003c/p\u003e\n\u003cp\u003eThis work was sponsored by Mistral AI.\u003c/p\u003e\n\u003ch2\u003e[8.2.0] - 2026-03-27\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAuto-scrolling on select \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSelecting over containers \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eApp.ENABLE_SELECT_AUTO_SCROLL\u003c/code\u003e, \u003ccode\u003eApp.SELECT_AUTO_SCROLL_LINES\u003c/code\u003e, \u003ccode\u003eApp.SELECT_AUTO_SCROLL_SPEED\u003c/code\u003e to tweak auto scrolling behavior \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/textual/blob/main/CHANGELOG.md\"\u003etextual's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[8.2.3] - 2026-04-05\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce lag when resizing window, by moving resize from idle to a timer \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6471\"\u003eTextualize/textual#6471\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.2.2] - 2026-04-03\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Pointless style updates when resizing \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6464\"\u003eTextualize/textual#6464\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.2.1] - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash when a widget disapears between selections \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6455\"\u003eTextualize/textual#6455\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.2.0] - 2026-03-27\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAuto-scrolling on select \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSelecting over containers \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eApp.ENABLE_SELECT_AUTO_SCROLL\u003c/code\u003e, \u003ccode\u003eApp.SELECT_AUTO_SCROLL_LINES\u003c/code\u003e, \u003ccode\u003eApp.SELECT_AUTO_SCROLL_SPEED\u003c/code\u003e to tweak auto scrolling behavior \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/634ca6e786885ffebe211fc73e0e8a04e030f3c3\"\u003e\u003ccode\u003e634ca6e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6473\"\u003e#6473\u003c/a\u003e from Textualize/bump823\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/ccf1978c1a715ac7d33149dcfc344765dc250037\"\u003e\u003ccode\u003eccf1978\u003c/code\u003e\u003c/a\u003e bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/5ddfbdc6bf7966b99644f2da0251c94c83a50528\"\u003e\u003ccode\u003e5ddfbdc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6462\"\u003e#6462\u003c/a\u003e from IEBqp/guide-patch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/23bf10e77bd18fa91ed2c42e3a0693b0702e097d\"\u003e\u003ccode\u003e23bf10e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6470\"\u003e#6470\u003c/a\u003e from Textualize/defensive-selection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/32f1d23330efd7a47891a5ce90edd7677664fbc1\"\u003e\u003ccode\u003e32f1d23\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6471\"\u003e#6471\u003c/a\u003e from Textualize/resize-lag\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/2bbfbb7741470e8cf95c37476047b89787afaec5\"\u003e\u003ccode\u003e2bbfbb7\u003c/code\u003e\u003c/a\u003e force initial resize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/4b6579038979a90d1f4067d8e396f0af13e80f75\"\u003e\u003ccode\u003e4b65790\u003c/code\u003e\u003c/a\u003e ignore no size changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/63fe6f0646e0f1401b990fb64f292d9646d01014\"\u003e\u003ccode\u003e63fe6f0\u003c/code\u003e\u003c/a\u003e check resize timer on idle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/ec5b43ae1cc2c49361f0d791a53dd047bce08369\"\u003e\u003ccode\u003eec5b43a\u003c/code\u003e\u003c/a\u003e also resize on idle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/12a52d9e24f1d47eb680e814527fac6ee004e573\"\u003e\u003ccode\u003e12a52d9\u003c/code\u003e\u003c/a\u003e check screen error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Textualize/textual/compare/v8.1.1...v8.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `real-ladybug` from 0.15.1 to 0.15.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/lbugdb/lbug/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tree-sitter-rust` from 0.24.0 to 0.24.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/releases\"\u003etree-sitter-rust's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.24.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNOTE:\u003c/strong\u003e Download \u003ccode\u003etree-sitter-rust.tar.gz\u003c/code\u003e for the \u003cem\u003ecomplete\u003c/em\u003e source code.\u003c/p\u003e\n\u003ch2\u003ev0.24.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNOTE:\u003c/strong\u003e Download \u003ccode\u003etree-sitter-rust.tar.gz\u003c/code\u003e for the \u003cem\u003ecomplete\u003c/em\u003e source code.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/77a3747266f4d621d0757825e6b11edcbf991ca5\"\u003e\u003ccode\u003e77a3747\u003c/code\u003e\u003c/a\u003e 0.24.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/c9f157902a6b487f0c358dc383d2d694b98fd814\"\u003e\u003ccode\u003ec9f1579\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/v0.24.x'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/b3e615de069beb04ff44f65ac52f7f03cff04438\"\u003e\u003ccode\u003eb3e615d\u003c/code\u003e\u003c/a\u003e Fix bad error recovery when parsing repeated string literals (\u003ca href=\"https://redirect.github.com/tree-sitter/tree-sitter-rust/issues/307\"\u003e#307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/4b8106750a2865e4548459d18c797c9f468c440e\"\u003e\u003ccode\u003e4b81067\u003c/code\u003e\u003c/a\u003e Disable regeneration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/6651c80dc5f033f9666365de50260d02cea05412\"\u003e\u003ccode\u003e6651c80\u003c/code\u003e\u003c/a\u003e Regenerate parser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/96e3121c41bc5f2b659f21dd5a43894c4028ddf1\"\u003e\u003ccode\u003e96e3121\u003c/code\u003e\u003c/a\u003e Remove attestations from GH release job\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/8a1ccae7aaccdc11b04dbd803453e3e9cfd9159b\"\u003e\u003ccode\u003e8a1ccae\u003c/code\u003e\u003c/a\u003e 0.24.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/ab43fdbb1640bdece8fab9927b1aa6774d942189\"\u003e\u003ccode\u003eab43fdb\u003c/code\u003e\u003c/a\u003e Parse string literals even in with unexpected prefixes (\u003ca href=\"https://redirect.github.com/tree-sitter/tree-sitter-rust/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/261b20226c04ef601adbdf185a800512a5f66291\"\u003e\u003ccode\u003e261b202\u003c/code\u003e\u003c/a\u003e Raw reference/identifier conflict (\u003ca href=\"https://redirect.github.com/tree-sitter/tree-sitter-rust/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/946595d164e77b705fa28385654f9420f59262ef\"\u003e\u003ccode\u003e946595d\u003c/code\u003e\u003c/a\u003e Include LICENSE (\u003ca href=\"https://redirect.github.com/tree-sitter/tree-sitter-rust/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/compare/v0.24.0...v0.24.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.29.0 to 2.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.30.0\u003c/h2\u003e\n\u003ch2\u003e2.30.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.29.0...v2.30.0\"\u003ev2.29.0...v2.30.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add keys field to Click/DoubleClick/Drag/Move/Scroll computer actions (\u003ca href=\"https://github.com/openai/openai-python/commit/ee1bbeddbb38dab817557412dc106354409bb950\"\u003eee1bbed\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e align SDK response types with expanded item schemas (\u003ca href=\"https://github.com/openai/openai-python/commit/f3f258a9d4d19db3fb0c6c35e25ad3cedbe71254\"\u003ef3f258a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esanitize endpoint path params (\u003ca href=\"https://github.com/openai/openai-python/commit/89f66988fde790c0c83ff8b876d1e1b10d616367\"\u003e89f6698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e make type required in ResponseInputMessageItem (\u003ca href=\"https://github.com/openai/openai-python/commit/cfdb1676ea0550840330a58f1a31a40a41a0a53f\"\u003ecfdb167\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e skip lint on metadata-only changes (\u003ca href=\"https://github.com/openai/openai-python/commit/faa93e19a1d5c30c7dd672a08dbbdbb3c0374714\"\u003efaa93e1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e update gitignore (\u003ca href=\"https://github.com/openai/openai-python/commit/c468477f1546579618865a726e35a685cffeacd9\"\u003ec468477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.4 (\u003ca href=\"https://github.com/openai/openai-python/commit/f350af86c13ade0237778010d264c55fda443354\"\u003ef350af8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.5 (\u003ca href=\"https://github.com/openai/openai-python/commit/5c0340128fc1a416e2dfdc6ab4b05f1e954e8482\"\u003e5c03401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.6 (\u003ca href=\"https://github.com/openai/openai-python/commit/b6353b8411d31dcc95875d801ce9e90a21e0fd52\"\u003eb6353b8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.7 (\u003ca href=\"https://github.com/openai/openai-python/commit/1d654bea74ac9c3d43302587f98f33cfff502e48\"\u003e1d654be\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e switch from prism to steady (\u003ca href=\"https://github.com/openai/openai-python/commit/4a82035669b739d16a0e85d4ded778d51e061948\"\u003e4a82035\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.30.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.29.0...v2.30.0\"\u003ev2.29.0...v2.30.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add keys field to Click/DoubleClick/Drag/Move/Scroll computer actions (\u003ca href=\"https://github.com/openai/openai-python/commit/ee1bbeddbb38dab817557412dc106354409bb950\"\u003eee1bbed\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e align SDK response types with expanded item schemas (\u003ca href=\"https://github.com/openai/openai-python/commit/f3f258a9d4d19db3fb0c6c35e25ad3cedbe71254\"\u003ef3f258a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esanitize endpoint path params (\u003ca href=\"https://github.com/openai/openai-python/commit/89f66988fde790c0c83ff8b876d1e1b10d616367\"\u003e89f6698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e make type required in ResponseInputMessageItem (\u003ca href=\"https://github.com/openai/openai-python/commit/cfdb1676ea0550840330a58f1a31a40a41a0a53f\"\u003ecfdb167\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e skip lint on metadata-only changes (\u003ca href=\"https://github.com/openai/openai-python/commit/faa93e19a1d5c30c7dd672a08dbbdbb3c0374714\"\u003efaa93e1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e update gitignore (\u003ca href=\"https://github.com/openai/openai-python/commit/c468477f1546579618865a726e35a685cffeacd9\"\u003ec468477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.4 (\u003ca href=\"https://github.com/openai/openai-python/commit/f350af86c13ade0237778010d264c55fda443354\"\u003ef350af8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.5 (\u003ca href=\"https://github.com/openai/openai-python/commit/5c0340128fc1a416e2dfdc6ab4b05f1e954e8482\"\u003e5c03401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.6 (\u003ca href=\"https://github.com/openai/openai-python/commit/b6353b8411d31dcc95875d801ce9e90a21e0fd52\"\u003eb6353b8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.7 (\u003ca href=\"https://github.com/openai/openai-python/commit/1d654bea74ac9c3d43302587f98f33cfff502e48\"\u003e1d654be\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e switch from prism to steady (\u003ca href=\"https://github.com/openai/openai-python/commit/4a82035669b739d16a0e85d4ded778d51e061948\"\u003e4a82035\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/5ae2cc10e4140d36aa236fa7c0bc5ce5ff190a01\"\u003e\u003ccode\u003e5ae2cc1\u003c/code\u003e\u003c/a\u003e release: 2.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/6e772ae791759b25de83313614e0fb26eba895b7\"\u003e\u003ccode\u003e6e772ae\u003c/code\u003e\u003c/a\u003e fix(api): align SDK response types with expanded item schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/cd72fba37866bfdddd4a84420afe2ff397279582\"\u003e\u003ccode\u003ecd72fba\u003c/code\u003e\u003c/a\u003e feat(api): add keys field to Click/DoubleClick/Drag/Move/Scroll computer actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/4f43fe371037415ace13981a277917366b6fc24e\"\u003e\u003ccode\u003e4f43fe3\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.19.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/23bc02703bbb9497eadd5d56497d5d6954372a62\"\u003e\u003ccode\u003e23bc027\u003c/code\u003e\u003c/a\u003e chore(ci): skip lint on metadata-only changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/e3c59bf1ac8533a1be831a6d166f9f7abeabf8e0\"\u003e\u003ccode\u003ee3c59bf\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.19.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/56ad9ca089394e535d7df52fe48d544e54086ddc\"\u003e\u003ccode\u003e56ad9ca\u003c/code\u003e\u003c/a\u003e fix(types): make type required in ResponseInputMessageItem\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/78c764bdf483a0c48789bfdefe6299830d5abde0\"\u003e\u003ccode\u003e78c764b\u003c/code\u003e\u003c/a\u003e chore(internal): update gitignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/634b74edd4aaa07a74f9ee30241410d61624264f\"\u003e\u003ccode\u003e634b74e\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.19.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/c8c9508899b2119cc69e006403d09cbad7f616e4\"\u003e\u003ccode\u003ec8c9508\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.19.4\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.29.0...v2.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anthropic` from 0.85.0 to 0.91.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/releases\"\u003eanthropic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.91.0\u003c/h2\u003e\n\u003ch2\u003e0.91.0 (2026-04-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.90.0...v0.91.0\"\u003ev0.90.0...v0.91.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e Create Bedrock Mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1616\"\u003e#1616\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fd195a2fa2cd44ebf4513e69f671def88d2b6ec9\"\u003efd195a2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.90.0\u003c/h2\u003e\n\u003ch2\u003e0.90.0 (2026-04-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.89.0...v0.90.0\"\u003ev0.89.0...v0.90.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add support for claude-mythos-preview (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fc7ddd8e0296a578f09c7fa2baf00e50d81cf980\"\u003efc7ddd8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e preserve hardcoded query params when merging with user params (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/32d35e0ae67ab0d076a60d38fa5177b5635e9c0c\"\u003e32d35e0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.89.0\u003c/h2\u003e\n\u003ch2\u003e0.89.0 (2026-04-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.88.0...v0.89.0\"\u003ev0.88.0...v0.89.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evertex:\u003c/strong\u003e add support for US multi-region endpoint (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/4e732dada087146cfeff1f4afdf90513590e248d\"\u003e4e732da\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e preserve hardcoded query params when merging with user params (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/e7f4a3cada266e9719e5c3b9ba09514c3842a638\"\u003ee7f4a3c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e deprecate client-side compaction helpers (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/e60affc656e4165de7cb15f73351175507b0b441\"\u003ee60affc\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.88.0\u003c/h2\u003e\n\u003ch2\u003e0.88.0 (2026-04-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.87.0...v0.88.0\"\u003ev0.87.0...v0.88.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add structured stop_details to message responses (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fd82d6b87ef0db5b2970d8f27ccc6d5981745572\"\u003efd82d6b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/blob/main/CHANGELOG.md\"\u003eanthropic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.91.0 (2026-04-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.90.0...v0.91.0\"\u003ev0.90.0...v0.91.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e Create Bedrock Mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1616\"\u003e#1616\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fd195a2fa2cd44ebf4513e69f671def88d2b6ec9\"\u003efd195a2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.90.0 (2026-04-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.89.0...v0.90.0\"\u003ev0.89.0...v0.90.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add support for claude-mythos-preview (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fc7ddd8e0296a578f09c7fa2baf00e50d81cf980\"\u003efc7ddd8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e preserve hardcoded query params when merging with user params (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/32d35e0ae67ab0d076a60d38fa5177b5635e9c0c\"\u003e32d35e0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.89.0 (2026-04-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.88.0...v0.89.0\"\u003ev0.88.0...v0.89.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evertex:\u003c/strong\u003e add support for US multi-region endpoint (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/4e732dada087146cfeff1f4afdf90513590e248d\"\u003e4e732da\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e preserve hardcoded query params when merging with user params (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/e7f4a3cada266e9719e5c3b9ba09514c3842a638\"\u003ee7f4a3c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e deprecate client-side compaction helpers (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/e60affc656e4165de7cb15f73351175507b0b441\"\u003ee60affc\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.88.0 (2026-04-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.87.0...v0.88.0\"\u003ev0.87.0...v0.88.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add structured stop_details to message responses (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fd82d6b87ef0db5b2970d8f27ccc6d5981745572\"\u003efd82d6b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebedrock api key auth (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1623\"\u003e#1623\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/a95a3fc586b8de63e3c2b386cee5e312d96bf5d8\"\u003ea95a3fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eprepare aws package (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1615\"\u003e#1615\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/6875fab38ac27ab3a09b97088a49925abe011bdc\"\u003e6875fab\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/8a0885d089483a92fb36704de349ae0b87daa809\"\u003e\u003ccode\u003e8a0885d\u003c/code\u003e\u003c/a\u003e release: 0.91.0 (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1345\"\u003e#1345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/40155dac9afd9a8ae5d2bb70e1269a2c2671026e\"\u003e\u003ccode\u003e40155da\u003c/code\u003e\u003c/a\u003e release: 0.90.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c78eef7e4ef4de111c2f6853d5137bb28e6ec881\"\u003e\u003ccode\u003ec78eef7\u003c/code\u003e\u003c/a\u003e feat(api): Add support for claude-mythos-preview\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/ac918636463bb4cea4cb8d104637782db9695b62\"\u003e\u003ccode\u003eac91863\u003c/code\u003e\u003c/a\u003e fix(client): preserve hardcoded query params when merging with user params\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/370e1a0ac9f16ab7a8d9c5f4025e8db79853279c\"\u003e\u003ccode\u003e370e1a0\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b3f7eb29e9c961ff426c654739611bce7dce3b88\"\u003e\u003ccode\u003eb3f7eb2\u003c/code\u003e\u003c/a\u003e release: 0.89.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/d0aa2b81c04d688ce59ed44f3fd00a61458e65cd\"\u003e\u003ccode\u003ed0aa2b8\u003c/code\u003e\u003c/a\u003e feat(vertex): add support for US multi-region endpoint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/66e738de959c8efef3768bb1f789a6d8c35d95b1\"\u003e\u003ccode\u003e66e738d\u003c/code\u003e\u003c/a\u003e fix(client): preserve hardcoded query params when merging with user params\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/cfb47c022080be17bc1e35fa44960ab1867f2525\"\u003e\u003ccode\u003ecfb47c0\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7cc3ac7e1f8623a5406597627fd93ba56077e752\"\u003e\u003ccode\u003e7cc3ac7\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.85.0...v0.91.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `genai-prices` from 0.0.55 to 0.0.56\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/9ebd466b6a0bb57c81c168fa9ed6f6a1e547c22a\"\u003e\u003ccode\u003e9ebd466\u003c/code\u003e\u003c/a\u003e Prep 0.0.56 release (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/318\"\u003e#318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/c5bd290dd46af2deab22af7a0aa709906e7038d1\"\u003e\u003ccode\u003ec5bd290\u003c/code\u003e\u003c/a\u003e Add OpenRouter pricing for claude-sonnet-4.6 (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/296\"\u003e#296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/ea55b972b43eb679e99795c1479ccea4a502ebe0\"\u003e\u003ccode\u003eea55b97\u003c/code\u003e\u003c/a\u003e feat: add Qwen3 Max Thinking to OpenRouter (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/5f2a7bd337696bc2a9ca41147d0a9d7c00e824aa\"\u003e\u003ccode\u003e5f2a7bd\u003c/code\u003e\u003c/a\u003e Add Qwen3 VL 235B A22B (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/a7628264248ca1ce96acb3a2abbe19de47b3efdf\"\u003e\u003ccode\u003ea762826\u003c/code\u003e\u003c/a\u003e Add openrouter qwen/qwen3.5-plus-02-15 price (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/299\"\u003e#299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/8ab5336c8fefeb664d692f2238e1181d0ba0321b\"\u003e\u003ccode\u003e8ab5336\u003c/code\u003e\u003c/a\u003e feat: moonshot ai prices file (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/87f9120fc248dddafbb2c863a29ef5488a5164fc\"\u003e\u003ccode\u003e87f9120\u003c/code\u003e\u003c/a\u003e feat: add Gemini 3.1 Flash Image Preview pricing (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/303\"\u003e#303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/016961828b5ecb1e38932a5675fe9afa2668a135\"\u003e\u003ccode\u003e0169618\u003c/code\u003e\u003c/a\u003e Adding api-flavor for xAI native SDK (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/307\"\u003e#307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/ee468266850d8b6ebed856f9b175e37044437a44\"\u003e\u003ccode\u003eee46826\u003c/code\u003e\u003c/a\u003e feat: add GPT-5.4 mini and nano snapshot aliases (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/9205f145985ca898daa5bcf6148f932a82cf62a1\"\u003e\u003ccode\u003e9205f14\u003c/code\u003e\u003c/a\u003e feat: add pricing for GPT 5.4 mini and nano (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/315\"\u003e#315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/genai-prices/compare/v0.0.55...v0.0.56\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dependency-injector` from 4.48.3 to 4.49.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.49.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.14 support\u003c/li\u003e\n\u003cli\u003eFix Pydantic v2 deprecation warning triggering on settings class import (fixes \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix grammar in Declarative Container documentation by \u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing warn_unresolved parameter to WiringConfiguration in containers.pyi by \u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd keep_cache argument to Container.wire typings by \u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for some type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/943\"\u003eets-labs/python-dependency-injector#943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for remaining type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/953\"\u003eets-labs/python-dependency-injector#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd provided()\u003c!-- raw HTML omitted --\u003e.call *args, **kwargs arguments \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/945\"\u003e#945\u003c/a\u003e by \u003ca href=\"https://github.com/pavalso\"\u003e\u003ccode\u003e@​pavalso\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/946\"\u003eets-labs/python-dependency-injector#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd context local resource by \u003ca href=\"https://github.com/elina-israyelyan\"\u003e\u003ccode\u003e@​elina-israyelyan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/931\"\u003eets-labs/python-dependency-injector#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI/CD to \u003ccode\u003eactions/checkout@v6\u003c/code\u003e, \u003ccode\u003eactions/setup-python@v6\u003c/code\u003e, \u003ccode\u003eactions/download-artifact@v8\u003c/code\u003e, \u003ccode\u003eactions/upload-artifact@v7\u003c/code\u003e and \u003ccode\u003epypa/cibuildwheel@v3.4.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdd dependabot config for GitHub Actions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pavalso\"\u003e\u003ccode\u003e@​pavalso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/946\"\u003eets-labs/python-dependency-injector#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elina-israyelyan\"\u003e\u003ccode\u003e@​elina-israyelyan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/931\"\u003eets-labs/python-dependency-injector#931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5f7aa1c337c77e782e1e927eb4b1e41a60912604\"\u003e\u003ccode\u003e5f7aa1c\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5863d99bd5e9b2d22c15f3815b23973317a453ee\"\u003e\u003ccode\u003e5863d99\u003c/code\u003e\u003c/a\u003e Add .github/dependabot.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/000c670c7e655cc7db423a76c6b877d185f706ce\"\u003e\u003ccode\u003e000c670\u003c/code\u003e\u003c/a\u003e Upgrade GHA actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/931084070a5304a26a925961375a5afcc3c3a38b\"\u003e\u003ccode\u003e9310840\u003c/code\u003e\u003c/a\u003e Fix iscoroutinefunction import for older Pythons\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/05a5e7d8701a1df8cb88ad55d187ba88cd6ffbe8\"\u003e\u003ccode\u003e05a5e7d\u003c/code\u003e\u003c/a\u003e Fix get_annotations import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/58700d9dbd3420a559330666edfb477418997ff9\"\u003e\u003ccode\u003e58700d9\u003c/code\u003e\u003c/a\u003e Use from import statements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/0e25331738716d5bfa5562d42617deb6ad65d23c\"\u003e\u003ccode\u003e0e25331\u003c/code\u003e\u003c/a\u003e Do not build nogil wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1696986aa7698120a7e2aab2355d93e178fc36f9\"\u003e\u003ccode\u003e1696986\u003c/code\u003e\u003c/a\u003e Python 3.14 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/525935137e81355657e44b454c0f7b19b69fdc7b\"\u003e\u003ccode\u003e5259351\u003c/code\u003e\u003c/a\u003e Add context local resource (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/931\"\u003e#931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/76d5932b7340719eac2b737bd444daacc7bb0682\"\u003e\u003ccode\u003e76d5932\u003c/code\u003e\u003c/a\u003e Add provided()\u0026lt;func\u0026gt;.call *args, **kwargs arguments (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/946\"\u003e#946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `claude-agent-sdk` from 0.1.48 to 0.1.56\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/releases\"\u003eclaude-agent-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.1.56\u003c/h2\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.92\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003ePyPI:\u003c/strong\u003e \u003ca href=\"https://pypi.org/project/claude-agent-sdk/0.1.56/\"\u003ehttps://pypi.org/project/claude-agent-sdk/0.1.56/\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install claude-agent-sdk==0.1.56\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.1.55\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eMCP large tool results\u003c/strong\u003e: Forward \u003ccode\u003emaxResultSizeChars\u003c/code\u003e from \u003ccode\u003eToolAnnotations\u003c/code\u003e via \u003ccode\u003e_meta\u003c/code\u003e to bypass Zod annotation stripping in the CLI, fixing silent truncation of large MCP tool results (\u0026gt;50K chars) (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.91\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003ePyPI:\u003c/strong\u003e \u003ca href=\"https://pypi.org/project/claude-agent-sdk/0.1.55/\"\u003ehttps://pypi.org/project/claude-agent-sdk/0.1.55/\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install claude-agent-sdk==0.1.55\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.1.54\u003c/h2\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003ePyPI:\u003c/strong\u003e \u003ca href=\"https://pypi.org/project/claude-agent-sdk/0.1.54/\"\u003ehttps://pypi.org/project/claude-agent-sdk/0.1.54/\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install claude-agent-sdk==0.1.54\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.1.53\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSetting sources flag\u003c/strong\u003e: Fixed \u003ccode\u003e--setting-sources\u003c/code\u003e being passed as an empty string when not provided, which caused the CLI to misparse subsequent flags (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/778\"\u003e#778\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eString prompt deadlock\u003c/strong\u003e: Fixed deadlock when using \u003ccode\u003equery()\u003c/code\u003e with a string prompt and hooks/MCP servers that trigger many tool calls, by spawning \u003ccode\u003ewait_for_result_and_end_input()\u003c/code\u003e as a background task (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/780\"\u003e#780\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/blob/main/CHANGELOG.md\"\u003eclaude-agent-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.1.56\u003c/h2\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.92\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.1.55\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eMCP large tool results\u003c/strong\u003e: Forward \u003ccode\u003emaxResultSizeChars\u003c/code\u003e from \u003ccode\u003eToolAnnotations\u003c/code\u003e via \u003ccode\u003e_meta\u003c/code\u003e to bypass Zod annotation stripping in the CLI, fixing silent truncation of large MCP tool results (\u0026gt;50K chars) (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.91\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.1.53\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSetting sources flag\u003c/strong\u003e: Fixed \u003ccode\u003e--setting-sources\u003c/code\u003e being passed as an empty string when not provided, which caused the CLI to misparse subsequent flags (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/778\"\u003e#778\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eString prompt deadlock\u003c/strong\u003e: Fixed deadlock when using \u003ccode\u003equery()\u003c/code\u003e with a string prompt and hooks/MCP servers that trigger many tool calls, by spawning \u003ccode\u003ewait_for_result_and_end_input()\u003c/code\u003e as a background task (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/780\"\u003e#780\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.88\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.1.52\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eContext usage\u003c/strong\u003e: Added \u003ccode\u003eget_context_usage()\u003c/code\u003e method to \u003ccode\u003eClaudeSDKClient\u003c/code\u003e for querying context window usage by category (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/764\"\u003e#764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAnnotated parameter descriptions\u003c/strong\u003e: The \u003ccode\u003e@tool\u003c/code\u003e decorator and \u003ccode\u003ecreate_sdk_mcp_server\u003c/code\u003e now support \u003ccode\u003etyping.Annotated\u003c/code\u003e for per-parameter descriptions in JSON Schema (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/762\"\u003e#762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eToolPermissionContext fields\u003c/strong\u003e: Exposed \u003ccode\u003etool_use_id\u003c/code\u003e and \u003ccode\u003eagent_id\u003c/code\u003e in \u003ccode\u003eToolPermissionContext\u003c/code\u003e for distinguishing parallel permission requests (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/754\"\u003e#754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSession ID option\u003c/strong\u003e: Added \u003ccode\u003esession_id\u003c/code\u003e option to \u003ccode\u003eClaudeAgentOptions\u003c/code\u003e for specifying custom session IDs (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/750\"\u003e#750\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eString prompt in connect()\u003c/strong\u003e: Fixed \u003ccode\u003econnect(prompt=\u0026quot;...\u0026quot;)\u003c/code\u003e silently dropping the string prompt, causing \u003ccode\u003ereceive_messages()\u003c/code\u003e to hang indefinitely (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/769\"\u003e#769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCancel request handling\u003c/strong\u003e: Implemented \u003ccode\u003econtrol_cancel_request\u003c/code\u003e handling so in-flight hook callbacks are properly cancelled when the CLI abandons them (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/751\"\u003e#751\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.87\u003c/li\u003e\n\u003cli\u003eIncreased CI timeout for example tests and reduced sleep duration in error handling example (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/760\"\u003e#760\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.1.51\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/13f65c81e2bec2a5d1f1e1efdd45aa061c4ec43f\"\u003e\u003ccode\u003e13f65c8\u003c/code\u003e\u003c/a\u003e docs: update changelog for v0.1.56\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/74add900759d114d91fe6f3f29b1fafb92e0755c\"\u003e\u003ccode\u003e74add90\u003c/code\u003e\u003c/a\u003e chore: release v0.1.56\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/b9836154835ab08576fef7d4152969b9221b0634\"\u003e\u003ccode\u003eb983615\u003c/code\u003e\u003c/a\u003e chore: bump bundled CLI version to 2.1.92\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/67718a7c4a46790368ff1202c967b3afdb355970\"\u003e\u003ccode\u003e67718a7\u003c/code\u003e\u003c/a\u003e docs: update changelog for v0.1.55\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/1871278110abc5a5dc94dbe43be99d05d79ad0f5\"\u003e\u003ccode\u003e1871278\u003c/code\u003e\u003c/a\u003e chore: release v0.1.55\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/f36d642348443c2cf4bb97138afe037113f8457c\"\u003e\u003ccode\u003ef36d642\u003c/code\u003e\u003c/a\u003e chore: bump bundled CLI version to 2.1.91\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/e94a74d7f4c7858813130ef9d32d3099a417c0bf\"\u003e\u003ccode\u003ee94a74d\u003c/code\u003e\u003c/a\u003e fix(mcp): forward maxResultSizeChars via _meta to bypass Zod annotation strip...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/574044a1fcbaf89afc821bb742ccd8d31c4d6944\"\u003e\u003ccode\u003e574044a\u003c/code\u003e\u003c/a\u003e chore: release v0.1.54\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/3e737afed93b6bc145795eaaf41710730f7e7b12\"\u003e\u003ccode\u003e3e737af\u003c/code\u003e\u003c/a\u003e chore: bump bundled CLI version to 2.1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/f4f9adcb9bb90bb02a1ad8ad6356e0fe9ea9848c\"\u003e\u003ccode\u003ef4f9adc\u003c/code\u003e\u003c/a\u003e chore: bump bundled CLI version to 2.1.89\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/compare/v0.1.48...v0.1.56\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.19.1 to 1.20.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/...\n\n_Description has been truncated_","html_url":"https://github.com/shotgun-sh/shotgun/pull/532","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/shotgun-sh%2Fshotgun/issues/532","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/532/packages"},{"uuid":"4166347992","node_id":"PR_kwDORMFN3c7Oczoz","number":111,"state":"closed","title":"chore(deps): bump the python-minor-patch group in /backend with 21 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-06T01:17:52.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-30T01:18:23.000Z","updated_at":"2026-04-06T01:17:54.000Z","time_to_close":604769,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-minor-patch","update_count":21,"packages":[{"name":"fastapi","old_version":"0.135.1","new_version":"0.135.2","repository_url":"https://github.com/fastapi/fastapi"},{"name":"redis","old_version":"7.3.0","new_version":"7.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"supabase","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"postgrest","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"storage3","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"anthropic","old_version":"0.85.0","new_version":"0.86.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"openai","old_version":"2.28.0","new_version":"2.30.0","repository_url":"https://github.com/openai/openai-python"},{"name":"claude-agent-sdk","old_version":"0.1.48","new_version":"0.1.52","repository_url":"https://github.com/anthropics/claude-agent-sdk-python"},{"name":"dependency-injector","old_version":"4.48.3","new_version":"4.49.0","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"cryptography","old_version":"46.0.5","new_version":"46.0.6","repository_url":"https://github.com/pyca/cryptography"},{"name":"anyio","old_version":"4.12.1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"fsspec","old_version":"2026.2.0","new_version":"2026.3.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"numpy","old_version":"2.4.3","new_version":"2.4.4","repository_url":"https://github.com/numpy/numpy"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.44.0","repository_url":"https://github.com/pydantic/pydantic-core"},{"name":"pygments","old_version":"2.19.2","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyroaring","old_version":"1.0.3","new_version":"1.0.4","repository_url":"https://github.com/Ezibenroc/PyRoaringBitMap"},{"name":"realtime","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"sse-starlette","old_version":"3.3.2","new_version":"3.3.4","repository_url":"https://github.com/sysid/sse-starlette"},{"name":"supabase-auth","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"supabase-functions","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps the python-minor-patch group in /backend with 21 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.135.1` | `0.135.2` |\n| [redis](https://github.com/redis/redis-py) | `7.3.0` | `7.4.0` |\n| [supabase](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [postgrest](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [storage3](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.85.0` | `0.86.0` |\n| [openai](https://github.com/openai/openai-python) | `2.28.0` | `2.30.0` |\n| [claude-agent-sdk](https://github.com/anthropics/claude-agent-sdk-python) | `0.1.48` | `0.1.52` |\n| [dependency-injector](https://github.com/ets-labs/python-dependency-injector) | `4.48.3` | `4.49.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.5` | `46.0.6` |\n| [anyio](https://github.com/agronholm/anyio) | `4.12.1` | `4.13.0` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.2.0` | `2026.3.0` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.3` | `2.4.4` |\n| [pydantic-core](https://github.com/pydantic/pydantic-core) | `2.41.5` | `2.44.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.2` | `2.20.0` |\n| [pyroaring](https://github.com/Ezibenroc/PyRoaringBitMap) | `1.0.3` | `1.0.4` |\n| [realtime](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.0` |\n| [sse-starlette](https://github.com/sysid/sse-starlette) | `3.3.2` | `3.3.4` |\n| [supabase-auth](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [supabase-functions](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n\nUpdates `fastapi` from 0.135.1 to 0.135.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.135.2\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Increase lower bound to \u003ccode\u003epydantic \u0026gt;=2.9.0.\u003c/code\u003e and fix the test suite. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15139\"\u003e#15139\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add missing last release notes dates. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15202\"\u003e#15202\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update docs for contributors and team members regarding translation PRs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15200\"\u003e#15200\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Fix code blocks in reference docs overflowing table width. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15094\"\u003e#15094\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix duplicated words in docstrings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15116\"\u003e#15116\u003c/a\u003e by \u003ca href=\"https://github.com/AhsanSheraz\"\u003e\u003ccode\u003e@​AhsanSheraz\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add docs for \u003ccode\u003epyproject.toml\u003c/code\u003e with \u003ccode\u003eentrypoint\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15075\"\u003e#15075\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update links in docs to no longer use the classes external-link and internal-link. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15061\"\u003e#15061\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add JS and CSS handling for automatic \u003ccode\u003etarget=_blank\u003c/code\u003e for links in docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15063\"\u003e#15063\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Update styles for internal and external links in new tab. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15058\"\u003e#15058\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝  Add documentation for the FastAPI VS Code extension. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15008\"\u003e#15008\u003c/a\u003e by \u003ca href=\"https://github.com/savannahostrowski\"\u003e\u003ccode\u003e@​savannahostrowski\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix doctrings for \u003ccode\u003emax_digits\u003c/code\u003e and \u003ccode\u003edecimal_places\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14944\"\u003e#14944\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add dates to release notes. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15001\"\u003e#15001\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15177\"\u003e#15177\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15178\"\u003e#15178\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15176\"\u003e#15176\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15175\"\u003e#15175\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15171\"\u003e#15171\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15170\"\u003e#15170\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for tr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15172\"\u003e#15172\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15168\"\u003e#15168\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15167\"\u003e#15167\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for tr (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15169\"\u003e#15169\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for fr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15165\"\u003e#15165\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for fr (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15163\"\u003e#15163\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for uk (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15160\"\u003e#15160\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for uk (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15158\"\u003e#15158\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for pt (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15157\"\u003e#15157\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for pt (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15159\"\u003e#15159\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for es (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15155\"\u003e#15155\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for es (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15154\"\u003e#15154\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15156\"\u003e#15156\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ru (update-and-add). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15152\"\u003e#15152\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15153\"\u003e#15153\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Exclude spam comments from statistics in \u003ccode\u003escripts/people.py\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15088\"\u003e#15088\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump authlib from 1.6.7 to 1.6.9. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15128\"\u003e#15128\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pyasn1 from 0.6.2 to 0.6.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15143\"\u003e#15143\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ujson from 5.11.0 to 5.12.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15150\"\u003e#15150\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Tweak translation workflow and translation fixer tool. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15166\"\u003e#15166\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/25a3697cedc6e7dfb84e93c8ff965801486f00f4\"\u003e\u003ccode\u003e25a3697\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.135.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ab125daa4034435777853a2c5a6c47451414f9aa\"\u003e\u003ccode\u003eab125da\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/122b6d490f844b6f716855d55a3e11237b7fb61f\"\u003e\u003ccode\u003e122b6d4\u003c/code\u003e\u003c/a\u003e 📝 Add missing last release notes dates (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15202\"\u003e#15202\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/68ac0ab91e9b14c418013790fc0e420a827686b5\"\u003e\u003ccode\u003e68ac0ab\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ea6e287eb398afe6a82c3ef71780e8451813f674\"\u003e\u003ccode\u003eea6e287\u003c/code\u003e\u003c/a\u003e 📝 Update docs for contributors and team members regarding translation PRs (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d0a6f208c5cb5daaa1de5ea5187729e3789d1dce\"\u003e\u003ccode\u003ed0a6f20\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/fd9e192cf4fae399c0d51dd23e2a137052eb6087\"\u003e\u003ccode\u003efd9e192\u003c/code\u003e\u003c/a\u003e 💄 Fix code blocks in reference docs overflowing table width (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15094\"\u003e#15094\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/fce9460f865928eb7d0393d8809bbc472e0c21cd\"\u003e\u003ccode\u003efce9460\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/0227991a01e61bf5cdd93cc00e9e243f52b47a4a\"\u003e\u003ccode\u003e0227991\u003c/code\u003e\u003c/a\u003e 🔨 Exclude spam comments from statistics in \u003ccode\u003escripts/people.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15088\"\u003e#15088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cbd64b09a32681d3b0ea097608bc62eb0d1587e0\"\u003e\u003ccode\u003ecbd64b0\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.135.1...0.135.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 7.3.0 to 7.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError in cluster metrics recording when connection is None or ClusterNode object instance is used to extract the connection info (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3999\"\u003e#3999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords might leak in plain text logs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3998\"\u003e#3998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cp\u003e-Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpose basic Otel classes and functions to be importable through redis.observability to match the examples in the readthedocs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3996\"\u003e#3996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/b72f24ad6a2226d46aed770e18094a86117d2217\"\u003e\u003ccode\u003eb72f24a\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/0a4e0afe36504c3fb6df1e38683ea946febac9d3\"\u003e\u003ccode\u003e0a4e0af\u003c/code\u003e\u003c/a\u003e Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/15492c9156d3ab8dce05360977480510cf24fbf9\"\u003e\u003ccode\u003e15492c9\u003c/code\u003e\u003c/a\u003e Refactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/cd964ac96649df872a051835e9a52e05a5090607\"\u003e\u003ccode\u003ecd964ac\u003c/code\u003e\u003c/a\u003e Expose basic Otel classes and funtions to be importable through redis.observa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/46ab74d02ed9b15176f67edb817de83524f8145a\"\u003e\u003ccode\u003e46ab74d\u003c/code\u003e\u003c/a\u003e Fixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/26482dbaae38abdb1966d9b1c803331e2dab2053\"\u003e\u003ccode\u003e26482db\u003c/code\u003e\u003c/a\u003e Fix AttributeError in cluster metrics recording when connection is None or Cl...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/redis-py/compare/v7.3.0...v7.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `supabase` from 2.28.2 to 2.28.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003esupabase's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.28.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md\"\u003esupabase's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/deac3232f6bdd242f60b46c7a8922e010524ca53\"\u003e\u003ccode\u003edeac323\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.3 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003e\u003ccode\u003ec7f8f13\u003c/code\u003e\u003c/a\u003e fix(postgrest): fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `postgrest` from 2.28.2 to 2.28.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003epostgrest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.28.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md\"\u003epostgrest's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/deac3232f6bdd242f60b46c7a8922e010524ca53\"\u003e\u003ccode\u003edeac323\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.3 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003e\u003ccode\u003ec7f8f13\u003c/code\u003e\u003c/a\u003e fix(postgrest): fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `storage3` from 2.28.2 to 2.28.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003estorage3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.28.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md\"\u003estorage3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/deac3232f6bdd242f60b46c7a8922e010524ca53\"\u003e\u003ccode\u003edeac323\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.3 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003e\u003ccode\u003ec7f8f13\u003c/code\u003e\u003c/a\u003e fix(postgrest): fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anthropic` from 0.85.0 to 0.86.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/releases\"\u003eanthropic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.86.0\u003c/h2\u003e\n\u003ch2\u003e0.86.0 (2026-03-18)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.85.0...v0.86.0\"\u003ev0.85.0...v0.86.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for filesystem memory tools (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1247\"\u003e#1247\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/235d218211ac4b8f1aa37e29bedc998bfb6ce77d\"\u003e235d218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/86dbe4aa58386bfb8d1497debf342e929e9bb5e5\"\u003e86dbe4a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/45d9cc0914200a43743ab11aa311392e9d8c1b4f\"\u003e45d9cc0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAsyncAnthropic._make_status_error missing 529 and 413 cases (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1244\"\u003e#1244\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/05220bc1c1079fe01f5c4babc007ec7a990859d9\"\u003e05220bc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e bump minimum typing-extensions version (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/09ab112289815ba6f19d8fb3da1e715748182799\"\u003e09ab112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epydantic:\u003c/strong\u003e do not pass \u003ccode\u003eby_alias\u003c/code\u003e unless set (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b17480e9d06613aa597dd40d5a47f4f1250ac762\"\u003eb17480e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e tweak CI branches (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3c0308c97804ababfd3f37330e129e68ccfe4bbc\"\u003e3c0308c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/blob/main/CHANGELOG.md\"\u003eanthropic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.86.0 (2026-03-18)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.85.0...v0.86.0\"\u003ev0.85.0...v0.86.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for filesystem memory tools (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1247\"\u003e#1247\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/235d218211ac4b8f1aa37e29bedc998bfb6ce77d\"\u003e235d218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/86dbe4aa58386bfb8d1497debf342e929e9bb5e5\"\u003e86dbe4a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/45d9cc0914200a43743ab11aa311392e9d8c1b4f\"\u003e45d9cc0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAsyncAnthropic._make_status_error missing 529 and 413 cases (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1244\"\u003e#1244\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/05220bc1c1079fe01f5c4babc007ec7a990859d9\"\u003e05220bc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e bump minimum typing-extensions version (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/09ab112289815ba6f19d8fb3da1e715748182799\"\u003e09ab112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epydantic:\u003c/strong\u003e do not pass \u003ccode\u003eby_alias\u003c/code\u003e unless set (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b17480e9d06613aa597dd40d5a47f4f1250ac762\"\u003eb17480e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e tweak CI branches (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3c0308c97804ababfd3f37330e129e68ccfe4bbc\"\u003e3c0308c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/d7c0974ce6ab94ca135b10b2a45308203c0e0c7e\"\u003e\u003ccode\u003ed7c0974\u003c/code\u003e\u003c/a\u003e release: 0.86.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c46a3e4708fc7f79a00cc245c6f2b11189dd84c3\"\u003e\u003ccode\u003ec46a3e4\u003c/code\u003e\u003c/a\u003e feat(api): manual updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/34045e490d9da94274c36f4333545eacb503d59c\"\u003e\u003ccode\u003e34045e4\u003c/code\u003e\u003c/a\u003e feat(api): manual updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/5ccd6b4122c83f5f1ca5bfefe496a6a257a1da21\"\u003e\u003ccode\u003e5ccd6b4\u003c/code\u003e\u003c/a\u003e feat: add support for filesystem memory tools (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1247\"\u003e#1247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/206252fcfa60a7d127e76c36d10bec8e47494fa4\"\u003e\u003ccode\u003e206252f\u003c/code\u003e\u003c/a\u003e chore(internal): tweak CI branches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c5e5f3e7adf8d60b091116198f29f0b453c18d8d\"\u003e\u003ccode\u003ec5e5f3e\u003c/code\u003e\u003c/a\u003e fix(deps): bump minimum typing-extensions version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/8669b920105a717deead3acf5b5085a2e9441b72\"\u003e\u003ccode\u003e8669b92\u003c/code\u003e\u003c/a\u003e fix(pydantic): do not pass \u003ccode\u003eby_alias\u003c/code\u003e unless set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/05220bc1c1079fe01f5c4babc007ec7a990859d9\"\u003e\u003ccode\u003e05220bc\u003c/code\u003e\u003c/a\u003e fix: AsyncAnthropic._make_status_error missing 529 and 413 cases (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1244\"\u003e#1244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.85.0...v0.86.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.28.0 to 2.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.30.0\u003c/h2\u003e\n\u003ch2\u003e2.30.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.29.0...v2.30.0\"\u003ev2.29.0...v2.30.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add keys field to Click/DoubleClick/Drag/Move/Scroll computer actions (\u003ca href=\"https://github.com/openai/openai-python/commit/ee1bbeddbb38dab817557412dc106354409bb950\"\u003eee1bbed\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e align SDK response types with expanded item schemas (\u003ca href=\"https://github.com/openai/openai-python/commit/f3f258a9d4d19db3fb0c6c35e25ad3cedbe71254\"\u003ef3f258a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esanitize endpoint path params (\u003ca href=\"https://github.com/openai/openai-python/commit/89f66988fde790c0c83ff8b876d1e1b10d616367\"\u003e89f6698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e make type required in ResponseInputMessageItem (\u003ca href=\"https://github.com/openai/openai-python/commit/cfdb1676ea0550840330a58f1a31a40a41a0a53f\"\u003ecfdb167\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e skip lint on metadata-only changes (\u003ca href=\"https://github.com/openai/openai-python/commit/faa93e19a1d5c30c7dd672a08dbbdbb3c0374714\"\u003efaa93e1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e update gitignore (\u003ca href=\"https://github.com/openai/openai-python/commit/c468477f1546579618865a726e35a685cffeacd9\"\u003ec468477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.4 (\u003ca href=\"https://github.com/openai/openai-python/commit/f350af86c13ade0237778010d264c55fda443354\"\u003ef350af8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.5 (\u003ca href=\"https://github.com/openai/openai-python/commit/5c0340128fc1a416e2dfdc6ab4b05f1e954e8482\"\u003e5c03401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.6 (\u003ca href=\"https://github.com/openai/openai-python/commit/b6353b8411d31dcc95875d801ce9e90a21e0fd52\"\u003eb6353b8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.7 (\u003ca href=\"https://github.com/openai/openai-python/commit/1d654bea74ac9c3d43302587f98f33cfff502e48\"\u003e1d654be\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e switch from prism to steady (\u003ca href=\"https://github.com/openai/openai-python/commit/4a82035669b739d16a0e85d4ded778d51e061948\"\u003e4a82035\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.29.0\u003c/h2\u003e\n\u003ch2\u003e2.29.0 (2026-03-17)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.28.0...v2.29.0\"\u003ev2.28.0...v2.29.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e 5.4 nano and mini model slugs (\u003ca href=\"https://github.com/openai/openai-python/commit/3b456661f77ca3196aceb5ab3350664a63481114\"\u003e3b45666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add /v1/videos endpoint to batches create method (\u003ca href=\"https://github.com/openai/openai-python/commit/c0e7a161a996854021e9eb69ea2a60ca0d08047f\"\u003ec0e7a16\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add defer_loading field to ToolFunction (\u003ca href=\"https://github.com/openai/openai-python/commit/3167595432bdda2f90721901d30ad316db49323e\"\u003e3167595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add in and nin operators to ComparisonFilter type (\u003ca href=\"https://github.com/openai/openai-python/commit/664f02b051af84e1ca3fa313981ec72fdea269b3\"\u003e664f02b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e bump minimum typing-extensions version (\u003ca href=\"https://github.com/openai/openai-python/commit/a2fb2ca55142c6658a18be7bd1392a01f5a83f35\"\u003ea2fb2ca\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epydantic:\u003c/strong\u003e do not pass \u003ccode\u003eby_alias\u003c/code\u003e unless set (\u003ca href=\"https://github.com/openai/openai-python/commit/8ebe8fbcb011c6a005a715cae50c6400a8596ee0\"\u003e8ebe8fb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.30.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.29.0...v2.30.0\"\u003ev2.29.0...v2.30.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add keys field to Click/DoubleClick/Drag/Move/Scroll computer actions (\u003ca href=\"https://github.com/openai/openai-python/commit/ee1bbeddbb38dab817557412dc106354409bb950\"\u003eee1bbed\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e align SDK response types with expanded item schemas (\u003ca href=\"https://github.com/openai/openai-python/commit/f3f258a9d4d19db3fb0c6c35e25ad3cedbe71254\"\u003ef3f258a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esanitize endpoint path params (\u003ca href=\"https://github.com/openai/openai-python/commit/89f66988fde790c0c83ff8b876d1e1b10d616367\"\u003e89f6698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e make type required in ResponseInputMessageItem (\u003ca href=\"https://github.com/openai/openai-python/commit/cfdb1676ea0550840330a58f1a31a40a41a0a53f\"\u003ecfdb167\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e skip lint on metadata-only changes (\u003ca href=\"https://github.com/openai/openai-python/commit/faa93e19a1d5c30c7dd672a08dbbdbb3c0374714\"\u003efaa93e1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e update gitignore (\u003ca href=\"https://github.com/openai/openai-python/commit/c468477f1546579618865a726e35a685cffeacd9\"\u003ec468477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.4 (\u003ca href=\"https://github.com/openai/openai-python/commit/f350af86c13ade0237778010d264c55fda443354\"\u003ef350af8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.5 (\u003ca href=\"https://github.com/openai/openai-python/commit/5c0340128fc1a416e2dfdc6ab4b05f1e954e8482\"\u003e5c03401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.6 (\u003ca href=\"https://github.com/openai/openai-python/commit/b6353b8411d31dcc95875d801ce9e90a21e0fd52\"\u003eb6353b8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.7 (\u003ca href=\"https://github.com/openai/openai-python/commit/1d654bea74ac9c3d43302587f98f33cfff502e48\"\u003e1d654be\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e switch from prism to steady (\u003ca href=\"https://github.com/openai/openai-python/commit/4a82035669b739d16a0e85d4ded778d51e061948\"\u003e4a82035\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.29.0 (2026-03-17)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.28.0...v2.29.0\"\u003ev2.28.0...v2.29.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e 5.4 nano and mini model slugs (\u003ca href=\"https://github.com/openai/openai-python/commit/3b456661f77ca3196aceb5ab3350664a63481114\"\u003e3b45666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add /v1/videos endpoint to batches create method (\u003ca href=\"https://github.com/openai/openai-python/commit/c0e7a161a996854021e9eb69ea2a60ca0d08047f\"\u003ec0e7a16\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add defer_loading field to ToolFunction (\u003ca href=\"https://github.com/openai/openai-python/commit/3167595432bdda2f90721901d30ad316db49323e\"\u003e3167595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add in and nin operators to ComparisonFilter type (\u003ca href=\"https://github.com/openai/openai-python/commit/664f02b051af84e1ca3fa313981ec72fdea269b3\"\u003e664f02b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e bump minimum typing-extensions version (\u003ca href=\"https://github.com/openai/openai-python/commit/a2fb2ca55142c6658a18be7bd1392a01f5a83f35\"\u003ea2fb2ca\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epydantic:\u003c/strong\u003e do not pass \u003ccode\u003eby_alias\u003c/code\u003e unless set (\u003ca href=\"https://github.com/openai/openai-python/commit/8ebe8fbcb011c6a005a715cae50c6400a8596ee0\"\u003e8ebe8fb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/5ae2cc10e4140d36aa236fa7c0bc5ce5ff190a01\"\u003e\u003ccode\u003e5ae2cc1\u003c/code\u003e\u003c/a\u003e release: 2.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/6e772ae791759b25de83313614e0fb26eba895b7\"\u003e\u003ccode\u003e6e772ae\u003c/code\u003e\u003c/a\u003e fix(api): align SDK response types with expanded item schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/cd72fba37866bfdddd4a84420afe2ff397279582\"\u003e\u003ccode\u003ecd72fba\u003c/code\u003e\u003c/a\u003e feat(api): add keys field to Click/DoubleClick/Drag/Move/Scroll computer actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/4f43fe371037415ace13981a277917366b6fc24e\"\u003e\u003ccode\u003e4f43fe3\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.19.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/23bc02703bbb9497eadd5d56497d5d6954372a62\"\u003e\u003ccode\u003e23bc027\u003c/code\u003e\u003c/a\u003e chore(ci): skip lint on metadata-only changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/e3c59bf1ac8533a1be831a6d166f9f7abeabf8e0\"\u003e\u003ccode\u003ee3c59bf\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.19.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/56ad9ca089394e535d7df52fe48d544e54086ddc\"\u003e\u003ccode\u003e56ad9ca\u003c/code\u003e\u003c/a\u003e fix(types): make type required in ResponseInputMessageItem\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/78c764bdf483a0c48789bfdefe6299830d5abde0\"\u003e\u003ccode\u003e78c764b\u003c/code\u003e\u003c/a\u003e chore(internal): update gitignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/634b74edd4aaa07a74f9ee30241410d61624264f\"\u003e\u003ccode\u003e634b74e\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.19.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/c8c9508899b2119cc69e006403d09cbad7f616e4\"\u003e\u003ccode\u003ec8c9508\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.19.4\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.28.0...v2.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `claude-agent-sdk` from 0.1.48 to 0.1.52\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/releases\"\u003eclaude-agent-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.1.52\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eContext usage\u003c/strong\u003e: Added \u003ccode\u003eget_context_usage()\u003c/code\u003e method to \u003ccode\u003eClaudeSDKClient\u003c/code\u003e for querying context window usage by category (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/764\"\u003e#764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAnnotated parameter descriptions\u003c/strong\u003e: The \u003ccode\u003e@tool\u003c/code\u003e decorator and \u003ccode\u003ecreate_sdk_mcp_server\u003c/code\u003e now support \u003ccode\u003etyping.Annotated\u003c/code\u003e for per-parameter descriptions in JSON Schema (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/762\"\u003e#762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eToolPermissionContext fields\u003c/strong\u003e: Exposed \u003ccode\u003etool_use_id\u003c/code\u003e and \u003ccode\u003eagent_id\u003c/code\u003e in \u003ccode\u003eToolPermissionContext\u003c/code\u003e for distinguishing parallel permission requests (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/754\"\u003e#754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSession ID option\u003c/strong\u003e: Added \u003ccode\u003esession_id\u003c/code\u003e option to \u003ccode\u003eClaudeAgentOptions\u003c/code\u003e for specifying custom session IDs (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/750\"\u003e#750\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eString prompt in connect()\u003c/strong\u003e: Fixed \u003ccode\u003econnect(prompt=\u0026quot;...\u0026quot;)\u003c/code\u003e silently dropping the string prompt, causing \u003ccode\u003ereceive_messages()\u003c/code\u003e to hang indefinitely (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/769\"\u003e#769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCancel request handling\u003c/strong\u003e: Implemented \u003ccode\u003econtrol_cancel_request\u003c/code\u003e handling so in-flight hook callbacks are properly cancelled when the CLI abandons them (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/751\"\u003e#751\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.87\u003c/li\u003e\n\u003cli\u003eIncreased CI timeout for example tests and reduced sleep duration in error handling example (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/760\"\u003e#760\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003ePyPI:\u003c/strong\u003e \u003ca href=\"https://pypi.org/project/claude-agent-sdk/0.1.52/\"\u003ehttps://pypi.org/project/claude-agent-sdk/0.1.52/\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install claude-agent-sdk==0.1.52\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.1.51\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSession management\u003c/strong\u003e: Added \u003ccode\u003efork_session()\u003c/code\u003e, \u003ccode\u003edelete_session()\u003c/code\u003e, and offset-based pagination for session listing (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/744\"\u003e#744\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTask budget\u003c/strong\u003e: Added \u003ccode\u003etask_budget\u003c/code\u003e option for token budget management (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/747\"\u003e#747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSystemPromptFile\u003c/strong\u003e: Added support for \u003ccode\u003e--system-prompt-file\u003c/code\u003e CLI flag via \u003ccode\u003eSystemPromptFile\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAgentDefinition fields\u003c/strong\u003e: Added \u003ccode\u003edisallowedTools\u003c/code\u003e, \u003ccode\u003emaxTurns\u003c/code\u003e, and \u003ccode\u003einitialPrompt\u003c/code\u003e to \u003ccode\u003eAgentDefinition\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/759\"\u003e#759\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePreserved fields\u003c/strong\u003e: Preserve dropped fields on \u003ccode\u003eAssistantMessage\u003c/code\u003e and \u003ccode\u003eResultMessage\u003c/code\u003e for forward compatibility (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ePython 3.10 compatibility\u003c/strong\u003e: Use \u003ccode\u003etyping_extensions.TypedDict\u003c/code\u003e on Python 3.10 for \u003ccode\u003eNotRequired\u003c/code\u003e support (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/761\"\u003e#761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eResultMessage errors field\u003c/strong\u003e: Added missing \u003ccode\u003eerrors\u003c/code\u003e field to \u003ccode\u003eResultMessage\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/749\"\u003e#749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAsync generator cleanup\u003c/strong\u003e: Resolved cross-task cancel scope \u003ccode\u003eRuntimeError\u003c/code\u003e on async generator cleanup (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/746\"\u003e#746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMCP tool input_schema\u003c/strong\u003e: Convert \u003ccode\u003eTypedDict\u003c/code\u003e input_schema to proper JSON Schema in SDK MCP tools (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/736\"\u003e#736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einitialize_timeout\u003c/strong\u003e: Pass \u003ccode\u003einitialize_timeout\u003c/code\u003e from env var in \u003ccode\u003equery()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/743\"\u003e#743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAsync event loop blocking\u003c/strong\u003e: Defer CLI discovery to \u003ccode\u003econnect()\u003c/code\u003e to avoid blocking async event loops (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/722\"\u003e#722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePermission mode\u003c/strong\u003e: Added missing \u003ccode\u003edontAsk\u003c/code\u003e permission mode to types (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEnvironment filtering\u003c/strong\u003e: Filter \u003ccode\u003eCLAUDECODE\u003c/code\u003e env var from subprocess environment (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eProcess cleanup\u003c/strong\u003e: Added \u003ccode\u003eSIGKILL\u003c/code\u003e fallback when \u003ccode\u003eSIGTERM\u003c/code\u003e handler blocks in \u003ccode\u003eclose()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/729\"\u003e#729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDuplicate warning\u003c/strong\u003e: Removed duplicate version warning and included CLI path (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/720\"\u003e#720\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/blob/main/CHANGELOG.md\"\u003eclaude-agent-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.1.52\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eContext usage\u003c/strong\u003e: Added \u003ccode\u003eget_context_usage()\u003c/code\u003e method to \u003ccode\u003eClaudeSDKClient\u003c/code\u003e for querying context window usage by category (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/764\"\u003e#764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAnnotated parameter descriptions\u003c/strong\u003e: The \u003ccode\u003e@tool\u003c/code\u003e decorator and \u003ccode\u003ecreate_sdk_mcp_server\u003c/code\u003e now support \u003ccode\u003etyping.Annotated\u003c/code\u003e for per-parameter descriptions in JSON Schema (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/762\"\u003e#762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eToolPermissionContext fields\u003c/strong\u003e: Exposed \u003ccode\u003etool_use_id\u003c/code\u003e and \u003ccode\u003eagent_id\u003c/code\u003e in \u003ccode\u003eToolPermissionContext\u003c/code\u003e for distinguishing parallel permission requests (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/754\"\u003e#754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSession ID option\u003c/strong\u003e: Added \u003ccode\u003esession_id\u003c/code\u003e option to \u003ccode\u003eClaudeAgentOptions\u003c/code\u003e for specifying custom session IDs (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/750\"\u003e#750\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eString prompt in connect()\u003c/strong\u003e: Fixed \u003ccode\u003econnect(prompt=\u0026quot;...\u0026quot;)\u003c/code\u003e silently dropping the string prompt, causing \u003ccode\u003ereceive_messages()\u003c/code\u003e to hang indefinitely (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/769\"\u003e#769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCancel request handling\u003c/strong\u003e: Implemented \u003ccode\u003econtrol_cancel_request\u003c/code\u003e handling so in-flight hook callbacks are properly cancelled when the CLI abandons them (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/751\"\u003e#751\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.87\u003c/li\u003e\n\u003cli\u003eIncreased CI timeout for example tests and reduced sleep duration in error handling example (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/760\"\u003e#760\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.1.51\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSession management\u003c/strong\u003e: Added \u003ccode\u003efork_session()\u003c/code\u003e, \u003ccode\u003edelete_session()\u003c/code\u003e, and offset-based pagination for session listing (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/744\"\u003e#744\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTask budget\u003c/strong\u003e: Added \u003ccode\u003etask_budget\u003c/code\u003e option for token budget management (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/747\"\u003e#747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSystemPromptFile\u003c/strong\u003e: Added support for \u003ccode\u003e--system-prompt-file\u003c/code\u003e CLI flag via \u003ccode\u003eSystemPromptFile\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAgentDefinition fields\u003c/strong\u003e: Added \u003ccode\u003edisallowedTools\u003c/code\u003e, \u003ccode\u003emaxTurns\u003c/code\u003e, and \u003ccode\u003einitialPrompt\u003c/code\u003e to \u003ccode\u003eAgentDefinition\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/759\"\u003e#759\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePreserved fields\u003c/strong\u003e: Preserve dropped fields on \u003ccode\u003eAssistantMessage\u003c/code\u003e and \u003ccode\u003eResultMessage\u003c/code\u003e for forward compatibility (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ePython 3.10 compatibility\u003c/strong\u003e: Use \u003ccode\u003etyping_extensions.TypedDict\u003c/code\u003e on Python 3.10 for \u003ccode\u003eNotRequired\u003c/code\u003e support (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/761\"\u003e#761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eResultMessage errors field\u003c/strong\u003e: Added missing \u003ccode\u003eerrors\u003c/code\u003e field to \u003ccode\u003eResultMessage\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/749\"\u003e#749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAsync generator cleanup\u003c/strong\u003e: Resolved cross-task cancel scope \u003ccode\u003eRuntimeError\u003c/code\u003e on async generator cleanup (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/746\"\u003e#746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMCP tool input_schema\u003c/strong\u003e: Convert \u003ccode\u003eTypedDict\u003c/code\u003e input_schema to proper JSON Schema in SDK MCP tools (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/736\"\u003e#736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einitialize_timeout\u003c/strong\u003e: Pass \u003ccode\u003einitialize_timeout\u003c/code\u003e from env var in \u003ccode\u003equery()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/743\"\u003e#743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAsync event loop blocking\u003c/strong\u003e: Defer CLI discovery to \u003ccode\u003econnect()\u003c/code\u003e to avoid blocking async event loops (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/722\"\u003e#722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePermission mode\u003c/strong\u003e: Added missing \u003ccode\u003edontAsk\u003c/code\u003e permission mode to types (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEnvironment filtering\u003c/strong\u003e: Filter \u003ccode\u003eCLAUDECODE\u003c/code\u003e env var from subprocess environment (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eProcess cleanup\u003c/strong\u003e: Added \u003ccode\u003eSIGKILL\u003c/code\u003e fallback when \u003ccode\u003eSIGTERM\u003c/code\u003e handler blocks in \u003ccode\u003eclose()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/729\"\u003e#729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDuplicate warning\u003c/strong\u003e: Removed duplicate version warning and included CLI path (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/720\"\u003e#720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMCP resource types\u003c/strong\u003e: Handle \u003ccode\u003eresource_link\u003c/code\u003e and embedded resource content types in SDK MCP tools (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/725\"\u003e#725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eStdin timeout\u003c/strong\u003e: Removed stdin timeout for hooks and SDK MCP servers (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eStdout parsing\u003c/strong\u003e: Skip non-JSON lines on CLI stdout to prevent buffer corruption (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/723\"\u003e#723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMCP error propagation\u003c/strong\u003e: Propagate \u003ccode\u003eis_error\u003c/code\u003e flag from SDK MCP tool results (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eInstall script\u003c/strong\u003e: Retry \u003ccode\u003einstall.sh\u003c/code\u003e fetch on 429 with pipefail + jitter (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/708\"\u003e#708\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.85\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/566e41f7a59377885693082d0e8436d8964a0491\"\u003e\u003ccode\u003e566e41f\u003c/code\u003e\u003c/a\u003e docs: update changelog for v0.1.52\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/ae9e8c10bd1e2a41460022a9e068cafc672d2e29\"\u003e\u003ccode\u003eae9e8c1\u003c/code\u003e\u003c/a\u003e chore: release v0.1.52\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/586507ee999ee93aeaea26e0986232bce37a6e89\"\u003e\u003ccode\u003e586507e\u003c/code\u003e\u003c/a\u003e chore: bump bundled CLI version to 2.1.87\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/9d467b7560b48ed741b7f2bebe09c91513077530\"\u003e\u003ccode\u003e9d467b7\u003c/code\u003e\u003c/a\u003e fix: send string prompt in connect() instead of silently dropping it (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/769\"\u003e#769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/2c29362c0fb77835b2328f164203187e5d4acb1c\"\u003e\u003ccode\u003e2c29362\u003c/code\u003e\u003c/a\u003e fix: implement control_cancel_request handling (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/751\"\u003e#751\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/ac900bddd5528bad8845ebc909320ae2c7faca7a\"\u003e\u003ccode\u003eac900bd\u003c/code\u003e\u003c/a\u003e feat: add get_context_usage() method to ClaudeSDKClient (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/764\"\u003e#764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/d4377dba0b1f57e25642057bc70f5708b1301754\"\u003e\u003ccode\u003ed4377db\u003c/code\u003e\u003c/a\u003e feat: support Annotated for per-parameter descriptions in \u003ca href=\"https://github.com/tool\"\u003e\u003ccode\u003e@​tool\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/762\"\u003e#762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/fe0cff3c902f88e80bc1ac5ee85250e2fb73da83\"\u003e\u003ccode\u003efe0cff3\u003c/code\u003e\u003c/a\u003e feat: expose tool_use_id and agent_id in ToolPermissionContext (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/754\"\u003e#754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/5656d20edd32634ca181921493a708eb51be62cb\"\u003e\u003ccode\u003e5656d20\u003c/code\u003e\u003c/a\u003e feat: add session_id option to ClaudeAgentOptions (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/750\"\u003e#750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/278570d81efcf1a37709a24e07d04b5ae04d1b27\"\u003e\u003ccode\u003e278570d\u003c/code\u003e\u003c/a\u003e fix(ci): increase test-examples timeout and reduce sleep in error_handling ex...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/compare/v0.1.48...v0.1.52\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dependency-injector` from 4.48.3 to 4.49.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.49.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.14 support\u003c/li\u003e\n\u003cli\u003eFix Pydantic v2 deprecation warning triggering on settings class import (fixes \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix grammar in Declarative Container documentation by \u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing warn_unresolved parameter to WiringConfiguration in containers.pyi by \u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd keep_cache argument to Container.wire typings by \u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for some type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/943\"\u003eets-labs/python-dependency-injector#943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for remaining type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/953\"\u003eets-labs/python-dependency-injector#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd provided()\u003c!-- raw HTML omitted --\u003e.call *args, **kwargs arguments \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/945\"\u003e#945\u003c/a\u003e by \u003ca href=\"https://github.com/pavalso\"\u003e\u003ccode\u003e@​pavalso\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/946\"\u003eets-labs/python-dependency-injector#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd context local resource by \u003ca href=\"https://github.com/elina-israyelyan\"\u003e\u003ccode\u003e@​elina-israyelyan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/931\"\u003eets-labs/python-dependency-injector#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI/CD to \u003ccode\u003eactions/checkout@v6\u003c/code\u003e, \u003ccode\u003eactions/setup-python@v6\u003c/code\u003e, \u003ccode\u003eactions/download-artifact@v8\u003c/code\u003e, \u003ccode\u003eactions/upload-artifact@v7\u003c/code\u003e and \u003ccode\u003epypa/cibuildwheel@v3.4.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdd dependabot config for GitHub Actions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pavalso\"\u003e\u003ccode\u003e@​pavalso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/946\"\u003eets-labs/python-dependency-injector#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elina-israyelyan\"\u003e\u003ccode\u003e@​elina-israyelyan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/931\"\u003eets-labs/python-dependency-injector#931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5f7aa1c337c77e782e1e927eb4b1e41a60912604\"\u003e\u003ccode\u003e5f7aa1c\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5863d99bd5e9b2d22c15f3815b23973317a453ee\"\u003e\u003ccode\u003e5863d99\u003c/code\u003e\u003c/a\u003e Add .github/dependabot.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/000c670c7e655cc7db423a76c6b877d185f706ce\"\u003e\u003ccode\u003e000c670\u003c/code\u003e\u003c/a\u003e Upgrade GHA actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/931084070a5304a26a925961375a5afcc3c3a38b\"\u003e\u003ccode\u003e9310840\u003c/code\u003e\u003c/a\u003e Fix iscoroutinefunction import for older Pythons\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/05a5e7d8701a1df8cb88ad55d187ba88cd6ffbe8\"\u003e\u003ccode\u003e05a5e7d\u003c/code\u003e\u003c/a\u003e Fix get_annotations import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/58700d9dbd3420a559330666edfb477418997ff9\"\u003e\u003ccode\u003e58700d9\u003c/code\u003e\u003c/a\u003e Use from import statements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/0e25331738716d5bfa5562d42617deb6ad65d23c\"\u003e\u003ccode\u003e0e25331\u003c/code\u003e\u003c/a\u003e Do not build nogil wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1696986aa7698120a7e2aab2355d93e178fc36f9\"\u003e\u003ccode\u003e1696986\u003c/code\u003e\u003c/a\u003e Python 3.14 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/525935137e81355657e44b454c0f7b19b69fdc7b\"\u003e\u003ccode\u003e5259351\u003c/code\u003e\u003c/a\u003e Add context local resource (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/931\"\u003e#931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/76d5932b7340719eac2b737bd444daacc7bb0682\"\u003e\u003ccode\u003e76d5932\u003c/code\u003e\u003c/a\u003e Add provided()\u0026lt;func\u0026gt;.call *args, **kwargs arguments (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/946\"\u003e#946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 46.0.5 to 46.0.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e46.0.6 - 2026-03-25\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **SECURITY ISSUE**: Fixed a bug where name constraints were not applied\n  to peer names during verification when the leaf certificate contains a\n  wildcard DNS SAN. Ordinary X.509 topologies are not affected by this bug,\n  including those used by the Web PKI. Credit to **Oleh Konko (1seal)** for\n  reporting the issue. **CVE-2026-34073**\n\u003cp\u003e.. _v46-0-5:\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/91d728897bdad30cd5c79a2b23e207f1f050d587\"\u003e\u003ccode\u003e91d7288\u003c/code\u003e\u003c/a\u003e Cherry-pick \u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14542\"\u003e#14542\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14543\"\u003e#14543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/46.0.5...46.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.12.1 to 4.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.13.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ettl\u003c/code\u003e parameter to the \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e wrapper (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1073\"\u003e#1073\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Graeme22\"\u003e\u003ccode\u003e@​Graeme22\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWidened the type annotations of file I/O streams to accept \u003ccode\u003eIO[bytes]\u003c/code\u003e instead of just \u003ccode\u003eBinaryIO\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.Path\u003c/code\u003e not being compatible with Python 3.15 due to the removal of \u003ccode\u003epathlib.Path.is_reserved()\u003c/code\u003e and the addition of \u003ccode\u003epathlib.Path.__vfspath__()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1061\"\u003e#1061\u003c/a\u003e; PR by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the \u003ccode\u003eBrokenResourceError\u003c/code\u003e raised by the asyncio \u003ccode\u003eSocketStream\u003c/code\u003e not having the original exception as its cause (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1055\"\u003e#1055\u003c/a\u003e; PR by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the \u003ccode\u003eTypeError\u003c/code\u003e raised when using \u0026quot;func\u0026quot; as a parameter name in \u003ccode\u003epytest.mark.parametrize\u003c/code\u003e when using the pytest plugin (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1068\"\u003e#1068\u003c/a\u003e; PR by \u003ca href=\"https://github.com/JohnnyDeuss\"\u003e\u003ccode\u003e@​JohnnyDeuss\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the pytest plugin not running tests that had the \u003ccode\u003eanyio\u003c/code\u003e marker added programmatically via \u003ccode\u003epytest_collection_modifyitems\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/422\"\u003e#422\u003c/a\u003e; PR by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed cancellation exceptions leaking from a \u003ccode\u003eCancelScope\u003c/code\u003e on asyncio when they are contained in an exception group alongside non-cancellation exceptions (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1091\"\u003e#1091\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCondition.wait()\u003c/code\u003e not passing on a notification when the task is cancelled but already received a notification\u003c/li\u003e\n\u003cli\u003eFixed inverted condition in the process pool shutdown phase which would cause still-running pooled processes not to be terminated (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1074\"\u003e#1074\u003c/a\u003e; PR by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/afbe93ca9d0c447adf26e9c1715ac20870622bf2\"\u003e\u003ccode\u003eafbe93c\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/33bdf2e4b4f40c2df178123746147a6d2471808d\"\u003e\u003ccode\u003e33bdf2e\u003c/code\u003e\u003c/a\u003e Rearranged the changelog entries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/19e09e25bc5a23dd78a577d8c3909dd377057c78\"\u003e\u003ccode\u003e19e09e2\u003c/code\u003e\u003c/a\u003e Fixed inverted condition in _forcibly_shutdown_process_pool_on_exit (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1074\"\u003e#1074\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9369d80b9e8292f2a892a9d5c73923c6a28aa08c\"\u003e\u003ccode\u003e9369d80\u003c/code\u003e\u003c/a\u003e Fixed Condition.wait() not handing over notification when cancelled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/6f122abdc6f6b166c6b6ac27d36d55cdf8fa08e8\"\u003e\u003ccode\u003e6f122ab\u003c/code\u003e\u003c/a\u003e Fixed cancellation exceptions leaking from a \u003ccode\u003eCancelScope\u003c/code\u003e on asyncio when th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/beaa45aff568a4020f2faf317321dd92f0e1f4a0\"\u003e\u003ccode\u003ebeaa45a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1097\"\u003e#1097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/602f6606dcf3f37702686a4f3e161328c537b07f\"\u003e\u003ccode\u003e602f660\u003c/code\u003e\u003c/a\u003e Widened type annotations to accept IO[bytes] in file streams\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b5dcd45170701a756ba634197398f05d4710cab3\"\u003e\u003ccode\u003eb5dcd45\u003c/code\u003e\u003c/a\u003e Added note about erasing the template\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/d68670b3b4e0917d4caff2de082e03220f3e05a1\"\u003e\u003ccode\u003ed68670b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1090\"\u003e#1090\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/fc17a22dd948e6a3d90d99908813f0010dfc3d2c\"\u003e\u003ccode\u003efc17a22\u003c/code\u003e\u003c/a\u003e tweak to_thread docs about abandon_on_cancel (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1088\"\u003e#1088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.12.1...4.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fsspec` from 2026.2.0 to 2026.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/49e6189b2cd8ee95b9357bff6a5671ea3b32c2ca\"\u003e\u003ccode\u003e49e6189\u003c/code\u003e\u003c/a\u003e changelog (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2005\"\u003e#2005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/e73753a3c9086398a54942d26f7bc4a7232ac336\"\u003e...\n\n_Description has been truncated_","html_url":"https://github.com/pilotspace/pilot-space/pull/111","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pilotspace%2Fpilot-space/issues/111","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/111/packages"},{"uuid":"4133500269","node_id":"PR_kwDOPYkt3s7NQtAI","number":524,"state":"closed","title":"build(deps): bump the all-python-deps group across 1 directory with 10 updates","user":"dependabot[bot]","labels":[],"assignees":["scottfrasso"],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-03-26T08:14:55.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-25T08:15:01.000Z","updated_at":"2026-03-26T08:14:57.000Z","time_to_close":86394,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"all-python-deps","update_count":10,"packages":[{"name":"pydantic-ai","old_version":"1.70.0","new_version":"1.71.0","repository_url":"https://github.com/pydantic/pydantic-ai"},{"name":"logfire","old_version":"4.29.0","new_version":"4.30.0","repository_url":"https://github.com/pydantic/logfire"},{"name":"real-ladybug","old_version":"0.15.1","new_version":"0.15.2","repository_url":"https://github.com/lbugdb/lbug"},{"name":"tree-sitter-rust","old_version":"0.24.0","new_version":"0.24.1","repository_url":"https://github.com/tree-sitter/tree-sitter-rust"},{"name":"anthropic","old_version":"0.85.0","new_version":"0.86.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"genai-prices","old_version":"0.0.55","new_version":"0.0.56","repository_url":"https://github.com/pydantic/genai-prices"},{"name":"dependency-injector","old_version":"4.48.3","new_version":"4.49.0","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"claude-agent-sdk","old_version":"0.1.48","new_version":"0.1.50","repository_url":"https://github.com/anthropics/claude-agent-sdk-python"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"ruff","old_version":"0.15.6","new_version":"0.15.7","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-python-deps group with 10 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic-ai](https://github.com/pydantic/pydantic-ai) | `1.70.0` | `1.71.0` |\n| [logfire](https://github.com/pydantic/logfire) | `4.29.0` | `4.30.0` |\n| [real-ladybug](https://github.com/lbugdb/lbug) | `0.15.1` | `0.15.2` |\n| [tree-sitter-rust](https://github.com/tree-sitter/tree-sitter-rust) | `0.24.0` | `0.24.1` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.85.0` | `0.86.0` |\n| [genai-prices](https://github.com/pydantic/genai-prices) | `0.0.55` | `0.0.56` |\n| [dependency-injector](https://github.com/ets-labs/python-dependency-injector) | `4.48.3` | `4.49.0` |\n| [claude-agent-sdk](https://github.com/anthropics/claude-agent-sdk-python) | `0.1.48` | `0.1.50` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.6` | `0.15.7` |\n\n\nUpdates `pydantic-ai` from 1.70.0 to 1.71.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-ai/releases\"\u003epydantic-ai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.71.0 (2026-03-24)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ca href=\"https://ai.pydantic.dev/capabilities/\"\u003eCapabilities\u003c/a\u003e: composable, reusable units of agent behavior that bundle tools, lifecycle hooks, instructions, and model settings into a single class you plug into any agent by \u003ca href=\"https://github.com/DouweM\"\u003e\u003ccode\u003e@​DouweM\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4640\"\u003epydantic/pydantic-ai#4640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ca href=\"https://ai.pydantic.dev/agent-spec/\"\u003e\u003ccode\u003eAgentSpec\u003c/code\u003e\u003c/a\u003e and \u003ccode\u003eAgent.from_file\u003c/code\u003e for loading agents from YAML/JSON, with support for templated instructions referencing deps (via \u003ccode\u003eTemplateStr\u003c/code\u003e) by \u003ca href=\"https://github.com/DouweM\"\u003e\u003ccode\u003e@​DouweM\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4640\"\u003epydantic/pydantic-ai#4640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ca href=\"https://ai.pydantic.dev/hooks/\"\u003e\u003ccode\u003eHooks\u003c/code\u003e\u003c/a\u003e capability for defining hooks using decorators by \u003ca href=\"https://github.com/DouweM\"\u003e\u003ccode\u003e@​DouweM\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4640\"\u003epydantic/pydantic-ai#4640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ca href=\"https://ai.pydantic.dev/thinking/\"\u003e\u003ccode\u003eThinking\u003c/code\u003e\u003c/a\u003e capability and cross-provider \u003ccode\u003ethinking\u003c/code\u003e model setting by \u003ca href=\"https://github.com/DouweM\"\u003e\u003ccode\u003e@​DouweM\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4640\"\u003epydantic/pydantic-ai#4640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ca href=\"https://ai.pydantic.dev/capabilities/#provider-adaptive-tools\"\u003eprovider-adaptive tools\u003c/a\u003e capabilities \u003ccode\u003eWebSearch\u003c/code\u003e, \u003ccode\u003eWebFetch\u003c/code\u003e, \u003ccode\u003eMCP\u003c/code\u003e, \u003ccode\u003eImageGeneration\u003c/code\u003e that automatically fall back from builtin (provider) tools to local tools by \u003ca href=\"https://github.com/DouweM\"\u003e\u003ccode\u003e@​DouweM\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4640\"\u003epydantic/pydantic-ai#4640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ca href=\"https://ai.pydantic.dev/toolsets/#per-run-and-per-step-lifecycle\"\u003e\u003ccode\u003eAbstractToolset.for_run\u003c/code\u003e\u003c/a\u003e and \u003ccode\u003efor_run_step\u003c/code\u003e for state isolation by \u003ca href=\"https://github.com/DouweM\"\u003e\u003ccode\u003e@​DouweM\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4640\"\u003epydantic/pydantic-ai#4640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eopenai:gpt-5.4-mini\u003c/code\u003e and \u003ccode\u003eopenai:gpt-5.4-nano\u003c/code\u003e by \u003ca href=\"https://github.com/adtyavrdhn\"\u003e\u003ccode\u003e@​adtyavrdhn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4787\"\u003epydantic/pydantic-ai#4787\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-ai/compare/v1.70.0...v1.71.0\"\u003ehttps://github.com/pydantic/pydantic-ai/compare/v1.70.0...v1.71.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/a0bc09c237336ccaa4324d7e9ac9c65045cde628\"\u003e\u003ccode\u003ea0bc09c\u003c/code\u003e\u003c/a\u003e Add Capability abstraction, \u003ccode\u003eAgentSpec\u003c/code\u003e, \u003ccode\u003eHooks\u003c/code\u003e, unified \u003ccode\u003ethinking\u003c/code\u003e setting,...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/c0ae161777e7c54a2ea7ecfa14abc8d2f20495dc\"\u003e\u003ccode\u003ec0ae161\u003c/code\u003e\u003c/a\u003e ci: enable display_report on auto-review action (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/issues/4817\"\u003e#4817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/e1f2b4c13b78587563dfd731a41462588bd74a68\"\u003e\u003ccode\u003ee1f2b4c\u003c/code\u003e\u003c/a\u003e Fix indentation of code blocks (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/234253cfac3c16522f95deac531ade3a7568611b\"\u003e\u003ccode\u003e234253c\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eopenai:gpt-5.4-mini\u003c/code\u003e and \u003ccode\u003eopenai:gpt-5.4-nano\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/issues/4787\"\u003e#4787\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/f8fce32be578bf5901848aa5875672d1bf1092b1\"\u003e\u003ccode\u003ef8fce32\u003c/code\u003e\u003c/a\u003e fix(ci): add checkout step to category-label job in bots workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/issues/4784\"\u003e#4784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pydantic/pydantic-ai/compare/v1.70.0...v1.71.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `logfire` from 4.29.0 to 4.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/logfire/releases\"\u003elogfire's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.30.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elogfire auth logout\u003c/code\u003e command by \u003ca href=\"https://github.com/ai-man-codes\"\u003e\u003ccode\u003e@​ai-man-codes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1781\"\u003e#1781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove Rich link styling from project URL output by \u003ca href=\"https://github.com/ameenalkhaldi\"\u003e\u003ccode\u003e@​ameenalkhaldi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1784\"\u003e#1784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix push_config() to push labels and versions by \u003ca href=\"https://github.com/dmontagu\"\u003e\u003ccode\u003e@​dmontagu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1785\"\u003e#1785\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMerge \u003ccode\u003eexport_dataset\u003c/code\u003e into \u003ccode\u003eget_dataset\u003c/code\u003e with \u003ccode\u003einclude_cases\u003c/code\u003e parameter by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1792\"\u003e#1792\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/logfire/blob/main/CHANGELOG.md\"\u003elogfire's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v4.30.0] (2026-03-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elogfire auth logout\u003c/code\u003e command by \u003ca href=\"https://github.com/ai-man-codes\"\u003e\u003ccode\u003e@​ai-man-codes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1781\"\u003e#1781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove Rich link styling from project URL output by \u003ca href=\"https://github.com/ameenalkhaldi\"\u003e\u003ccode\u003e@​ameenalkhaldi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1784\"\u003e#1784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix push_config() to push labels and versions by \u003ca href=\"https://github.com/dmontagu\"\u003e\u003ccode\u003e@​dmontagu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1785\"\u003e#1785\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMerge \u003ccode\u003eexport_dataset\u003c/code\u003e into \u003ccode\u003eget_dataset\u003c/code\u003e with \u003ccode\u003einclude_cases\u003c/code\u003e parameter by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1792\"\u003e#1792\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/8e3dbe465adb5a97a2bcd8c459f6ec09b528d906\"\u003e\u003ccode\u003e8e3dbe4\u003c/code\u003e\u003c/a\u003e Release v4.30.0 (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1794\"\u003e#1794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/f036a5d6adc89306b4d618850d806bea8fe9de9b\"\u003e\u003ccode\u003ef036a5d\u003c/code\u003e\u003c/a\u003e Merge \u003ccode\u003eexport_dataset\u003c/code\u003e into \u003ccode\u003eget_dataset\u003c/code\u003e with \u003ccode\u003einclude_cases\u003c/code\u003e parameter (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1792\"\u003e#1792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/7d34f32816768eb6f45c9acd90cca3960efddaca\"\u003e\u003ccode\u003e7d34f32\u003c/code\u003e\u003c/a\u003e chore: Update dependencies (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1793\"\u003e#1793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/00f4d1cf0075c4eb9ca57a35c4ebcb27e17ba90d\"\u003e\u003ccode\u003e00f4d1c\u003c/code\u003e\u003c/a\u003e docs: add documentation for experimental browser proxy handler (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1742\"\u003e#1742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/b2556724a93cc29028a876b17f49644796e76095\"\u003e\u003ccode\u003eb255672\u003c/code\u003e\u003c/a\u003e Add cross-reference link for \u003ccode\u003epydantic_evals.Dataset\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1791\"\u003e#1791\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/97d0d32d094be98026638a1e124e8269d517ddb0\"\u003e\u003ccode\u003e97d0d32\u003c/code\u003e\u003c/a\u003e Move Datasets SDK Reference to the Reference section (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1790\"\u003e#1790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/65d9b480b41a3a84c12c32ee62e3b5c211903c28\"\u003e\u003ccode\u003e65d9b48\u003c/code\u003e\u003c/a\u003e Fix push_config() to push labels and versions (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1785\"\u003e#1785\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/0e49172f5caf2c894a4150a8cb6abeefa0b47e95\"\u003e\u003ccode\u003e0e49172\u003c/code\u003e\u003c/a\u003e Remove Rich link styling from project URL output (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1784\"\u003e#1784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/663a13202cfbbb8ea43ecfa39b6a2a5f3e9df196\"\u003e\u003ccode\u003e663a132\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003elogfire auth logout\u003c/code\u003e command (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1781\"\u003e#1781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/c3ee57b4675f8bbd32d5f904c72168288176c4b4\"\u003e\u003ccode\u003ec3ee57b\u003c/code\u003e\u003c/a\u003e Update more documentation about plans (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/logfire/compare/v4.29.0...v4.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `real-ladybug` from 0.15.1 to 0.15.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/lbugdb/lbug/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tree-sitter-rust` from 0.24.0 to 0.24.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/releases\"\u003etree-sitter-rust's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.24.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNOTE:\u003c/strong\u003e Download \u003ccode\u003etree-sitter-rust.tar.gz\u003c/code\u003e for the \u003cem\u003ecomplete\u003c/em\u003e source code.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/4b8106750a2865e4548459d18c797c9f468c440e\"\u003e\u003ccode\u003e4b81067\u003c/code\u003e\u003c/a\u003e Disable regeneration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/6651c80dc5f033f9666365de50260d02cea05412\"\u003e\u003ccode\u003e6651c80\u003c/code\u003e\u003c/a\u003e Regenerate parser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/96e3121c41bc5f2b659f21dd5a43894c4028ddf1\"\u003e\u003ccode\u003e96e3121\u003c/code\u003e\u003c/a\u003e Remove attestations from GH release job\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/8a1ccae7aaccdc11b04dbd803453e3e9cfd9159b\"\u003e\u003ccode\u003e8a1ccae\u003c/code\u003e\u003c/a\u003e 0.24.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/ab43fdbb1640bdece8fab9927b1aa6774d942189\"\u003e\u003ccode\u003eab43fdb\u003c/code\u003e\u003c/a\u003e Parse string literals even in with unexpected prefixes (\u003ca href=\"https://redirect.github.com/tree-sitter/tree-sitter-rust/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/261b20226c04ef601adbdf185a800512a5f66291\"\u003e\u003ccode\u003e261b202\u003c/code\u003e\u003c/a\u003e Raw reference/identifier conflict (\u003ca href=\"https://redirect.github.com/tree-sitter/tree-sitter-rust/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/946595d164e77b705fa28385654f9420f59262ef\"\u003e\u003ccode\u003e946595d\u003c/code\u003e\u003c/a\u003e Include LICENSE (\u003ca href=\"https://redirect.github.com/tree-sitter/tree-sitter-rust/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/00d7cbc95f0b8ea2703129550fbd1853a13e0e29\"\u003e\u003ccode\u003e00d7cbc\u003c/code\u003e\u003c/a\u003e ci: bump tree-sitter/parser-test-action from 2 to 3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/2a58b00ed44829eebcbe6f932604093b9396a43b\"\u003e\u003ccode\u003e2a58b00\u003c/code\u003e\u003c/a\u003e ci: bump actions/setup-node from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/3bfef41a01ab49a25ffdecf998823b4b82fcaf69\"\u003e\u003ccode\u003e3bfef41\u003c/code\u003e\u003c/a\u003e ci: bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/compare/v0.24.0...v0.24.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anthropic` from 0.85.0 to 0.86.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/releases\"\u003eanthropic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.86.0\u003c/h2\u003e\n\u003ch2\u003e0.86.0 (2026-03-18)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.85.0...v0.86.0\"\u003ev0.85.0...v0.86.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for filesystem memory tools (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1247\"\u003e#1247\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/235d218211ac4b8f1aa37e29bedc998bfb6ce77d\"\u003e235d218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/86dbe4aa58386bfb8d1497debf342e929e9bb5e5\"\u003e86dbe4a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/45d9cc0914200a43743ab11aa311392e9d8c1b4f\"\u003e45d9cc0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAsyncAnthropic._make_status_error missing 529 and 413 cases (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1244\"\u003e#1244\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/05220bc1c1079fe01f5c4babc007ec7a990859d9\"\u003e05220bc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e bump minimum typing-extensions version (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/09ab112289815ba6f19d8fb3da1e715748182799\"\u003e09ab112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epydantic:\u003c/strong\u003e do not pass \u003ccode\u003eby_alias\u003c/code\u003e unless set (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b17480e9d06613aa597dd40d5a47f4f1250ac762\"\u003eb17480e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e tweak CI branches (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3c0308c97804ababfd3f37330e129e68ccfe4bbc\"\u003e3c0308c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/blob/main/CHANGELOG.md\"\u003eanthropic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.86.0 (2026-03-18)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.85.0...v0.86.0\"\u003ev0.85.0...v0.86.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for filesystem memory tools (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1247\"\u003e#1247\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/235d218211ac4b8f1aa37e29bedc998bfb6ce77d\"\u003e235d218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/86dbe4aa58386bfb8d1497debf342e929e9bb5e5\"\u003e86dbe4a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/45d9cc0914200a43743ab11aa311392e9d8c1b4f\"\u003e45d9cc0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAsyncAnthropic._make_status_error missing 529 and 413 cases (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1244\"\u003e#1244\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/05220bc1c1079fe01f5c4babc007ec7a990859d9\"\u003e05220bc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e bump minimum typing-extensions version (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/09ab112289815ba6f19d8fb3da1e715748182799\"\u003e09ab112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epydantic:\u003c/strong\u003e do not pass \u003ccode\u003eby_alias\u003c/code\u003e unless set (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b17480e9d06613aa597dd40d5a47f4f1250ac762\"\u003eb17480e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e tweak CI branches (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3c0308c97804ababfd3f37330e129e68ccfe4bbc\"\u003e3c0308c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/d7c0974ce6ab94ca135b10b2a45308203c0e0c7e\"\u003e\u003ccode\u003ed7c0974\u003c/code\u003e\u003c/a\u003e release: 0.86.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c46a3e4708fc7f79a00cc245c6f2b11189dd84c3\"\u003e\u003ccode\u003ec46a3e4\u003c/code\u003e\u003c/a\u003e feat(api): manual updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/34045e490d9da94274c36f4333545eacb503d59c\"\u003e\u003ccode\u003e34045e4\u003c/code\u003e\u003c/a\u003e feat(api): manual updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/5ccd6b4122c83f5f1ca5bfefe496a6a257a1da21\"\u003e\u003ccode\u003e5ccd6b4\u003c/code\u003e\u003c/a\u003e feat: add support for filesystem memory tools (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1247\"\u003e#1247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/206252fcfa60a7d127e76c36d10bec8e47494fa4\"\u003e\u003ccode\u003e206252f\u003c/code\u003e\u003c/a\u003e chore(internal): tweak CI branches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c5e5f3e7adf8d60b091116198f29f0b453c18d8d\"\u003e\u003ccode\u003ec5e5f3e\u003c/code\u003e\u003c/a\u003e fix(deps): bump minimum typing-extensions version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/8669b920105a717deead3acf5b5085a2e9441b72\"\u003e\u003ccode\u003e8669b92\u003c/code\u003e\u003c/a\u003e fix(pydantic): do not pass \u003ccode\u003eby_alias\u003c/code\u003e unless set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/05220bc1c1079fe01f5c4babc007ec7a990859d9\"\u003e\u003ccode\u003e05220bc\u003c/code\u003e\u003c/a\u003e fix: AsyncAnthropic._make_status_error missing 529 and 413 cases (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1244\"\u003e#1244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.85.0...v0.86.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `genai-prices` from 0.0.55 to 0.0.56\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/9ebd466b6a0bb57c81c168fa9ed6f6a1e547c22a\"\u003e\u003ccode\u003e9ebd466\u003c/code\u003e\u003c/a\u003e Prep 0.0.56 release (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/318\"\u003e#318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/c5bd290dd46af2deab22af7a0aa709906e7038d1\"\u003e\u003ccode\u003ec5bd290\u003c/code\u003e\u003c/a\u003e Add OpenRouter pricing for claude-sonnet-4.6 (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/296\"\u003e#296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/ea55b972b43eb679e99795c1479ccea4a502ebe0\"\u003e\u003ccode\u003eea55b97\u003c/code\u003e\u003c/a\u003e feat: add Qwen3 Max Thinking to OpenRouter (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/5f2a7bd337696bc2a9ca41147d0a9d7c00e824aa\"\u003e\u003ccode\u003e5f2a7bd\u003c/code\u003e\u003c/a\u003e Add Qwen3 VL 235B A22B (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/a7628264248ca1ce96acb3a2abbe19de47b3efdf\"\u003e\u003ccode\u003ea762826\u003c/code\u003e\u003c/a\u003e Add openrouter qwen/qwen3.5-plus-02-15 price (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/299\"\u003e#299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/8ab5336c8fefeb664d692f2238e1181d0ba0321b\"\u003e\u003ccode\u003e8ab5336\u003c/code\u003e\u003c/a\u003e feat: moonshot ai prices file (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/87f9120fc248dddafbb2c863a29ef5488a5164fc\"\u003e\u003ccode\u003e87f9120\u003c/code\u003e\u003c/a\u003e feat: add Gemini 3.1 Flash Image Preview pricing (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/303\"\u003e#303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/016961828b5ecb1e38932a5675fe9afa2668a135\"\u003e\u003ccode\u003e0169618\u003c/code\u003e\u003c/a\u003e Adding api-flavor for xAI native SDK (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/307\"\u003e#307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/ee468266850d8b6ebed856f9b175e37044437a44\"\u003e\u003ccode\u003eee46826\u003c/code\u003e\u003c/a\u003e feat: add GPT-5.4 mini and nano snapshot aliases (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/9205f145985ca898daa5bcf6148f932a82cf62a1\"\u003e\u003ccode\u003e9205f14\u003c/code\u003e\u003c/a\u003e feat: add pricing for GPT 5.4 mini and nano (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/315\"\u003e#315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/genai-prices/compare/v0.0.55...v0.0.56\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dependency-injector` from 4.48.3 to 4.49.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.49.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.14 support\u003c/li\u003e\n\u003cli\u003eFix Pydantic v2 deprecation warning triggering on settings class import (fixes \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix grammar in Declarative Container documentation by \u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing warn_unresolved parameter to WiringConfiguration in containers.pyi by \u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd keep_cache argument to Container.wire typings by \u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for some type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/943\"\u003eets-labs/python-dependency-injector#943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for remaining type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/953\"\u003eets-labs/python-dependency-injector#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd provided()\u003c!-- raw HTML omitted --\u003e.call *args, **kwargs arguments \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/945\"\u003e#945\u003c/a\u003e by \u003ca href=\"https://github.com/pavalso\"\u003e\u003ccode\u003e@​pavalso\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/946\"\u003eets-labs/python-dependency-injector#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd context local resource by \u003ca href=\"https://github.com/elina-israyelyan\"\u003e\u003ccode\u003e@​elina-israyelyan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/931\"\u003eets-labs/python-dependency-injector#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI/CD to \u003ccode\u003eactions/checkout@v6\u003c/code\u003e, \u003ccode\u003eactions/setup-python@v6\u003c/code\u003e, \u003ccode\u003eactions/download-artifact@v8\u003c/code\u003e, \u003ccode\u003eactions/upload-artifact@v7\u003c/code\u003e and \u003ccode\u003epypa/cibuildwheel@v3.4.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdd dependabot config for GitHub Actions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pavalso\"\u003e\u003ccode\u003e@​pavalso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/946\"\u003eets-labs/python-dependency-injector#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elina-israyelyan\"\u003e\u003ccode\u003e@​elina-israyelyan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/931\"\u003eets-labs/python-dependency-injector#931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5f7aa1c337c77e782e1e927eb4b1e41a60912604\"\u003e\u003ccode\u003e5f7aa1c\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5863d99bd5e9b2d22c15f3815b23973317a453ee\"\u003e\u003ccode\u003e5863d99\u003c/code\u003e\u003c/a\u003e Add .github/dependabot.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/000c670c7e655cc7db423a76c6b877d185f706ce\"\u003e\u003ccode\u003e000c670\u003c/code\u003e\u003c/a\u003e Upgrade GHA actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/931084070a5304a26a925961375a5afcc3c3a38b\"\u003e\u003ccode\u003e9310840\u003c/code\u003e\u003c/a\u003e Fix iscoroutinefunction import for older Pythons\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/05a5e7d8701a1df8cb88ad55d187ba88cd6ffbe8\"\u003e\u003ccode\u003e05a5e7d\u003c/code\u003e\u003c/a\u003e Fix get_annotations import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/58700d9dbd3420a559330666edfb477418997ff9\"\u003e\u003ccode\u003e58700d9\u003c/code\u003e\u003c/a\u003e Use from import statements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/0e25331738716d5bfa5562d42617deb6ad65d23c\"\u003e\u003ccode\u003e0e25331\u003c/code\u003e\u003c/a\u003e Do not build nogil wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1696986aa7698120a7e2aab2355d93e178fc36f9\"\u003e\u003ccode\u003e1696986\u003c/code\u003e\u003c/a\u003e Python 3.14 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/525935137e81355657e44b454c0f7b19b69fdc7b\"\u003e\u003ccode\u003e5259351\u003c/code\u003e\u003c/a\u003e Add context local resource (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/931\"\u003e#931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/76d5932b7340719eac2b737bd444daacc7bb0682\"\u003e\u003ccode\u003e76d5932\u003c/code\u003e\u003c/a\u003e Add provided()\u0026lt;func\u0026gt;.call *args, **kwargs arguments (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/946\"\u003e#946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `claude-agent-sdk` from 0.1.48 to 0.1.50\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/releases\"\u003eclaude-agent-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.1.50\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSession info\u003c/strong\u003e: Added \u003ccode\u003etag\u003c/code\u003e and \u003ccode\u003ecreated_at\u003c/code\u003e fields to \u003ccode\u003eSDKSessionInfo\u003c/code\u003e and new \u003ccode\u003eget_session_info()\u003c/code\u003e function for retrieving session metadata (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/667\"\u003e#667\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.81\u003c/li\u003e\n\u003cli\u003eHardened PyPI publish workflow against partial-upload failures (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded daily PyPI storage quota monitoring (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/705\"\u003e#705\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003ePyPI:\u003c/strong\u003e \u003ca href=\"https://pypi.org/project/claude-agent-sdk/0.1.50/\"\u003ehttps://pypi.org/project/claude-agent-sdk/0.1.50/\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install claude-agent-sdk==0.1.50\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.1.49\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAgentDefinition\u003c/strong\u003e: Added \u003ccode\u003eskills\u003c/code\u003e, \u003ccode\u003ememory\u003c/code\u003e, and \u003ccode\u003emcpServers\u003c/code\u003e fields (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/684\"\u003e#684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAssistantMessage usage\u003c/strong\u003e: Preserve per-turn \u003ccode\u003eusage\u003c/code\u003e on \u003ccode\u003eAssistantMessage\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/685\"\u003e#685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSession tagging\u003c/strong\u003e: Added \u003ccode\u003etag_session()\u003c/code\u003e with Unicode sanitization (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSession renaming\u003c/strong\u003e: Added \u003ccode\u003erename_session()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/668\"\u003e#668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRateLimitEvent\u003c/strong\u003e: Added typed \u003ccode\u003eRateLimitEvent\u003c/code\u003e message (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/648\"\u003e#648\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCLAUDE_CODE_ENTRYPOINT\u003c/strong\u003e: Use default-if-absent semantics to match TS SDK (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFine-grained tool streaming\u003c/strong\u003e: Reverted the env-var workaround from 0.1.48; partial-message delivery is now handled upstream (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/671\"\u003e#671\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.77\u003c/li\u003e\n\u003cli\u003eAdded macOS x86_64 wheel to the published matrix (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/661\"\u003e#661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpload wheel-check artifacts in CI (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/662\"\u003e#662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: clarified \u003ccode\u003eallowed_tools\u003c/code\u003e as a permission allowlist (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/649\"\u003e#649\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003ePyPI:\u003c/strong\u003e \u003ca href=\"https://pypi.org/project/claude-agent-sdk/0.1.49/\"\u003ehttps://pypi.org/project/claude-agent-sdk/0.1.49/\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install claude-agent-sdk==0.1.49\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/blob/main/CHANGELOG.md\"\u003eclaude-agent-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.1.50\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSession info\u003c/strong\u003e: Added \u003ccode\u003etag\u003c/code\u003e and \u003ccode\u003ecreated_at\u003c/code\u003e fields to \u003ccode\u003eSDKSessionInfo\u003c/code\u003e and new \u003ccode\u003eget_session_info()\u003c/code\u003e function for retrieving session metadata (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/667\"\u003e#667\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.81\u003c/li\u003e\n\u003cli\u003eHardened PyPI publish workflow against partial-upload failures (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded daily PyPI storage quota monitoring (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/705\"\u003e#705\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.1.49\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAgentDefinition\u003c/strong\u003e: Added \u003ccode\u003eskills\u003c/code\u003e, \u003ccode\u003ememory\u003c/code\u003e, and \u003ccode\u003emcpServers\u003c/code\u003e fields (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/684\"\u003e#684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAssistantMessage usage\u003c/strong\u003e: Preserve per-turn \u003ccode\u003eusage\u003c/code\u003e on \u003ccode\u003eAssistantMessage\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/685\"\u003e#685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSession tagging\u003c/strong\u003e: Added \u003ccode\u003etag_session()\u003c/code\u003e with Unicode sanitization (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSession renaming\u003c/strong\u003e: Added \u003ccode\u003erename_session()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/668\"\u003e#668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRateLimitEvent\u003c/strong\u003e: Added typed \u003ccode\u003eRateLimitEvent\u003c/code\u003e message (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/648\"\u003e#648\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCLAUDE_CODE_ENTRYPOINT\u003c/strong\u003e: Use default-if-absent semantics to match TS SDK (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFine-grained tool streaming\u003c/strong\u003e: Reverted the env-var workaround from 0.1.48; partial-message delivery is now handled upstream (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/671\"\u003e#671\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.77\u003c/li\u003e\n\u003cli\u003eAdded macOS x86_64 wheel to the published matrix (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/661\"\u003e#661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpload wheel-check artifacts in CI (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/662\"\u003e#662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: clarified \u003ccode\u003eallowed_tools\u003c/code\u003e as a permission allowlist (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/649\"\u003e#649\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/a7fd631911c9f5269a01e7a5eea5c67d6aa7bce6\"\u003e\u003ccode\u003ea7fd631\u003c/code\u003e\u003c/a\u003e docs: update changelog for v0.1.50\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/cf076a901227644b08ddff2e013b4ceb0fc25e3b\"\u003e\u003ccode\u003ecf076a9\u003c/code\u003e\u003c/a\u003e chore: release v0.1.50\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/2c888329078735883d7a72d34ce9798a5554d771\"\u003e\u003ccode\u003e2c88832\u003c/code\u003e\u003c/a\u003e chore: bump bundled CLI version to 2.1.81\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/13e119a1d951e319995de71d88a17d8296d80097\"\u003e\u003ccode\u003e13e119a\u003c/code\u003e\u003c/a\u003e ci: add daily PyPI storage quota monitoring (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/705\"\u003e#705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/117cffacae4a1a06f911b3b2d695e33257c86ec3\"\u003e\u003ccode\u003e117cffa\u003c/code\u003e\u003c/a\u003e ci: harden PyPI publish against partial-upload failures (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/f144dcc492b4f427439920250f7af886dd0d4d46\"\u003e\u003ccode\u003ef144dcc\u003c/code\u003e\u003c/a\u003e feat: add tag/created_at to SDKSessionInfo + get_session_info (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/667\"\u003e#667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/7251630d0a0016e3d862bee380a4697211091611\"\u003e\u003ccode\u003e7251630\u003c/code\u003e\u003c/a\u003e chore: release v0.1.49 (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/707\"\u003e#707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/40cc6f578f6c317ebf9c740ec2acaf001f8d7d56\"\u003e\u003ccode\u003e40cc6f5\u003c/code\u003e\u003c/a\u003e fix: wait for graceful subprocess shutdown before SIGTERM (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/642\"\u003e#642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/7e9b5025d51e2af15ee5450513e8913efc3b9fb7\"\u003e\u003ccode\u003e7e9b502\u003c/code\u003e\u003c/a\u003e chore: bump bundled CLI version to 2.1.79\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/ba8dd0d0faf4b68c7ec6afda213535c81af4b851\"\u003e\u003ccode\u003eba8dd0d\u003c/code\u003e\u003c/a\u003e chore: bump bundled CLI version to 2.1.78\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/compare/v0.1.48...v0.1.50\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 7.0.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0 (2026-03-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed total coverage computation to always be consistent, regardless of reporting settings.\nPreviously some reports could produce different total counts, and consequently can make --cov-fail-under behave different depending on\nreporting options.\nSee \u003ccode\u003e[#641](https://github.com/pytest-dev/pytest-cov/issues/641) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/641\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove handling of ResourceWarning from sqlite3.\u003c/p\u003e\n\u003cp\u003eThe plugin adds warning filter for sqlite3 \u003ccode\u003eResourceWarning\u003c/code\u003e unclosed database (since 6.2.0).\nIt checks if there is already existing plugin for this message by comparing filter regular expression.\nWhen filter is specified on command line the message is escaped and does not match an expected message.\nA check for an escaped regular expression is added to handle this case.\u003c/p\u003e\n\u003cp\u003eWith this fix one can suppress \u003ccode\u003eResourceWarning\u003c/code\u003e from sqlite3 from command line::\u003c/p\u003e\n\u003cp\u003epytest -W \u0026quot;ignore:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\u0026quot; ...\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to documentation.\nContributed by Art Pelling in \u003ccode\u003e[#718](https://github.com/pytest-dev/pytest-cov/issues/718) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/718\u0026gt;\u003c/code\u003e_ and\n\u0026quot;vivodi\u0026quot; in \u003ccode\u003e[#738](https://github.com/pytest-dev/pytest-cov/issues/738) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/738\u0026gt;\u003c/code\u003e\u003cem\u003e.\nAlso closed \u003ccode\u003e[#736](https://github.com/pytest-dev/pytest-cov/issues/736) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/736\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed some assertions in tests.\nContributed by in Markéta Machová in \u003ccode\u003e[#722](https://github.com/pytest-dev/pytest-cov/issues/722) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/722\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved unnecessary coverage configuration copying (meant as a backup because reporting commands had configuration side-effects before coverage 5.0).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/66c8a526b1246b5eb8fb1bc218878131bc628622\"\u003e\u003ccode\u003e66c8a52\u003c/code\u003e\u003c/a\u003e Bump version: 7.0.0 → 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f7076624784332594aa4cb3585d4757d295db15e\"\u003e\u003ccode\u003ef707662\u003c/code\u003e\u003c/a\u003e Make the examples use pypy 3.11.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/6049a7847872e3139e6c82e93787123df5dc8672\"\u003e\u003ccode\u003e6049a78\u003c/code\u003e\u003c/a\u003e Make context test use the old ctracer (seems the new sysmon tracer behaves di...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/8ebf20bbbc73478b3f8fd36d30237d9ea083f06b\"\u003e\u003ccode\u003e8ebf20b\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/861d30e60d571f97259c6b718b71c819d5dbc3b9\"\u003e\u003ccode\u003e861d30e\u003c/code\u003e\u003c/a\u003e Remove the backup context manager  - shouldn't be needed since coverage 5.0, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/fd4c956014035527f0c3c8d7faef3f8cfdadac7f\"\u003e\u003ccode\u003efd4c956\u003c/code\u003e\u003c/a\u003e Pass the precision on the nulled total (seems that there's some caching goion...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/78c9c4ecb005faf4962fd86ff7bf9c9cce9554d6\"\u003e\u003ccode\u003e78c9c4e\u003c/code\u003e\u003c/a\u003e Only run the 3.9 on older deps.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/4849a922e8be725c662a3d9175da571ace6545dc\"\u003e\u003ccode\u003e4849a92\u003c/code\u003e\u003c/a\u003e Punctuation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/197c35e2f37031fd1927715307ab6eed7cb3d2b7\"\u003e\u003ccode\u003e197c35e\u003c/code\u003e\u003c/a\u003e Update changelog and hopefully I don't forget to publish release again :))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/14dc1c92d44108384e39803888635fdbfc578b7f\"\u003e\u003ccode\u003e14dc1c9\u003c/code\u003e\u003c/a\u003e Update examples to use 3.11 and make the adhoc layout example look a bit more...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.6 to 0.15.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.7\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisplay output severity in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23845\"\u003e#23845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't show \u003ccode\u003enoqa\u003c/code\u003e hover for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24040\"\u003e#24040\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Recognize \u003ccode\u003epyrefly:\u003c/code\u003e as a pragma comment (\u003ccode\u003eE501\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24019\"\u003e#24019\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't return code actions for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23905\"\u003e#23905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd company AI policy to contributing guide (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24021\"\u003e#24021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument editor features for Markdown code formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23924\"\u003e#23924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Improve phrasing (\u003ccode\u003ePLC0208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24033\"\u003e#24033\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse PEP 639 license information (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19661\"\u003e#19661\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tmimmanuel\"\u003e\u003ccode\u003e@​tmimmanuel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statxc\"\u003e\u003ccode\u003e@​statxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.7\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.7/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/ruff/releases/download/0.15.7/ruff-installer.ps1 | iex\u0026quot;\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.7\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisplay output severity in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23845\"\u003e#23845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't show \u003ccode\u003enoqa\u003c/code\u003e hover for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24040\"\u003e#24040\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Recognize \u003ccode\u003epyrefly:\u003c/code\u003e as a pragma comment (\u003ccode\u003eE501\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24019\"\u003e#24019\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't return code actions for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23905\"\u003e#23905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd company AI policy to contributing guide (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24021\"\u003e#24021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument editor features for Markdown code formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23924\"\u003e#23924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Improve phrasing (\u003ccode\u003ePLC0208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24033\"\u003e#24033\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse PEP 639 license information (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19661\"\u003e#19661\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tmimmanuel\"\u003e\u003ccode\u003e@​tmimmanuel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statxc\"\u003e\u003ccode\u003e@​statxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0ef39de46c006994fb1e90f7bd4ba09c0b2c1f79\"\u003e\u003ccode\u003e0ef39de\u003c/code\u003e\u003c/a\u003e Bump 0.15.7 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24049\"\u003e#24049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/beb543b5c666be9fd3f13c88df818f202b63e9d0\"\u003e\u003ccode\u003ebeb543b\u003c/code\u003e\u003c/a\u003e [ty] ecosystem-analyzer: Fail on newly panicking projects (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24043\"\u003e#24043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/378fe730929ccd67a7f2426b3012093da814b31d\"\u003e\u003ccode\u003e378fe73\u003c/code\u003e\u003c/a\u003e Don't show noqa hover for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24040\"\u003e#24040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b5665bd18eecab4d3b5ab1256b36904cd99a4c57\"\u003e\u003ccode\u003eb5665bd\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epylint\u003c/code\u003e] Improve phrasing (\u003ccode\u003ePLC0208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24033\"\u003e#24033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6e20f2219020e61eeae29458013d2d3684f75a79\"\u003e\u003ccode\u003e6e20f22\u003c/code\u003e\u003c/a\u003e test: migrate \u003ccode\u003eshow_settings\u003c/code\u003e and \u003ccode\u003eversion\u003c/code\u003e tests to use \u003ccode\u003eCliTest\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23702\"\u003e#23702\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f99b284c1fe1399a82da7f6669467488017d44a7\"\u003e\u003ccode\u003ef99b284\u003c/code\u003e\u003c/a\u003e Drain file watcher events during test setup (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24030\"\u003e#24030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/744c996c35016a8c0e05aa2823f4f822ac7b842c\"\u003e\u003ccode\u003e744c996\u003c/code\u003e\u003c/a\u003e [ty] Filter out unsatisfiable inference attempts during generic call narrowin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/16160958bdafb6106b6fffc72ffe2e4db0c0ac33\"\u003e\u003ccode\u003e1616095\u003c/code\u003e\u003c/a\u003e [ty] Avoid inferring intersection types for call arguments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23933\"\u003e#23933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7f275f431bf8c60d59601b74d441e9f4bef89f35\"\u003e\u003ccode\u003e7f275f4\u003c/code\u003e\u003c/a\u003e [ty] Pin mypy_primer in \u003ccode\u003esetup_primer_project.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24020\"\u003e#24020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7255e362e4b171a641222279cd28d2ca88a74fdc\"\u003e\u003ccode\u003e7255e36\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epycodestyle\u003c/code\u003e] Recognize \u003ccode\u003epyrefly:\u003c/code\u003e as a pragma comment (\u003ccode\u003eE501\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24019\"\u003e#24019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.6...0.15.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e` 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)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/shotgun-sh/shotgun/pull/524","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/shotgun-sh%2Fshotgun/issues/524","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/524/packages"},{"uuid":"3830734724","node_id":"PR_kwDOPUpNZM6-D6Z9","number":196,"state":"open","title":"deps(deps-dev): bump the python-development group with 17 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-19T18:08:04.000Z","updated_at":"2026-01-19T18:08:20.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps-dev): bump","group_name":"python-development","update_count":17,"packages":[{"name":"dependency-injector","old_version":"4.48.2","new_version":"4.48.3","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"flake8-pyproject","old_version":"1.2.3","new_version":"1.2.4","repository_url":"https://github.com/john-hen/Flake8-pyproject"},{"name":"freezegun","old_version":"1.5.3","new_version":"1.5.5","repository_url":"https://github.com/spulec/freezegun"},{"name":"ipython","old_version":"9.4.0","new_version":"9.9.0","repository_url":"https://github.com/ipython/ipython"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pyfakefs","old_version":"5.10.2","new_version":"6.0.0","repository_url":"https://github.com/pytest-dev/pyfakefs"},{"name":"pytest-asyncio","old_version":"1.2.0","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pytest-cov","old_version":"6.1.1","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-deadfixtures","old_version":"2.2.1","new_version":"3.1.0","repository_url":"https://github.com/jllorencetti/pytest-deadfixtures"},{"name":"pytest-mock","old_version":"3.14.1","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-randomly","old_version":"3.16.0","new_version":"4.0.1","repository_url":"https://github.com/pytest-dev/pytest-randomly"},{"name":"pytest-reportportal","old_version":"5.5.2","new_version":"5.6.0","repository_url":"https://github.com/reportportal/agent-python-pytest"},{"name":"pytest-xdist","old_version":"3.6.1","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"responses","old_version":"0.25.7","new_version":"0.25.8","repository_url":"https://github.com/getsentry/responses"},{"name":"ruff","old_version":"0.12.11","new_version":"0.14.13","repository_url":"https://github.com/astral-sh/ruff"},{"name":"typing-extensions","old_version":"4.13.2","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"wemake-python-styleguide","old_version":"1.3.0","new_version":"1.5.0","repository_url":"https://github.com/wemake-services/wemake-python-styleguide"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-development group with 17 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [dependency-injector](https://github.com/ets-labs/python-dependency-injector) | `4.48.2` | `4.48.3` |\n| [flake8-pyproject](https://github.com/john-hen/Flake8-pyproject) | `1.2.3` | `1.2.4` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.5.3` | `1.5.5` |\n| [ipython](https://github.com/ipython/ipython) | `9.4.0` | `9.9.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [pyfakefs](https://github.com/pytest-dev/pyfakefs) | `5.10.2` | `6.0.0` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.2.0` | `1.3.0` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.1.1` | `7.0.0` |\n| [pytest-deadfixtures](https://github.com/jllorencetti/pytest-deadfixtures) | `2.2.1` | `3.1.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.1` | `3.15.1` |\n| [pytest-randomly](https://github.com/pytest-dev/pytest-randomly) | `3.16.0` | `4.0.1` |\n| [pytest-reportportal](https://github.com/reportportal/agent-python-pytest) | `5.5.2` | `5.6.0` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.6.1` | `3.8.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.7` | `0.25.8` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.12.11` | `0.14.13` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.13.2` | `4.15.0` |\n| [wemake-python-styleguide](https://github.com/wemake-services/wemake-python-styleguide) | `1.3.0` | `1.5.0` |\n\nUpdates `dependency-injector` from 4.48.2 to 4.48.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.48.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix providers.Resource missing overloads for AbstractContextManager and AbstractAsyncContextManager by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/927\"\u003eets-labs/python-dependency-injector#927\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFast depends v3 compatibility fix by \u003ca href=\"https://github.com/AndrianEquestrian\"\u003e\u003ccode\u003e@​AndrianEquestrian\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/933\"\u003eets-labs/python-dependency-injector#933\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow explicit typing on selector using TypeVar with default Any by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/932\"\u003eets-labs/python-dependency-injector#932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert_type for Aggregate and Callable by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/935\"\u003eets-labs/python-dependency-injector#935\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eAnnotated\u003c/code\u003e marker to be anywhere in the annotation list. by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/939\"\u003eets-labs/python-dependency-injector#939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/927\"\u003eets-labs/python-dependency-injector#927\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/939\"\u003eets-labs/python-dependency-injector#939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.3\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1510a8479732229bd851f74b9cf28520f59760d7\"\u003e\u003ccode\u003e1510a84\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/51f818720211f7257d0372bda37372f067a3347d\"\u003e\u003ccode\u003e51f8187\u003c/code\u003e\u003c/a\u003e Allow annotated marker to be anywhere in the annotation list (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/244deee75ff87c43e92b81ccbe0a062ad8f44c3d\"\u003e\u003ccode\u003e244deee\u003c/code\u003e\u003c/a\u003e Retrofit assert_type for Aggregate and Callable (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/d72d07caf751669d6d40e7fc12a2aa97816e6069\"\u003e\u003ccode\u003ed72d07c\u003c/code\u003e\u003c/a\u003e Improve type annotations in providers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/009a86de2c4a44f747e4499b1ccdf475dd449ab9\"\u003e\u003ccode\u003e009a86d\u003c/code\u003e\u003c/a\u003e Imporve dict typings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/18e32521a00e54113fa442b2b0b506d5ca109609\"\u003e\u003ccode\u003e18e3252\u003c/code\u003e\u003c/a\u003e Allow explicit typing on Selector using TypeVar with default Any (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/932\"\u003e#932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/059f78b27ccecabc5f8cf68f181e3253002c8f34\"\u003e\u003ccode\u003e059f78b\u003c/code\u003e\u003c/a\u003e Fix FastDepends v3 compatibility (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/933\"\u003e#933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/9d3a43271e4cb3802a8fdf504656e126b99e0af8\"\u003e\u003ccode\u003e9d3a432\u003c/code\u003e\u003c/a\u003e Fix providers.Resource missing overloads for AbstractContextManager and Abstr...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.2...4.48.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flake8-pyproject` from 1.2.3 to 1.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/john-hen/Flake8-pyproject/releases\"\u003eflake8-pyproject's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixes typo in name of meta variable in \u003ccode\u003e--toml-config\u003c/code\u003e help message. (\u003ca href=\"https://redirect.github.com/john-hen/Flake8-pyproject/issues/21\"\u003e#21\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRegisters GitHub repo as trusted publisher for PyPI releases. (\u003ca href=\"https://redirect.github.com/john-hen/Flake8-pyproject/issues/38\"\u003e#38\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/3c516a9319beee324f9a200dfb4e08677de4a63f\"\u003e\u003ccode\u003e3c516a9\u003c/code\u003e\u003c/a\u003e Bumped version to 1.2.4.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/df70f19558f784eb0cb7988440735d56f53f3cae\"\u003e\u003ccode\u003edf70f19\u003c/code\u003e\u003c/a\u003e Added GitHub workflow for releases on PyPI.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/d46e99c695149cd860a918c354de0d1d89166b7e\"\u003e\u003ccode\u003ed46e99c\u003c/code\u003e\u003c/a\u003e Only run scheduled test weekly instead of nightly.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/da0b9ed7d586490aff8503e38f2d481c1706bdee\"\u003e\u003ccode\u003eda0b9ed\u003c/code\u003e\u003c/a\u003e Added link to GitHub releases as a project URL.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/8e4b87fbe7291687f41b11180c8b3ae486ac538e\"\u003e\u003ccode\u003e8e4b87f\u003c/code\u003e\u003c/a\u003e Cosmetic changes to code format of dev tools in \u003ccode\u003etools\u003c/code\u003e folder.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/4227bd4a987b66a9ab46f0b4e04b098e388598e7\"\u003e\u003ccode\u003e4227bd4\u003c/code\u003e\u003c/a\u003e Use longer names for dev tools in \u003ccode\u003etools\u003c/code\u003e folder.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/3866f48fbcd63231622f54e848268273605be1a8\"\u003e\u003ccode\u003e3866f48\u003c/code\u003e\u003c/a\u003e Mention early on that we need to be called in \u003ccode\u003epyproject.toml\u003c/code\u003e folder.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/40bf63915dabd85a53a7d06c24232a3b278c4b25\"\u003e\u003ccode\u003e40bf639\u003c/code\u003e\u003c/a\u003e Removed configuration and documentation of pre-commit hook.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/9df7abb5a4b1b25f032c7d3f06fd3f074424c471\"\u003e\u003ccode\u003e9df7abb\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/2c230622c7e81e3f2f6cd632272c92fd6bdda83b\"\u003e\u003ccode\u003e2c23062\u003c/code\u003e\u003c/a\u003e Fixed reporting of code coverage.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/john-hen/Flake8-pyproject/compare/1.2.3...1.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `freezegun` from 1.5.3 to 1.5.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/spulec/freezegun/blob/master/CHANGELOG\"\u003efreezegun's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.5.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow parametrized arguments called 'func' (Broken in 1.5.4)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Ability to yield fixtures (broken in 1.5.3)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/c9bf52c5aa12ea1b5b8647a136a92504ea071f2f\"\u003e\u003ccode\u003ec9bf52c\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/0f2bd7ed8b420da73372f4cbb0207b777caa66e9\"\u003e\u003ccode\u003e0f2bd7e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/582\"\u003e#582\u003c/a\u003e from spulec/fixture-called-func\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/a6080557cbcbe4891843934c1334430bb1c5ead7\"\u003e\u003ccode\u003ea608055\u003c/code\u003e\u003c/a\u003e Allow parametrized arguments with name 'func'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/2bb47113a5f9f290d26630c92732e58f49557179\"\u003e\u003ccode\u003e2bb4711\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/7599eeea16b8f206e881892dc104128a5b36de82\"\u003e\u003ccode\u003e7599eee\u003c/code\u003e\u003c/a\u003e Add 1.5.4 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/0d00e7ddd9ad33fc63fbed29af17853b18bc3c61\"\u003e\u003ccode\u003e0d00e7d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/579\"\u003e#579\u003c/a\u003e from zsh8/decorate_generator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/10c93f2d6c98f82e54470b05144cd0f17d3e1b46\"\u003e\u003ccode\u003e10c93f2\u003c/code\u003e\u003c/a\u003e fix: preserve functionality in pytest yield fixtures\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/spulec/freezegun/compare/1.5.3...1.5.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ipython` from 9.4.0 to 9.9.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/0c28fe5821b85b091bf5693ff5ba3eda7bcc49ec\"\u003e\u003ccode\u003e0c28fe5\u003c/code\u003e\u003c/a\u003e release 9.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/b33b1341ae21649744d45934b50697218af86e40\"\u003e\u003ccode\u003eb33b134\u003c/code\u003e\u003c/a\u003e whats new 9.9 (\u003ca href=\"https://redirect.github.com/ipython/ipython/issues/15113\"\u003e#15113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/3841c05af036bdbc31abbb9d012795c2a50bf71f\"\u003e\u003ccode\u003e3841c05\u003c/code\u003e\u003c/a\u003e whats new 99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/0423da85d0eecfb7dad4d3b0f714b4c2376cd439\"\u003e\u003ccode\u003e0423da8\u003c/code\u003e\u003c/a\u003e Stop assuming that memory addresses are signed (\u003ca href=\"https://redirect.github.com/ipython/ipython/issues/15111\"\u003e#15111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/4d0cb19f4724133b102eca3b72b353125efa66ba\"\u003e\u003ccode\u003e4d0cb19\u003c/code\u003e\u003c/a\u003e Stop assuming that memory addresses are signed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/4d71bcf89fe04107f6b1ecb0cf52c047c13c31c0\"\u003e\u003ccode\u003e4d71bcf\u003c/code\u003e\u003c/a\u003e Fix completions for methods starting with \u003ccode\u003e_\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/ipython/ipython/issues/15106\"\u003e#15106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/28d83b9ef7054d8603a7d2d0466cd656b2df0778\"\u003e\u003ccode\u003e28d83b9\u003c/code\u003e\u003c/a\u003e fix-test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/74bf6d080d6a6cb917c44c45e54aa6620bcb3718\"\u003e\u003ccode\u003e74bf6d0\u003c/code\u003e\u003c/a\u003e add-end-to-end-test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/e62c4ba60fb720fe46758dd5f60f179a7e3f55cb\"\u003e\u003ccode\u003ee62c4ba\u003c/code\u003e\u003c/a\u003e fix-completions-for-private-attr\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/11e1f400eecbfa12bbf55cdfff758a256d41d34e\"\u003e\u003ccode\u003e11e1f40\u003c/code\u003e\u003c/a\u003e Add prompt_toolkit's unix_word_rubout to assignable commands for shortcuts (#...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ipython/ipython/compare/9.4.0...9.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.2.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.3.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.3.0 - 2025-08-09\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.2.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyfakefs` from 5.10.2 to 6.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pyfakefs/releases\"\u003epyfakefs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epyfakefs release version 6.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eremoves some deprecated functionality\u003c/li\u003e\n\u003cli\u003eremoves support for Python \u0026lt; 3.10\u003c/li\u003e\n\u003cli\u003esee the \u003ca href=\"https://github.com/pytest-dev/pyfakefs/blob/version-6.0/CHANGES.md#version-600-2025-12-21\"\u003erelease notes\u003c/a\u003e for a list of changes\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pyfakefs/blob/main/CHANGES.md\"\u003epyfakefs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://pypi.python.org/pypi/pyfakefs/6.0.0\"\u003eVersion 6.0.0\u003c/a\u003e (2025-12-21)\u003c/h2\u003e\n\u003cp\u003eRemoves some deprecated functionality, removes support for Python \u0026lt; 3.10.\u003c/p\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremoved support for Python versions \u0026lt; 3.10; patch releases based on \u003ccode\u003epyfakefs\u003c/code\u003e 5.10\nsupporting older versions may be made on demand\u003c/li\u003e\n\u003cli\u003eremoved support for patching legacy modules \u003ccode\u003escandir\u003c/code\u003e and \u003ccode\u003epathlib2\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003echanged the default for \u003ccode\u003eFakeFilesystem.shuffle_listdir_results\u003c/code\u003e to \u003ccode\u003eTrue\u003c/code\u003e to reflect\nthe real filesystem behavior\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadded some support for Python 3.15a3\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efixes a problem with \u003ccode\u003ePath\u003c/code\u003e type hints using the pipe symbol in wrapped functions\ninside an \u003ccode\u003efs\u003c/code\u003e dependent fixture (see \u003ca href=\"https://redirect.github.com/pytest-dev/pyfakefs/issues/1242\"\u003e#1242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efixes problem with new \u003ccode\u003ecoverage\u003c/code\u003e in Python 3.14 using the fake filesystem\n(see \u003ca href=\"https://redirect.github.com/pytest-dev/pyfakefs/issues/1245\"\u003e#1245\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadded project information to documentation pages\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInfrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadded CI tests for Python 3.15\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pyfakefs/commit/fe83300fa947d680afe687386c5d25a4c15819c6\"\u003e\u003ccode\u003efe83300\u003c/code\u003e\u003c/a\u003e Release 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pyfakefs/commit/326eaa377a4acf75ef5e1092778faf905d9329ac\"\u003e\u003ccode\u003e326eaa3\u003c/code\u003e\u003c/a\u003e Pin myst-parser to latest version 4.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pyfakefs/commit/ff7d90820b863726816b229cbe9f9c190ef7298e\"\u003e\u003ccode\u003eff7d908\u003c/code\u003e\u003c/a\u003e Add project info to documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pyfakefs/commit/42ad731dc9665d735d864208c21d862ba691c6a0\"\u003e\u003ccode\u003e42ad731\u003c/code\u003e\u003c/a\u003e Adapt to changes in Python 3.15a3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pyfakefs/commit/7613b9fb0ebb3c3bd15dbc6c089385f8986ef6a0\"\u003e\u003ccode\u003e7613b9f\u003c/code\u003e\u003c/a\u003e Add CI tests for Python 3.15\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pyfakefs/commit/4a4dea86226e8653f3ade74b85f562b0a1b5cc53\"\u003e\u003ccode\u003e4a4dea8\u003c/code\u003e\u003c/a\u003e Make old, deprecated \u0026quot;import py\u0026quot; optional (\u003ca href=\"https://redirect.github.com/pytest-dev/pyfakefs/issues/1257\"\u003e#1257\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pyfakefs/commit/f0794eebd424523eb2bb5d4280106379efebb4c4\"\u003e\u003ccode\u003ef0794ee\u003c/code\u003e\u003c/a\u003e Update furo from 2025.7.19 to 2025.12.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pyfakefs/commit/09a128334f49182a70dc8e671f83678e2a7ae9aa\"\u003e\u003ccode\u003e09a1283\u003c/code\u003e\u003c/a\u003e Update pre-commit from 4.5.0 to 4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pyfakefs/commit/57e6dfeef6131665816121bf721135996b11aec5\"\u003e\u003ccode\u003e57e6dfe\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pyfakefs/commit/722ab00af67871af59bf28bb8c9c97931b75f016\"\u003e\u003ccode\u003e722ab00\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4 to 5\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pyfakefs/compare/v5.10.2...v6.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-asyncio` from 1.2.0 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/releases\"\u003epytest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epytest-asyncio 1.3.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.3.0\"\u003e1.3.0\u003c/a\u003e - 2025-11-10\u003c/h1\u003e\n\u003ch2\u003eRemoved\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.9 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1278\"\u003e#1278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for pytest 9 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1279\"\u003e#1279\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTested Python versions include free threaded Python 3.14t (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1274\"\u003e#1274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTests are run in the same pytest process, instead of spawning a subprocess with \u003ccode\u003epytest.Pytester.runpytest_subprocess\u003c/code\u003e. This prevents the test suite from accidentally using a system installation of pytest-asyncio, which could result in test errors. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1275\"\u003e#1275\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/2e9695fcf8c5c514f30f57b7d14ab83846357b96\"\u003e\u003ccode\u003e2e9695f\u003c/code\u003e\u003c/a\u003e docs: Compile changelog for v1.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/dd0e9ba3fa672fd6bf375004319742f8d3a50e12\"\u003e\u003ccode\u003edd0e9ba\u003c/code\u003e\u003c/a\u003e docs: Reference correct issue in news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4c31abe5bf46bca3c9bdc7b18405f3deba4145d0\"\u003e\u003ccode\u003e4c31abe\u003c/code\u003e\u003c/a\u003e Build(deps): Bump nh3 from 0.3.1 to 0.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/13e94770d7bb146c329ae0e02486c0a6b38f3772\"\u003e\u003ccode\u003e13e9477\u003c/code\u003e\u003c/a\u003e Link to migration guides from changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4d2cf3c36f47d7c4d563d401cdf229b35da34fbe\"\u003e\u003ccode\u003e4d2cf3c\u003c/code\u003e\u003c/a\u003e tests: handle Python 3.14 DefaultEventLoopPolicy deprecation warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/ee3549b6efb729b934e370e2be8040b25b034010\"\u003e\u003ccode\u003eee3549b\u003c/code\u003e\u003c/a\u003e test: Remove obsolete test for the event_loop fixture.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/7a67c82c5ae548f0968438e9dfa0f282d51c4597\"\u003e\u003ccode\u003e7a67c82\u003c/code\u003e\u003c/a\u003e tests: Fix failing test by preventing warning conversion to error.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/a17b689a750d05b6fc9369f5fb2b06baaba83536\"\u003e\u003ccode\u003ea17b689\u003c/code\u003e\u003c/a\u003e test: add pytest config to isolated test directories\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/18afc9df5a3153dc1fbdc4e11a56517ef95480df\"\u003e\u003ccode\u003e18afc9d\u003c/code\u003e\u003c/a\u003e fix(tests): replace runpytest_subprocess with runpytest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/cdc6bd1de75b4738289eafd546f5e27a0bfd3b41\"\u003e\u003ccode\u003ecdc6bd1\u003c/code\u003e\u003c/a\u003e Add support for pytest 9 and drop Python 3.9 support\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/compare/v1.2.0...v1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 6.1.1 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.0 (2025-09-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for subprocesses measurement.\u003c/p\u003e\n\u003cp\u003eIt was a feature added long time ago when coverage lacked a nice way to measure subprocesses created in tests.\nIt relied on a \u003ccode\u003e.pth\u003c/code\u003e file, there was no way to opt-out and it created bad interations\nwith \u003ccode\u003ecoverage's new patch system \u0026lt;https://coverage.readthedocs.io/en/latest/config.html#run-patch\u0026gt;\u003c/code\u003e_ added\nin \u003ccode\u003e7.10 \u0026lt;https://coverage.readthedocs.io/en/7.10.6/changes.html#version-7-10-0-2025-07-24\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eTo migrate to this release you might need to enable the suprocess patch, example for \u003ccode\u003e.coveragerc\u003c/code\u003e:\u003c/p\u003e\n\u003cp\u003e.. code-block:: ini\u003c/p\u003e\n\u003cp\u003e[run]\npatch = subprocess\u003c/p\u003e\n\u003cp\u003eThis release also requires at least coverage 7.10.6.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched packaging to have metadata completely in \u003ccode\u003epyproject.toml\u003c/code\u003e and use \u003ccode\u003ehatchling \u0026lt;https://pypi.org/project/hatchling/\u0026gt;\u003c/code\u003e_ for\nbuilding.\nContributed by Ofek Lev in \u003ccode\u003e[#551](https://github.com/pytest-dev/pytest-cov/issues/551) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/551\u0026gt;\u003c/code\u003e_\nwith some extras in \u003ccode\u003e[#716](https://github.com/pytest-dev/pytest-cov/issues/716) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/716\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved some not really necessary testing deps like \u003ccode\u003esix\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.3.0 (2025-09-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for markdown reports.\nContributed by Marcos Boger in \u003ccode\u003e[#712](https://github.com/pytest-dev/pytest-cov/issues/712) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/712\u0026gt;\u003c/code\u003e_\nand \u003ccode\u003e[#714](https://github.com/pytest-dev/pytest-cov/issues/714) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/714\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed some formatting issues in docs.\nAnonymous contribution in \u003ccode\u003e[#706](https://github.com/pytest-dev/pytest-cov/issues/706) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/706\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.2.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a version requirement for pytest's pluggy dependency (1.2.0, released 2023-06-21) that has the required new-style hookwrapper API.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved deprecated license classifier (packaging).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDisabled coverage warnings in two more situations where they have no value:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u0026quot;module-not-measured\u0026quot; in workers\u003c/li\u003e\n\u003cli\u003e\u0026quot;already-imported\u0026quot; in subprocesses\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.2.0 (2025-06-11)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe plugin now adds 3 rules in the filter warnings configuration to prevent common coverage warnings being raised as obscure errors::\u003c/p\u003e\n\u003cp\u003edefault:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\nonce::PytestCovWarning\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/224d8964caad90074a8cf6dc8720b8f70f31629b\"\u003e\u003ccode\u003e224d896\u003c/code\u003e\u003c/a\u003e Bump version: 6.3.0 → 7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/73424e3999f865eac72e27f09d5fe11b9703cfd6\"\u003e\u003ccode\u003e73424e3\u003c/code\u003e\u003c/a\u003e Cleanup the docs a bit.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/36f1cc2967831dbd4c8aa70086fc86dc495f8b9a\"\u003e\u003ccode\u003e36f1cc2\u003c/code\u003e\u003c/a\u003e Bump pins in template.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f299c590a63a48e51e3ae949993dc7bb1f1d480d\"\u003e\u003ccode\u003ef299c59\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/25f0b2e0cdbc345c0d3e49170f7a328c3e0d805f\"\u003e\u003ccode\u003e25f0b2e\u003c/code\u003e\u003c/a\u003e Update docs/config.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/bb23eacc5531fb8f499213d8420407e0d72f88e3\"\u003e\u003ccode\u003ebb23eac\u003c/code\u003e\u003c/a\u003e Improve configuration docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/a19531e91e1ab753ccf648a2d9bab08a6fddebb9\"\u003e\u003ccode\u003ea19531e\u003c/code\u003e\u003c/a\u003e Switch from build/pre-commit to uv/prek - this should make this faster.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/82f999391073f2fb8ae422af452602f310086a2a\"\u003e\u003ccode\u003e82f9993\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/211b5cd41c29916bc643b4a11b00578ba4fd6fe8\"\u003e\u003ccode\u003e211b5cd\u003c/code\u003e\u003c/a\u003e Fix links.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/97aadd74bcbc00a2078d240e8fe871dd62b83d80\"\u003e\u003ccode\u003e97aadd7\u003c/code\u003e\u003c/a\u003e Update some ci config, reformat and apply some lint fixes.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v6.1.1...v7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-deadfixtures` from 2.2.1 to 3.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jllorencetti/pytest-deadfixtures/releases\"\u003epytest-deadfixtures's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds more test cases by \u003ca href=\"https://github.com/burkestar\"\u003e\u003ccode\u003e@​burkestar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/31\"\u003ejllorencetti/pytest-deadfixtures#31\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emove ci from travis to gh-actions by \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/40\"\u003ejllorencetti/pytest-deadfixtures#40\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix flak8 pre-commit url by \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/41\"\u003ejllorencetti/pytest-deadfixtures#41\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for parametrize fixtures by \u003ca href=\"https://github.com/jonatrios\"\u003e\u003ccode\u003e@​jonatrios\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/38\"\u003ejllorencetti/pytest-deadfixtures#38\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 3 to 4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/42\"\u003ejllorencetti/pytest-deadfixtures#42\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump codecov/codecov-action from 3 to 4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/45\"\u003ejllorencetti/pytest-deadfixtures#45\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/44\"\u003ejllorencetti/pytest-deadfixtures#44\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump codecov/codecov-action from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/50\"\u003ejllorencetti/pytest-deadfixtures#50\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd support 3.12 and 3.13 python, min python set 3.8 by \u003ca href=\"https://github.com/even-even\"\u003e\u003ccode\u003e@​even-even\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/51\"\u003ejllorencetti/pytest-deadfixtures#51\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/53\"\u003ejllorencetti/pytest-deadfixtures#53\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/52\"\u003ejllorencetti/pytest-deadfixtures#52\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun tests on supported Python versions by \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/54\"\u003ejllorencetti/pytest-deadfixtures#54\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd unused fixtures count by \u003ca href=\"https://github.com/Ivan-Feofanov\"\u003e\u003ccode\u003e@​Ivan-Feofanov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/36\"\u003ejllorencetti/pytest-deadfixtures#36\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burkestar\"\u003e\u003ccode\u003e@​burkestar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/31\"\u003ejllorencetti/pytest-deadfixtures#31\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonatrios\"\u003e\u003ccode\u003e@​jonatrios\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/38\"\u003ejllorencetti/pytest-deadfixtures#38\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/42\"\u003ejllorencetti/pytest-deadfixtures#42\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/even-even\"\u003e\u003ccode\u003e@​even-even\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/51\"\u003ejllorencetti/pytest-deadfixtures#51\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Ivan-Feofanov\"\u003e\u003ccode\u003e@​Ivan-Feofanov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/36\"\u003ejllorencetti/pytest-deadfixtures#36\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jllorencetti/pytest-deadfixtures/compare/2.2.1...3.0.0\"\u003ehttps://github.com/jllorencetti/pytest-deadfixtures/compare/2.2.1...3.0.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jllorencetti/pytest-deadfixtures/blob/main/CHANGES.rst\"\u003epytest-deadfixtures's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.1.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Add `deadfixtures_ignore` decorator to ignore specific fixtures from being reported as unused\n\u003cp\u003e3.0.0\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.5\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.8 and 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jllorencetti/pytest-deadfixtures/commit/58fd8179d8cc86130e312888dba20bdb5d28f1e3\"\u003e\u003ccode\u003e58fd817\u003c/code\u003e\u003c/a\u003e Remove license classifier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jllorencetti/pytest-deadfixtures/commit/fef94a5c05632118dd64c3c8daa453bb93f624ae\"\u003e\u003ccode\u003efef94a5\u003c/code\u003e\u003c/a\u003e Add documentation for ignoring specific fixtures\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jllorencetti/pytest-deadfixtures/commit/33a4a02ba6589f9d6b9ee83e56da92d411c0ba48\"\u003e\u003ccode\u003e33a4a02\u003c/code\u003e\u003c/a\u003e Add support for ignoring specific fixtures\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jllorencetti/pytest-deadfixtures/commit/7eae1ae08955c521c8d54c69cb5b51dc633f5408\"\u003e\u003ccode\u003e7eae1ae\u003c/code\u003e\u003c/a\u003e Fixes code format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jllorencetti/pytest-deadfixtures/commit/e6dbe8e20b49ad07ef84dbf7b38a65627d562290\"\u003e\u003ccode\u003ee6dbe8e\u003c/code\u003e\u003c/a\u003e add unused fixtures count\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jllorencetti/pytest-deadfixtures/commit/28605dc26213f4cc557b60cba3c78dc8795bcc4d\"\u003e\u003ccode\u003e28605dc\u003c/code\u003e\u003c/a\u003e Run tests on supported Python versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jllorencetti/pytest-deadfixtures/commit/bdae857bc5e1fd3324037514ada0a953a1fb4c50\"\u003e\u003ccode\u003ebdae857\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jllorencetti/pytest-deadfixtures/commit/f5e6c4a16d93ef7e67721e28556584d2bd0ebc8f\"\u003e\u003ccode\u003ef5e6c4a\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jllorencetti/pytest-deadfixtures/commit/5abe1f11c199d369635c02a5574be1e7f67ab8f0\"\u003e\u003ccode\u003e5abe1f1\u003c/code\u003e\u003c/a\u003e add support 3.12 and 3.13 python, min python set 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jllorencetti/pytest-deadfixtures/commit/ff9bf35f14142396972aa00a221d3e6b2eab2ac6\"\u003e\u003ccode\u003eff9bf35\u003c/code\u003e\u003c/a\u003e add support 3.12 and 3.13 python, min python set 3.8\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jllorencetti/pytest-deadfixtures/compare/2.2.1...3.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-mock` from 3.14.1 to 3.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-mock/releases\"\u003epytest-mock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.15.1\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-16\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/529\"\u003e#529\u003c/a\u003e: Fixed \u003ccode\u003eitertools._tee object has no attribute error\u003c/code\u003e -- now \u003ccode\u003eduplicate_iterators=True\u003c/code\u003e must be passed to \u003ccode\u003emocker.spy\u003c/code\u003e to duplicate iterators.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.15.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-04\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 (EOL) is no longer supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/pull/524\"\u003e#524\u003c/a\u003e: Added \u003ccode\u003espy_return_iter\u003c/code\u003e to \u003ccode\u003emocker.spy\u003c/code\u003e, which contains a duplicate of the return value of the spied method if it is an \u003ccode\u003eIterator\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst\"\u003epytest-mock's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.15.1\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-16\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#529](https://github.com/pytest-dev/pytest-mock/issues/529) \u0026lt;https://github.com/pytest-dev/pytest-mock/issues/529\u0026gt;\u003c/code\u003e_: Fixed \u003ccode\u003eitertools._tee object has no attribute error\u003c/code\u003e -- now \u003ccode\u003eduplicate_iterators=True\u003c/code\u003e must be passed to \u003ccode\u003emocker.spy\u003c/code\u003e to duplicate iterators.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.15.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-04\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 (EOL) is no longer supported.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#524](https://github.com/pytest-dev/pytest-mock/issues/524) \u0026lt;https://github.com/pytest-dev/pytest-mock/pull/524\u0026gt;\u003c/code\u003e_: Added \u003ccode\u003espy_return_iter\u003c/code\u003e to \u003ccode\u003emocker.spy\u003c/code\u003e, which contains a duplicate of the return value of the spied method if it is an \u003ccode\u003eIterator\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/e1b5c62a38c5a05cae614aef3847f240ba50d269\"\u003e\u003ccode\u003ee1b5c62\u003c/code\u003e\u003c/a\u003e Release 3.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/184eb190d6be417f5f33727bcbc9704909479498\"\u003e\u003ccode\u003e184eb19\u003c/code\u003e\u003c/a\u003e Set \u003ccode\u003espy_return_iter\u003c/code\u003e only when explicitly requested (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/537\"\u003e#537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/4fa0088a0aa85eefb1313bd97adf43889bf1f647\"\u003e\u003ccode\u003e4fa0088\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/536\"\u003e#536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/f5aff33ce71ed4620acc43dc41cb3b198bcf4cb0\"\u003e\u003ccode\u003ef5aff33\u003c/code\u003e\u003c/a\u003e Fix test failure with pytest 8+ and verbose mode (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/535\"\u003e#535\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/adc41873c9d6aa69b87e3f108c93a29c847869aa\"\u003e\u003ccode\u003eadc4187\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/533\"\u003e#533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/95ad5700609aae73c6f767b8cc2ccfb2483e0f5c\"\u003e\u003ccode\u003e95ad570\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/532\"\u003e#532\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/e696bf02c199b1f7d0c48adb450f40e5a75b699a\"\u003e\u003ccode\u003ee696bf0\u003c/code\u003e\u003c/a\u003e Fix standalone mock support (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/5b29b03ce9581cfcd867dd6c04a970fb2c861291\"\u003e\u003ccode\u003e5b29b03\u003c/code\u003e\u003c/a\u003e Fix gen-release-notes script\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/7d22ef4e560351832e60687d8bd15ebe2785ff3b\"\u003e\u003ccode\u003e7d22ef4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/528\"\u003e#528\u003c/a\u003e from pytest-dev/release-3.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/90b29f89e2086c139a7b4fea89202faa192ee5a9\"\u003e\u003ccode\u003e90b29f8\u003c/code\u003e\u003c/a\u003e Update CHANGELOG for 3.15.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-mock/compare/v3.14.1...v3.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-randomly` from 3.16.0 to 4.0.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-randomly/blob/main/CHANGELOG.rst\"\u003epytest-randomly's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.0.1 (2025-09-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove the random state caching, which would grow without bound, leaking memory in long test runs.\nThe caching was added to slightly speed up re-using the same (final) seed, but since the final seed is now different for each test, it has no effect.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#690](https://github.com/pytest-dev/pytest-randomly/issues/690) \u0026lt;https://github.com/pytest-dev/pytest-randomly/issues/687\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eModify Numpy seed restriction, replacing hashing with a modulo operation.\nThe extra work to hash is unnecessary now that we generate a final seed per test with CRC32.\nThis change saves ~500ns per test when Numpy is installed.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#691](https://github.com/pytest-dev/pytest-randomly/issues/691) \u0026lt;https://github.com/pytest-dev/pytest-randomly/issues/691\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.0.0 (2025-09-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eSupport Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse a different random seed per test, based on the test ID.\u003c/p\u003e\n\u003cp\u003eThis change should mean that tests exercise more random data values in a given run, and that any randomly-generated identifiers have a lower chance of collision when stored in a shared resource like a database.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#687](https://github.com/pytest-dev/pytest-randomly/issues/687) \u0026lt;https://github.com/pytest-dev/pytest-randomly/issues/687\u0026gt;\u003c/code\u003e\u003cstrong\u003e.\nThanks to Bryce Drennan for the suggestion in \u003ccode\u003eIssue [#600](https://github.com/pytest-dev/pytest-randomly/issues/600) \u0026lt;https://github.com/pytest-dev/pytest-randomly/issues/600\u0026gt;\u003c/code\u003e\u003c/strong\u003e and initial implementation in \u003ccode\u003ePR [#617](https://github.com/pytest-dev/pytest-randomly/issues/617) \u0026lt;https://github.com/pytest-dev/pytest-randomly/pull/617\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMove from MD5 to CRC32 for hashing test IDs, as it’s 5x faster and we don’t need cryptographic security.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eIssue [#686](https://github.com/pytest-dev/pytest-randomly/issues/686) \u0026lt;https://github.com/pytest-dev/pytest-randomly/issues/686\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/50de0961ad3479901a153a4a89ff58ca7898b550\"\u003e\u003ccode\u003e50de096\u003c/code\u003e\u003c/a\u003e Version 4.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/f9406ec4452d05a865ee67b83fed58bc8f914bac\"\u003e\u003ccode\u003ef9406ec\u003c/code\u003e\u003c/a\u003e Modify Numpy seed restriction (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/22049aabcd1e19012c878dccd5fb1ad728221331\"\u003e\u003ccode\u003e22049aa\u003c/code\u003e\u003c/a\u003e Remove the random state caching (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/ded2e547566368d8751a13bf6b6e6ac8b509caa2\"\u003e\u003ccode\u003eded2e54\u003c/code\u003e\u003c/a\u003e Version 4.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/cb9b86128c9e79284f1bfad0dbd5d4c5427b5dfc\"\u003e\u003ccode\u003ecb9b861\u003c/code\u003e\u003c/a\u003e Move from MD5 to CRC32 for hashing test IDs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/bd697bd670943c54b8d21e713dea58ab92508d08\"\u003e\u003ccode\u003ebd697bd\u003c/code\u003e\u003c/a\u003e Use a different random seed per test (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/acadf4684fd12e5e9ca14243167f44b8d302f093\"\u003e\u003ccode\u003eacadf46\u003c/code\u003e\u003c/a\u003e Generate default seed on demand (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/685\"\u003e#685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/f818056fa7933f9f08ff6c5cda0d78ecee14d0af\"\u003e\u003ccode\u003ef818056\u003c/code\u003e\u003c/a\u003e Support Python 3.14 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/684\"\u003e#684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/456f7877992809b4e152bf3a356c0a4658275fb7\"\u003e\u003ccode\u003e456f787\u003c/code\u003e\u003c/a\u003e Drop unused import of xdist\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/e00b7822dff8061d26ff2b4bdf9dc1a3ea823092\"\u003e\u003ccode\u003ee00b782\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/682\"\u003e#682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-randomly/compare/3.16.0...4.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-reportportal` from 5.5.2 to 5.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/reportportal/agent-python-pytest/releases\"\u003epytest-reportportal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 5.6.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficial \u003ccode\u003ePython 3.14\u003c/code\u003e support, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue \u003ca href=\"https://redirect.github.com/reportportal/agent-python-pytest/issues/396\"\u003e#396\u003c/a\u003e parametrize marker IDs, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCustom log level handling with \u003ccode\u003erp_log_custom_levels\u003c/code\u003e configuration parameter, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClient version updated on \u003ca href=\"https://github.com/reportportal/client-Python/releases/tag/5.7.0\"\u003e5.7.0\u003c/a\u003e, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ePython 3.8\u003c/code\u003e support, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecated \u003ccode\u003eretries\u003c/code\u003e parameter, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 5.5.4\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReturn back deprecated \u003ccode\u003erp_log_batch_payload_size\u003c/code\u003e parameter for sake of backward compatibility, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eNOTE: This is the last agent version which supports Python 3.8\u003c/h1\u003e\n\u003ch2\u003eRelease 5.5.3\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOAuth 2.0 Password Grant authentication, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClient version updated to \u003ca href=\"https://github.com/reportportal/client-Python/releases/tag/5.6.7\"\u003e5.6.7\u003c/a\u003e, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSome configuration parameter names, which are different in the client, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003erp_uuid\u003c/code\u003e param support, as it was deprecated pretty while ago, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/reportportal/agent-python-pytest/blob/develop/CHANGELOG.md\"\u003epytest-reportportal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[5.6.0]\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficial \u003ccode\u003ePython 3.14\u003c/code\u003e support, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue \u003ca href=\"https://redirect.github.com/reportportal/agent-python-pytest/issues/396\"\u003e#396\u003c/a\u003e parametrize marker IDs, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCustom log level handling with \u003ccode\u003erp_log_custom_levels\u003c/code\u003e configuration parameter, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClient version updated on \u003ca href=\"https://github.com/reportportal/client-Python/releases/tag/5.7.0\"\u003e5.7.0\u003c/a\u003e, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ePython 3.8\u003c/code\u003e support, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecated \u003ccode\u003eretries\u003c/code\u003e parameter, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[5.5.4]\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReturn back deprecated \u003ccode\u003erp_log_batch_payload_size\u003c/code\u003e parameter for sake of backward compatibility, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[5.5.3]\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOAuth 2.0 Password Grant authentication, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClient version updated to \u003ca href=\"https://github.com/reportportal/client-Python/releases/tag/5.6.7\"\u003e5.6.7\u003c/a\u003e, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSome configuration parameter names, which are different in the client, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003erp_uuid\u003c/code\u003e param support, as it was deprecated pretty while ago, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/reportportal/agent-python-pytest/commit/5c94b4b8fcdc1dd6473fc6399fe81d74776885bd\"\u003e\u003ccode\u003e5c94b4b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/reportportal/agent-python-pytest/issues/406\"\u003e#406\u003c/a\u003e from reportportal/develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/reportportal/agent-python-pytest/commit/655740c6fc2709c2ccf2f23bd104ec3a3ee0b556\"\u003e\u003ccode\u003e655740c\u003c/code\u003e\u003c/a\u003e Fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/reportportal/agent-python-pytest/commit/a7ac7ce6e6fc61f764f297558a173f3a752d5d82\"\u003e\u003ccode\u003ea7ac7ce\u003c/code\u003e\u003c/a\u003e Fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/reportportal/agent-python-pytest/commit/10c3f461e2911444ad41625322ae11f955e96c22\"\u003e\u003ccode\u003e10c3f46\u003c/code\u003e\u003c/a\u003e CHANGELOG.md update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/reportportal/agent-python-pytest/commit/84dff8f1f4f4dc73a167ddb5a45b55cddbd064fa\"\u003e\u003ccode\u003e84dff8f\u003c/code\u003e\u003c/a\u003e Add custom log level handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/reportportal/agent-python-pytest/commit/f828c91050cfb4fb2bca6808885856c9b1f97a90\"\u003e\u003ccode\u003ef828c91\u003c/code\u003e\u003c/a\u003e Update types\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/reportportal/agent-python-pytest/commit/7c8496a1dae27c0554ea80fec5edcf0dfc435371\"\u003e\u003ccode\u003e7c8496a\u003c/code\u003e\u003c/a\u003e Implements issue \u003ca href=\"https://redirect.github.com/reportportal/agent-python-pytest/issues/396\"\u003e#396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/reportportal/agent-python-pytest/commit/0887b2c9ae2d0153d4fcb7a29c298bbe7f49ca56\"\u003e\u003ccode\u003e0887b2c\u003c/code\u003e\u003c/a\u003e .gitignore update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/reportportal/agent-python-pytest/commit/cb2ecf4f5df8b08584da1a14b86b3be8c78ff8a5\"\u003e\u003ccode\u003ecb2ecf4\u003c/code\u003e\u003c/a\u003e Fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/reportportal/agent-python-pytest/commit/c59a1aa49744d2fa768251cb36bf96659572be73\"\u003e\u003ccode\u003ec59a1aa\u003c/code\u003e\u003c/a\u003e Minor version bump, Python 3.8 support remove, deprecated code remove\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/reportportal/agent-python-pytest/compare/5.5.2...5.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-xdist` from 3.6.1 to 3.8.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-xdist/blob/master/CHANGELOG.rst\"\u003epytest-xdist's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003epytest-xdist 3.8.0 (2025-06-30)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e[#1083](https://github.com/pytest-dev/pytest-xdist/issues/1083) \u0026lt;https://github.com/pytest-dev/pytest-xdist/issues/1083\u0026gt;\u003c/code\u003e_: Add \u003ccode\u003e--no-loadscope-reorder\u003c/code\u003e and \u003ccode\u003e--loadscope-reorder\u003c/code\u003e option to control whether to automatically reorder tests in loadscope for tests where relative ordering matters. This only applies when using \u003ccode\u003eloadscope\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eFor example, [test_file_1, test_file_2, ..., test_file_n] are given as input test files, if \u003ccode\u003e--no-loadscope-reorder\u003c/code\u003e is used, for either worker, the \u003ccode\u003etest_file_a\u003c/code\u003e will be executed before \u003ccode\u003etest_file_b\u003c/code\u003e only if \u003ccode\u003ea \u0026lt; b\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThe default behavior is to reorder the tests to maximize the number of tests that can be executed in parallel.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003epytest-xdist 3.7.0 (2025-05-26)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e[#1142](https://github.com/pytest-dev/pytest-xdist/issues/1142) \u0026lt;https://github.com/pytest-dev/pytest-xdist/issues/1142\u0026gt;\u003c/code\u003e_: Added support for Python 3.13.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e[#1144](https://github.com/pytest-dev/pytest-xdist/issues/1144) \u0026lt;https://github.com/pytest-dev/pytest-xdist/issues/1144\u0026gt;\u003c/code\u003e_: The internal \u003ccode\u003esteal\u003c/code\u003e command is now atomic - it unschedules either all requested tests or none.\u003c/p\u003e\n\u003cp\u003eThis is a prerequisite for group/scope support in the \u003ccode\u003eworksteal\u003c/code\u003e scheduler, so test groups won't be broken up incorrectly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e[#1170](https://github.com/pytest-dev/pytest-xdist/issues/1170) \u0026lt;https://github.com/pytest-dev/pytest-xdist/issues/1170\u0026gt;\u003c/code\u003e_: Add the \u003ccode\u003e--px\u003c/code\u003e arg to create proxy gateways.\u003c/p\u003e\n\u003cp\u003eProxy gateways are passed to additional gateways using the \u003ccode\u003evia\u003c/code\u003e keyword.\nThey can serve as a way to run multiple workers on remote machines.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e[#1200](https://github.com/pytest-dev/pytest-xdist/issues/1200) \u0026lt;https://github.com/pytest-dev/pytest-xdist/issues/1200\u0026gt;\u003c/code\u003e_: Now multiple \u003ccode\u003exdist_group\u003c/code\u003e markers are considered when assigning tests to groups (order does not matter).\u003c/p\u003e\n\u003cp\u003ePreviously, only the last marker would assign a test to a group, but now if a test has multiple \u003ccode\u003exdist_group\u003c/code\u003e marks applied (for example via parametrization or via fixtures), they are merged to make a new group.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRemovals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#1162](https://github.com/pytest-dev/pytest-xdist/issues/1162) \u0026lt;https://github.com/pytest-dev/pytest-xdist/issues/1162\u0026gt;\u003c/code\u003e_: Dropped support for EOL Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTrivial Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e[#1092](https://github.com/pytest-dev/pytest-xdist/issues/1092) \u0026lt;https://github.com/pytest-dev/pytest-xdist/issues/1092\u0026gt;\u003c/code\u003e_: Update an error message to better indicate where users should go for more information.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e[#1190](https://github.com/pytest-dev/pytest-xdist/issues/1190) \u0026lt;https://github.com/pytest-dev/pytest-xdist/issues/1190\u0026gt;\u003c/code\u003e_: Switched to using a SPDX license identifier introduced in PEP 639.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/1e3e4dc16523c8a8f6c67d95a950166420718c99\"\u003e\u003ccode\u003e1e3e4dc\u003c/code\u003e\u003c/a\u003e Release 3.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/600aad575a4e4382855145b0c464d51b8f0b7242\"\u003e\u003ccode\u003e600aad5\u003c/code\u003e\u003c/a\u003e Ensure all xdist group names are strings (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-xdist/issues/1216\"\u003e#1216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/9d7ba5b5fbbbe26793fbfb7cb1903eb69425cf09\"\u003e\u003ccode\u003e9d7ba5b\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--no-loadscope-reorder\u003c/code\u003e and \u003ccode\u003e--loadscope-reorder\u003c/code\u003e options (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-xdist/issues/1217\"\u003e#1217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/532f07fb181bb1546eda79bbe6b46bdb56c699e1\"\u003e\u003ccode\u003e532f07f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-xdist/issues/1210\"\u003e#1210\u003c/a\u003e from pytest-dev/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/0883ad085e0cf039c8ae13eb2789c1076544d225\"\u003e\u003ccode\u003e0883ad0\u003c/code\u003e\u003c/a\u003e Fix Path usage in \u003ccode\u003etest_rsync_roots_no_roots\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/58a51bc14015d211761e44c2bdacab09c3893668\"\u003e\u003ccode\u003e58a51bc\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/59a2ad0150697b9ff837f3ae8dcf6e074d5a114b\"\u003e\u003ccode\u003e59a2ad0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-xdist/issues/1220\"\u003e#1220\u003c/a\u003e from pytest-dev/dependabot/github_actions/github-act...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/d42b9c72044855236c68286ca3bdb34486a05872\"\u003e\u003ccode\u003ed42b9c7\u003c/code\u003e\u003c/a\u003e build(deps): bump hynek/build-and-inspect-python-package\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/ebfcb99072aed3503fda5175245f28895a0204bb\"\u003e\u003ccode\u003eebfcb99\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-xdist/issues/1206\"\u003e#1206\u003c/a\u003e from pytest-dev/release-3.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/23b7fd6054298a530b02b33d07007b3082a36277\"\u003e\u003ccode\u003e23b7fd6\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-xdist/issues/1207\"\u003e#1207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-xdist/compare/v3.6.1...v3.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `responses` from 0.25.7 to 0.25.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/responses/releases\"\u003eresponses's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.25.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where the content type is always recorded as either text/plain or application/json. See \u003ca href=\"https://redirect.github.com/getsentry/responses/issues/770\"\u003e#770\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow asserts on add_callback() matches. See ...\n\n_Description has been truncated_","html_url":"https://github.com/softwareone-platform/mpt-api-python-client/pull/196","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/softwareone-platform%2Fmpt-api-python-client/issues/196","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/196/packages"},{"uuid":"3752284921","node_id":"PR_kwDOPl_8vc66EBlq","number":230,"state":"closed","title":"chore(deps): bump dependency-injector from 4.48.2 to 4.48.3","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-12-23T22:50:39.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-22T04:36:55.000Z","updated_at":"2025-12-23T22:51:05.000Z","time_to_close":152024,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"dependency-injector","old_version":"4.48.2","new_version":"4.48.3","repository_url":"https://github.com/ets-labs/python-dependency-injector"}],"path":null,"ecosystem":"pip"},"body":"Bumps [dependency-injector](https://github.com/ets-labs/python-dependency-injector) from 4.48.2 to 4.48.3.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.48.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix providers.Resource missing overloads for AbstractContextManager and AbstractAsyncContextManager by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/927\"\u003eets-labs/python-dependency-injector#927\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFast depends v3 compatibility fix by \u003ca href=\"https://github.com/AndrianEquestrian\"\u003e\u003ccode\u003e@​AndrianEquestrian\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/933\"\u003eets-labs/python-dependency-injector#933\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow explicit typing on selector using TypeVar with default Any by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/932\"\u003eets-labs/python-dependency-injector#932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert_type for Aggregate and Callable by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/935\"\u003eets-labs/python-dependency-injector#935\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eAnnotated\u003c/code\u003e marker to be anywhere in the annotation list. by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/939\"\u003eets-labs/python-dependency-injector#939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/927\"\u003eets-labs/python-dependency-injector#927\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/939\"\u003eets-labs/python-dependency-injector#939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.3\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1510a8479732229bd851f74b9cf28520f59760d7\"\u003e\u003ccode\u003e1510a84\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/51f818720211f7257d0372bda37372f067a3347d\"\u003e\u003ccode\u003e51f8187\u003c/code\u003e\u003c/a\u003e Allow annotated marker to be anywhere in the annotation list (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/244deee75ff87c43e92b81ccbe0a062ad8f44c3d\"\u003e\u003ccode\u003e244deee\u003c/code\u003e\u003c/a\u003e Retrofit assert_type for Aggregate and Callable (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/d72d07caf751669d6d40e7fc12a2aa97816e6069\"\u003e\u003ccode\u003ed72d07c\u003c/code\u003e\u003c/a\u003e Improve type annotations in providers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/009a86de2c4a44f747e4499b1ccdf475dd449ab9\"\u003e\u003ccode\u003e009a86d\u003c/code\u003e\u003c/a\u003e Imporve dict typings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/18e32521a00e54113fa442b2b0b506d5ca109609\"\u003e\u003ccode\u003e18e3252\u003c/code\u003e\u003c/a\u003e Allow explicit typing on Selector using TypeVar with default Any (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/932\"\u003e#932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/059f78b27ccecabc5f8cf68f181e3253002c8f34\"\u003e\u003ccode\u003e059f78b\u003c/code\u003e\u003c/a\u003e Fix FastDepends v3 compatibility (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/933\"\u003e#933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/9d3a43271e4cb3802a8fdf504656e126b99e0af8\"\u003e\u003ccode\u003e9d3a432\u003c/code\u003e\u003c/a\u003e Fix providers.Resource missing overloads for AbstractContextManager and Abstr...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.2...4.48.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=dependency-injector\u0026package-manager=pip\u0026previous-version=4.48.2\u0026new-version=4.48.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/OmniNode-ai/omnibase_core/pull/230","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/OmniNode-ai%2Fomnibase_core/issues/230","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/230/packages"},{"uuid":"3509032870","node_id":"PR_kwDON6HsE86taKq6","number":13,"state":"closed","title":"Bump the python-packages group with 2 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-15T08:16:10.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-13T08:39:58.000Z","updated_at":"2025-12-15T08:16:12.000Z","time_to_close":5441772,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-packages","update_count":2,"packages":[{"name":"dependency-injector","old_version":"4.48.1","new_version":"4.48.2","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"psycopg2","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-packages group with 2 updates: [dependency-injector](https://github.com/ets-labs/python-dependency-injector) and [psycopg2](https://github.com/psycopg/psycopg2).\n\nUpdates `dependency-injector` from 4.48.1 to 4.48.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.48.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix grammar in Declarative Container documentation by \u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd warnings for unresolved markers by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\"\u003ehttps://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild ABI3 wheels only for Python\u0026gt;=3.10 by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\"\u003ehttps://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.2\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5a1aef920372da6a95d14865caab10061aea7104\"\u003e\u003ccode\u003e5a1aef9\u003c/code\u003e\u003c/a\u003e Merge branch 'release/4.48.2'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5acddac9c15e87edff76846e8903a3c4552da22b\"\u003e\u003ccode\u003e5acddac\u003c/code\u003e\u003c/a\u003e Add changelog entry for v4.48.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/9f77976a294d7eeda6176610155f1fe0b91eea2d\"\u003e\u003ccode\u003e9f77976\u003c/code\u003e\u003c/a\u003e Fix typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\"\u003e\u003ccode\u003e891f8b4\u003c/code\u003e\u003c/a\u003e Build ABI3 wheels only for Python\u0026gt;=3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/8c2a32213a71c82334d009fbf3ee69dc85221b78\"\u003e\u003ccode\u003e8c2a322\u003c/code\u003e\u003c/a\u003e Add wheels Makefile target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/91a741a6332ba9e0130e3d80b4191b4010f9f726\"\u003e\u003ccode\u003e91a741a\u003c/code\u003e\u003c/a\u003e Bump Cython version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\"\u003e\u003ccode\u003e1222827\u003c/code\u003e\u003c/a\u003e Add warnings for unresolved markers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/759d89e9bdc35f0146361e5ff89fd36e99cc6184\"\u003e\u003ccode\u003e759d89e\u003c/code\u003e\u003c/a\u003e Add reprs to wiring markers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1500a1de364cd97ccebd812a28a9b6f4c344a0ef\"\u003e\u003ccode\u003e1500a1d\u003c/code\u003e\u003c/a\u003e docs(declarative.rst): fix grammar in Declarative Container documentation  (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/7df26d1ac76aabf52f74ce75e5f908ccf28b4898\"\u003e\u003ccode\u003e7df26d1\u003c/code\u003e\u003c/a\u003e docs(declarative.rst): fix grammar in Declarative Container documentation  (#...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e` 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)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/njohnson-oss/altspell/pull/13","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/njohnson-oss%2Faltspell/issues/13","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/13/packages"},{"uuid":"2888501676","node_id":"PR_kwDON6D7-86sKwms","number":96,"state":"open","title":"pip(deps): bump the all-dependencies group across 1 directory with 24 updates","user":"dependabot[bot]","labels":["dependencies","backend"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-06T00:21:39.000Z","updated_at":"2025-10-06T00:21:40.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"pip(deps): bump","group_name":"all-dependencies","update_count":24,"packages":[{"name":"fastapi","old_version":"0.115.12","new_version":"0.118.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.34.2","new_version":"0.37.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"python-dotenv","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"atlassian-python-api","old_version":"4.0.3","new_version":"4.0.7","repository_url":"https://github.com/atlassian-api/atlassian-python-api"},{"name":"pandas","old_version":"2.2.3","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"pyarrow","old_version":"19.0.1","new_version":"21.0.0","repository_url":"https://github.com/apache/arrow"},{"name":"pydantic","old_version":"2.11.3","new_version":"2.11.10","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.9.1","new_version":"2.11.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"sqlalchemy","old_version":"2.0.40","new_version":"2.0.43","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"alembic","old_version":"1.15.2","new_version":"1.16.5","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"psycopg","old_version":"3.2.6","new_version":"3.2.10","repository_url":"https://github.com/psycopg/psycopg"},{"name":"psycopg-c","old_version":"3.2.6","new_version":"3.2.10","repository_url":"https://github.com/psycopg/psycopg"},{"name":"greenlet","old_version":"3.2.0","new_version":"3.2.4","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"python-jose","old_version":"3.4.0","new_version":"3.5.0"},{"name":"dependency-injector","old_version":"4.46.0","new_version":"4.48.2","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"black","old_version":"25.1.0","new_version":"25.9.0","repository_url":"https://github.com/psf/black"},{"name":"flake8","old_version":"7.2.0","new_version":"7.3.0","repository_url":"https://github.com/pycqa/flake8"},{"name":"flake8-import-order","old_version":"0.18.2","new_version":"0.19.2","repository_url":"https://github.com/PyCQA/flake8-import-order"},{"name":"isort","old_version":"6.0.1","new_version":"6.1.0","repository_url":"https://github.com/PyCQA/isort"},{"name":"pytest","old_version":"8.3.5","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"0.26.0","new_version":"1.2.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pytest-cov","old_version":"6.1.1","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"yamllint","old_version":"1.37.0","new_version":"1.37.1","repository_url":"https://github.com/adrienverge/yamllint"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-dependencies group with 24 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.115.12` | `0.118.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.34.2` | `0.37.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.0` | `1.1.1` |\n| [atlassian-python-api](https://github.com/atlassian-api/atlassian-python-api) | `4.0.3` | `4.0.7` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.2.3` | `2.3.3` |\n| [pyarrow](https://github.com/apache/arrow) | `19.0.1` | `21.0.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.11.10` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.9.1` | `2.11.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.43` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.16.5` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.2.10` |\n| [psycopg-c](https://github.com/psycopg/psycopg) | `3.2.6` | `3.2.10` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.0` | `3.2.4` |\n| [python-jose[cryptography]](https://github.com/mpdavis/python-jose) | `3.4.0` | `3.5.0` |\n| [dependency-injector](https://github.com/ets-labs/python-dependency-injector) | `4.46.0` | `4.48.2` |\n| [black](https://github.com/psf/black) | `25.1.0` | `25.9.0` |\n| [flake8](https://github.com/pycqa/flake8) | `7.2.0` | `7.3.0` |\n| [flake8-import-order](https://github.com/PyCQA/flake8-import-order) | `0.18.2` | `0.19.2` |\n| [isort](https://github.com/PyCQA/isort) | `6.0.1` | `6.1.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `8.4.2` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.26.0` | `1.2.0` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.1.1` | `7.0.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.3.0` |\n| [yamllint](https://github.com/adrienverge/yamllint) | `1.37.0` | `1.37.1` |\n\n\nUpdates `fastapi` from 0.115.12 to 0.118.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.118.0\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix support for \u003ccode\u003eStreamingResponse\u003c/code\u003es with dependencies with \u003ccode\u003eyield\u003c/code\u003e or \u003ccode\u003eUploadFile\u003c/code\u003es, close after the response is done. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14099\"\u003e#14099\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBefore FastAPI 0.118.0, if you used a dependency with \u003ccode\u003eyield\u003c/code\u003e, it would run the exit code after the \u003cem\u003epath operation function\u003c/em\u003e returned but right before sending the response.\u003c/p\u003e\n\u003cp\u003eThis change also meant that if you returned a \u003ccode\u003eStreamingResponse\u003c/code\u003e, the exit code of the dependency with \u003ccode\u003eyield\u003c/code\u003e would have been already run.\u003c/p\u003e\n\u003cp\u003eFor example, if you had a database session in a dependency with \u003ccode\u003eyield\u003c/code\u003e, the \u003ccode\u003eStreamingResponse\u003c/code\u003e would not be able to use that session while streaming data because the session would have already been closed in the exit code after \u003ccode\u003eyield\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis behavior was reverted in 0.118.0, to make the exit code after \u003ccode\u003eyield\u003c/code\u003e be executed after the response is sent.\u003c/p\u003e\n\u003cp\u003eYou can read more about it in the docs for \u003ca href=\"https://fastapi.tiangolo.com/advanced/advanced-dependencies#dependencies-with-yield-httpexception-except-and-background-tasks\"\u003eAdvanced Dependencies - Dependencies with \u003ccode\u003eyield\u003c/code\u003e, \u003ccode\u003eHTTPException\u003c/code\u003e, \u003ccode\u003eexcept\u003c/code\u003e and Background Tasks\u003c/a\u003e. Including what you could do if you wanted to close a database session earlier, before returning the response to the client.\u003c/p\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update \u003ccode\u003etutorial/security/oauth2-jwt/\u003c/code\u003e to use \u003ccode\u003epwdlib\u003c/code\u003e with Argon2 instead of \u003ccode\u003epasslib\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13917\"\u003e#13917\u003c/a\u003e by \u003ca href=\"https://github.com/Neizvestnyj\"\u003e\u003ccode\u003e@​Neizvestnyj\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✏️ Fix typos in OAuth2 password request forms. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14112\"\u003e#14112\u003c/a\u003e by \u003ca href=\"https://github.com/alv2017\"\u003e\u003ccode\u003e@​alv2017\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update contributing guidelines for installing requirements. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14095\"\u003e#14095\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Sync German docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14098\"\u003e#14098\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ [pre-commit.ci] pre-commit autoupdate. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14103\"\u003e#14103\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e♻️ Refactor sponsor image handling. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14102\"\u003e#14102\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix sponsor display issue by hiding element on image error. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14097\"\u003e#14097\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Hide sponsor badge when sponsor image is not displayed. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14096\"\u003e#14096\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.117.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix validation error when \u003ccode\u003eFile\u003c/code\u003e is declared after \u003ccode\u003eForm\u003c/code\u003e parameter. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/11194\"\u003e#11194\u003c/a\u003e by \u003ca href=\"https://github.com/thomasleveil\"\u003e\u003ccode\u003e@​thomasleveil\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.117.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨  Allow \u003ccode\u003eNone\u003c/code\u003e as return type for bodiless responses. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/9425\"\u003e#9425\u003c/a\u003e by \u003ca href=\"https://github.com/hofrob\"\u003e\u003ccode\u003e@​hofrob\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Allow array values for OpenAPI schema \u003ccode\u003etype\u003c/code\u003e field. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13639\"\u003e#13639\u003c/a\u003e by \u003ca href=\"https://github.com/sammasak\"\u003e\u003ccode\u003e@​sammasak\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add OpenAPI \u003ccode\u003eexternal_docs\u003c/code\u003e parameter to \u003ccode\u003eFastAPI\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13713\"\u003e#13713\u003c/a\u003e by \u003ca href=\"https://github.com/cmtoro\"\u003e\u003ccode\u003e@​cmtoro\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⚡️ Fix \u003ccode\u003edefault_factory\u003c/code\u003e for response model field with Pydantic V1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/9704\"\u003e#9704\u003c/a\u003e by \u003ca href=\"https://github.com/vvanglro\"\u003e\u003ccode\u003e@​vvanglro\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix inconsistent processing of model docstring formfeed char with Pydantic V1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/6039\"\u003e#6039\u003c/a\u003e by \u003ca href=\"https://github.com/MaxwellPayne\"\u003e\u003ccode\u003e@​MaxwellPayne\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003ejsonable_encoder\u003c/code\u003e alters \u003ccode\u003ejson_encoders\u003c/code\u003e of Pydantic v1 objects. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/4972\"\u003e#4972\u003c/a\u003e by \u003ca href=\"https://github.com/aboubacs\"\u003e\u003ccode\u003e@​aboubacs\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/333f1ba737be6507fc707278f6b69cf1f81efdc1\"\u003e\u003ccode\u003e333f1ba\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.118.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1d5168a4a1293fbc44799fbab615a120c6fdb85e\"\u003e\u003ccode\u003e1d5168a\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/bfa54b406d298155edbdfe8fdd173479857d5ad6\"\u003e\u003ccode\u003ebfa54b4\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e329d78f866a12893699f786f1209a666e1688e3\"\u003e\u003ccode\u003ee329d78\u003c/code\u003e\u003c/a\u003e 🐛 Fix support for \u003ccode\u003eStreamingResponse\u003c/code\u003es with dependencies with \u003ccode\u003eyield\u003c/code\u003e or `Upl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/861b22c40897a03d2d7e5926923d962121ed5e2e\"\u003e\u003ccode\u003e861b22c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/efdafa43613f084d198e51f6858e8610beddb5ed\"\u003e\u003ccode\u003eefdafa4\u003c/code\u003e\u003c/a\u003e 📝 Update \u003ccode\u003etutorial/security/oauth2-jwt/\u003c/code\u003e to use \u003ccode\u003epwdlib\u003c/code\u003e with Argon2 instead ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/450a334253b1426aab08b4dea17b16ba8b4c098c\"\u003e\u003ccode\u003e450a334\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3eb2ee7510905447a36abe628708f102e09cfa59\"\u003e\u003ccode\u003e3eb2ee7\u003c/code\u003e\u003c/a\u003e ✏️ Fix typos in OAuth2 password request forms (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14112\"\u003e#14112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/287eb316df5b7c35dd1e5da27ca2a8d345bee8d1\"\u003e\u003ccode\u003e287eb31\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cca3341cb93cb4d0267dd8e862db9235aeaac11c\"\u003e\u003ccode\u003ecca3341\u003c/code\u003e\u003c/a\u003e 🌐 Sync German docs (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14098\"\u003e#14098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.115.12...0.118.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.34.2 to 0.37.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.37.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e setting by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2711\"\u003eKludex/uvicorn#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e by \u003ca href=\"https://github.com/rnv812\"\u003e\u003ccode\u003e@​rnv812\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2676\"\u003eKludex/uvicorn#2676\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LincolnPuzey\"\u003e\u003ccode\u003e@​LincolnPuzey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2669\"\u003eKludex/uvicorn#2669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rnv812\"\u003e\u003ccode\u003e@​rnv812\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2676\"\u003eKludex/uvicorn#2676\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.36.1...0.37.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.36.1...0.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.36.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2709\"\u003eKludex/uvicorn#2709\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.36.0...0.36.1\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.36.0...0.36.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.36.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport custom IOLOOPs by \u003ca href=\"https://github.com/gnir-work\"\u003e\u003ccode\u003e@​gnir-work\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2435\"\u003eKludex/uvicorn#2435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow to provide importable string in \u003ccode\u003e--http\u003c/code\u003e, \u003ccode\u003e--ws\u003c/code\u003e and \u003ccode\u003e--loop\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2658\"\u003eKludex/uvicorn#2658\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eNew Contributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gnir-work\"\u003e\u003ccode\u003e@​gnir-work\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2435\"\u003eKludex/uvicorn#2435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/musicinmybrain\"\u003e\u003ccode\u003e@​musicinmybrain\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2659\"\u003eKludex/uvicorn#2659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/secrett2633\"\u003e\u003ccode\u003e@​secrett2633\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2684\"\u003eKludex/uvicorn#2684\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.35.0...0.36.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.35.0...0.36.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.35.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eWebSocketsSansIOProtocol\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2540\"\u003eencode/uvicorn#2540\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefine help message for option \u003ccode\u003e--proxy-headers\u003c/code\u003e by \u003ca href=\"https://github.com/zhangyoufu\"\u003e\u003ccode\u003e@​zhangyoufu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2653\"\u003eencode/uvicorn#2653\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zhangyoufu\"\u003e\u003ccode\u003e@​zhangyoufu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2653\"\u003eencode/uvicorn#2653\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/uvicorn/compare/0.34.3...0.35.0\"\u003ehttps://github.com/encode/uvicorn/compare/0.34.3...0.35.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.34.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDon't include \u003ccode\u003ecwd()\u003c/code\u003e when non-empty \u003ccode\u003e--reload-dirs\u003c/code\u003e is passed by \u003ca href=\"https://github.com/stinovlas\"\u003e\u003ccode\u003e@​stinovlas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2598\"\u003eencode/uvicorn#2598\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.37.0 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2711\"\u003e#2711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2676\"\u003e#2676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.1 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.0 (September 20, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport custom IOLOOPs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2435\"\u003e#2435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow to provide importable string in \u003ccode\u003e--http\u003c/code\u003e, \u003ccode\u003e--ws\u003c/code\u003e and \u003ccode\u003e--loop\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2658\"\u003e#2658\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.35.0 (June 28, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eWebSocketsSansIOProtocol\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2540\"\u003e#2540\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefine help message for option \u003ccode\u003e--proxy-headers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2653\"\u003e#2653\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.34.3 (June 1, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't include \u003ccode\u003ecwd()\u003c/code\u003e when non-empty \u003ccode\u003e--reload-dirs\u003c/code\u003e is passed (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2598\"\u003e#2598\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eApply \u003ccode\u003eget_client_addr\u003c/code\u003e formatting to WebSocket logging (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2636\"\u003e#2636\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4098bcac97aa0fbda2f4e73278fbbe3b128be940\"\u003e\u003ccode\u003e4098bca\u003c/code\u003e\u003c/a\u003e Version 0.37.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/8c057fa3fc407f1e5e58e6bf0b46494732ebfd1f\"\u003e\u003ccode\u003e8c057fa\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2676\"\u003e#2676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/bbe119e4e83517a230487658f864d3ad67131772\"\u003e\u003ccode\u003ebbe119e\u003c/code\u003e\u003c/a\u003e Add note about \u003ccode\u003e--timeout-keep-alive\u003c/code\u003e being measured in seconds (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2669\"\u003e#2669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/2744f14c9906d90d235f9fcd5289da0c47e4abe4\"\u003e\u003ccode\u003e2744f14\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e setting (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2711\"\u003e#2711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/1dfb0bd885bbb0c466c19eee8bb2001bed59ca8c\"\u003e\u003ccode\u003e1dfb0bd\u003c/code\u003e\u003c/a\u003e Version 0.36.1 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2710\"\u003e#2710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3d0d46a704b772ec68596d8e1c9d9264b1499f34\"\u003e\u003ccode\u003e3d0d46a\u003c/code\u003e\u003c/a\u003e Raise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/ad9e5b90dda248b08afdffd18a02b73a5b9d405c\"\u003e\u003ccode\u003ead9e5b9\u003c/code\u003e\u003c/a\u003e docs: redirect uvicorn.org to uvicorn.dev (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2705\"\u003e#2705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0e3b18c39959ad4ec8bfe6cb7e11c82664aaa702\"\u003e\u003ccode\u003e0e3b18c\u003c/code\u003e\u003c/a\u003e Version 0.36.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2704\"\u003e#2704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/f84661d56eb14bbd29b995af8774c73856e3ce04\"\u003e\u003ccode\u003ef84661d\u003c/code\u003e\u003c/a\u003e chore: drop mention to scripts/publish (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2696\"\u003e#2696\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/dcd7e6c94e87b6ffbce378e4ada3d67654af975d\"\u003e\u003ccode\u003edcd7e6c\u003c/code\u003e\u003c/a\u003e docs: replace uvicorn.org by uvicorn.dev (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2703\"\u003e#2703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.34.2...0.37.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.1.0 to 1.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure find_dotenv work reliably on python 3.13 by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003etheskumar/python-dotenv#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(cli): issue with execvpe on Windows by \u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.1.1] - 2025-06-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCLI: Ensure \u003ccode\u003efind_dotenv\u003c/code\u003e work reliably on python 3.13 by [\u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003e#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI: revert the use of execvpe on Windows by [\u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003e#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/16e660d384b942b11879b44500afbbe021650448\"\u003e\u003ccode\u003e16e660d\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.0 → 1.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/667e82f18d6e5306894c8746c46b1da2d031bd23\"\u003e\u003ccode\u003e667e82f\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/9d85edb3b8652de4601f9ad8a7a49ad9909f898a\"\u003e\u003ccode\u003e9d85edb\u003c/code\u003e\u003c/a\u003e fix(cli): issue with execvpe on Windows (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/566\"\u003e#566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8411987b9301f716245074872afa30646e9b9eb7\"\u003e\u003ccode\u003e8411987\u003c/code\u003e\u003c/a\u003e fix: ensure find_dotenv work reliably on python 3.13 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/563\"\u003e#563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/01f899733de664cda0550207067eb36a1795062f\"\u003e\u003ccode\u003e01f8997\u003c/code\u003e\u003c/a\u003e docs update\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `atlassian-python-api` from 4.0.3 to 4.0.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/releases\"\u003eatlassian-python-api's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.0.7: Bugfix release notes\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSearch endpoint for Jira DC isn't working with /search/jql by \u003ca href=\"https://github.com/FallenAtticus\"\u003e\u003ccode\u003e@​FallenAtticus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1571\"\u003eatlassian-api/atlassian-python-api#1571\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FallenAtticus\"\u003e\u003ccode\u003e@​FallenAtticus\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1571\"\u003eatlassian-api/atlassian-python-api#1571\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/compare/4.0.6...4.0.7\"\u003ehttps://github.com/atlassian-api/atlassian-python-api/compare/4.0.6...4.0.7\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.6: Confluence, Jira Cloud and BB\u003c/h2\u003e\n\u003cp\u003eHi!\nin that path release, adjustments for Confluence, Jira Cloud and Bitbucket\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/a32f6d1f23e3ed9635660554d783e6a2fab72b7d\"\u003eConfluence: get_all_pages_from_space add workaround\u003c/a\u003e \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1547\"\u003eatlassian-api/atlassian-python-api#1547\u003c/a\u003e\n\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/eebf86ec8cc26dfb9299dc70e33d6b4a60e78eda\"\u003eBitbucket: Add AppUser enrollments for User class appears\u003c/a\u003e \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1570\"\u003eatlassian-api/atlassian-python-api#1570\u003c/a\u003e\n[Jira Cloud]: adjustment of jql search](\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/b090c2e9da7de45ab3607a83d4d112e33307fdd2\"\u003ehttps://github.com/atlassian-api/atlassian-python-api/commit/b090c2e9da7de45ab3607a83d4d112e33307fdd2\u003c/a\u003e)\n\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/compare/4.0.5...4.0.6\"\u003ehttps://github.com/atlassian-api/atlassian-python-api/compare/4.0.5...4.0.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.5 Confluence next step for cloud, BB and Jira bugfixes\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Confluence]: Prepare dedicated module by \u003ca href=\"https://github.com/gonchik\"\u003e\u003ccode\u003e@​gonchik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1537\"\u003eatlassian-api/atlassian-python-api#1537\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: add an example to jira_add_comment.py by \u003ca href=\"https://github.com/dunterov\"\u003e\u003ccode\u003e@​dunterov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1540\"\u003eatlassian-api/atlassian-python-api#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Bitbucket] Adding filterText REST parameter for Get pull requests for by \u003ca href=\"https://github.com/thopx14\"\u003e\u003ccode\u003e@​thopx14\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1542\"\u003eatlassian-api/atlassian-python-api#1542\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVisualization for the atlassian-python-api codebase by \u003ca href=\"https://github.com/ivanmilevtues\"\u003e\u003ccode\u003e@​ivanmilevtues\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1543\"\u003eatlassian-api/atlassian-python-api#1543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Confluence] Sanitize attachment filenames to prevent download failures by \u003ca href=\"https://github.com/AntonioContrerasO\"\u003e\u003ccode\u003e@​AntonioContrerasO\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1549\"\u003eatlassian-api/atlassian-python-api#1549\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Doc] [Jira] Update info about jira.get_issue_tree_recursive method by \u003ca href=\"https://github.com/bore-alex\"\u003e\u003ccode\u003e@​bore-alex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1544\"\u003eatlassian-api/atlassian-python-api#1544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Confluence] Update confluence/\u003cstrong\u003einit\u003c/strong\u003e.py with add space permissions by \u003ca href=\"https://github.com/neyrat-salvator\"\u003e\u003ccode\u003e@​neyrat-salvator\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1557\"\u003eatlassian-api/atlassian-python-api#1557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Wrapper ]Update errors.py for JSON-RPC Errors by \u003ca href=\"https://github.com/neyrat-salvator\"\u003e\u003ccode\u003e@​neyrat-salvator\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1564\"\u003eatlassian-api/atlassian-python-api#1564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate license identifier by \u003ca href=\"https://github.com/leifdreizler\"\u003e\u003ccode\u003e@​leifdreizler\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1563\"\u003eatlassian-api/atlassian-python-api#1563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake using session the default by \u003ca href=\"https://github.com/Matthew-Jenkins\"\u003e\u003ccode\u003e@​Matthew-Jenkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1566\"\u003eatlassian-api/atlassian-python-api#1566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Jira] Update jira.py by adding set_issue_status_by_transition_name by \u003ca href=\"https://github.com/neyrat-salvator\"\u003e\u003ccode\u003e@​neyrat-salvator\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1567\"\u003eatlassian-api/atlassian-python-api#1567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Bitbucket] Added Download class to retrieve pipeline-generated artifacts by \u003ca href=\"https://github.com/denisab85\"\u003e\u003ccode\u003e@​denisab85\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1551\"\u003eatlassian-api/atlassian-python-api#1551\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thopx14\"\u003e\u003ccode\u003e@​thopx14\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1542\"\u003eatlassian-api/atlassian-python-api#1542\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ivanmilevtues\"\u003e\u003ccode\u003e@​ivanmilevtues\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1543\"\u003eatlassian-api/atlassian-python-api#1543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AntonioContrerasO\"\u003e\u003ccode\u003e@​AntonioContrerasO\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1549\"\u003eatlassian-api/atlassian-python-api#1549\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bore-alex\"\u003e\u003ccode\u003e@​bore-alex\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1544\"\u003eatlassian-api/atlassian-python-api#1544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/neyrat-salvator\"\u003e\u003ccode\u003e@​neyrat-salvator\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1557\"\u003eatlassian-api/atlassian-python-api#1557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/leifdreizler\"\u003e\u003ccode\u003e@​leifdreizler\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1563\"\u003eatlassian-api/atlassian-python-api#1563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Matthew-Jenkins\"\u003e\u003ccode\u003e@​Matthew-Jenkins\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1566\"\u003eatlassian-api/atlassian-python-api#1566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denisab85\"\u003e\u003ccode\u003e@​denisab85\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1551\"\u003eatlassian-api/atlassian-python-api#1551\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/compare/4.0.4...4.0.5\"\u003ehttps://github.com/atlassian-api/atlassian-python-api/compare/4.0.4...4.0.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.4 : BB, Confluence, Jira\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/412f6b37bced32b184c2166cba0b8d306bac63bb\"\u003e\u003ccode\u003e412f6b3\u003c/code\u003e\u003c/a\u003e Jira: Clarification for cloud create searcher field \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1552\"\u003e#1552\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/d16700a1831a6f1d61a9347cdf38e3ec1d7108bd\"\u003e\u003ccode\u003ed16700a\u003c/code\u003e\u003c/a\u003e rollback changes with session and fix typo in condition\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/d224880e3e6ce42d2107f7c4e1334463027a5e6d\"\u003e\u003ccode\u003ed224880\u003c/code\u003e\u003c/a\u003e Update jira.py (\u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1571\"\u003e#1571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/a32f6d1f23e3ed9635660554d783e6a2fab72b7d\"\u003e\u003ccode\u003ea32f6d1\u003c/code\u003e\u003c/a\u003e Confluence: get_all_pages_from_space add workaround \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1547\"\u003e#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/eebf86ec8cc26dfb9299dc70e33d6b4a60e78eda\"\u003e\u003ccode\u003eeebf86e\u003c/code\u003e\u003c/a\u003e Bitbucket: Add AppUser enrollments for User class appears \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1570\"\u003e#1570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/b090c2e9da7de45ab3607a83d4d112e33307fdd2\"\u003e\u003ccode\u003eb090c2e\u003c/code\u003e\u003c/a\u003e Jira Cloud: adjustment of jql search\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/46239bd80e8c6ad3eb9f7637543291ba997a4c7c\"\u003e\u003ccode\u003e46239bd\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1570\"\u003e#1570\u003c/a\u003e Workaround of traceback\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/a1b2f5c26ef3b4cc1d9b3ebe0e6ff29e1af9c111\"\u003e\u003ccode\u003ea1b2f5c\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1568\"\u003e#1568\u003c/a\u003e Add doc of create_issue method\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/c98bb64cf717f77e7be012d089804c11d3c779ef\"\u003e\u003ccode\u003ec98bb64\u003c/code\u003e\u003c/a\u003e Fix build and adjust imports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/5c5ff35706c4f7291b149020072409168e47cc0c\"\u003e\u003ccode\u003e5c5ff35\u003c/code\u003e\u003c/a\u003e [Bitbucket] Added Download class to retrieve pipeline-generated artifacts (Cl...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/compare/4.0.3...4.0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 2.2.3 to 2.3.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePandas 2.3.3\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.3.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3/whatsnew/v2.3.3.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.3 supports Python 3.9 and higher, and is the first release to support Python 3.14.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install --upgrade pandas\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003ePandas 2.3.2\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.2.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3/whatsnew/v2.3.2.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.2 supports Python 3.9 and higher.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install --upgrade pandas\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003ePandas 2.3.1\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.1.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3.1/whatsnew/v2.3.1.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.1 supports Python 3.9 and higher.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9c8bc3e55188c8aff37207a74f1dd144980b8874\"\u003e\u003ccode\u003e9c8bc3e\u003c/code\u003e\u003c/a\u003e RLS: 2.3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/6aa788a00bda9b0f004302076dad94df3edeafc7\"\u003e\u003ccode\u003e6aa788a\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] DOC: prepare 2.3.3 whatsnew notes for release (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62499\"\u003e#62499\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62508\"\u003e#62508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b64f0df403d11ac733d9f460f89a5e99c8044ed0\"\u003e\u003ccode\u003eb64f0df\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG: avoid validation error for ufunc with string[python] ar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/058eb2b0edfc408dae9966ef1f03372f2a3ff04c\"\u003e\u003ccode\u003e058eb2b\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG: String[pyarrow] comparison with mixed object (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62424\"\u003e#62424\u003c/a\u003e) (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2ca088daef6a9d9333fea8aedffc7e50d28dfdee\"\u003e\u003ccode\u003e2ca088d\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] DEPR: remove the Period resampling deprecation (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62480\"\u003e#62480\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62\"\u003e#62\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/92bf98f623572ed053d48be5818c8503f1b61888\"\u003e\u003ccode\u003e92bf98f\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG: fix .str.isdigit to honor unicode superscript for older...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e57c7d6a2247316188fba0ba2a0db3c11028d75c\"\u003e\u003ccode\u003ee57c7d6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62452\"\u003e#62452\u003c/a\u003e on branch 2.3.x (TST: Adjust tests for numexpr 2.13) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62454\"\u003e#62454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e0fe9a03c90e560c34a3bbbdd1735a8b64f7b281\"\u003e\u003ccode\u003ee0fe9a0\u003c/code\u003e\u003c/a\u003e Backport to 2.3.x: REGR: from_records not initializing subclasses properly (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/23a1085e641c8e3a5b500e319c5973e4160b9236\"\u003e\u003ccode\u003e23a1085\u003c/code\u003e\u003c/a\u003e BUG: improve future warning for boolean operations with missaligned indexes (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/61136969fb18b438b6660bd5d485d0236dbf4a71\"\u003e\u003ccode\u003e6113696\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62396\"\u003e#62396\u003c/a\u003e on branch 2.3.x (PKG/DOC: indicate Python 3.14 support in ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v2.2.3...v2.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyarrow` from 19.0.1 to 21.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/arrow/releases\"\u003epyarrow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Arrow 21.0.0\u003c/h2\u003e\n\u003cp\u003eRelease Notes URL: \u003ca href=\"https://arrow.apache.org/release/21.0.0.html\"\u003ehttps://arrow.apache.org/release/21.0.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eApache Arrow 21.0.0 RC6\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 21.0.0 RC6\u003c/p\u003e\n\u003ch2\u003eApache Arrow 21.0.0 RC5\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 21.0.0 RC5\u003c/p\u003e\n\u003ch2\u003eApache Arrow 21.0.0 RC4\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 21.0.0 RC4\u003c/p\u003e\n\u003ch2\u003eApache Arrow 21.0.0 RC3\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 21.0.0 RC3\u003c/p\u003e\n\u003ch2\u003eApache Arrow 21.0.0 RC2\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 21.0.0 RC2\u003c/p\u003e\n\u003ch2\u003eApache Arrow 20.0.0\u003c/h2\u003e\n\u003cp\u003eRelease Notes URL: \u003ca href=\"https://arrow.apache.org/release/20.0.0.html\"\u003ehttps://arrow.apache.org/release/20.0.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eApache Arrow 20.0.0 RC2\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 20.0.0 RC2\u003c/p\u003e\n\u003ch2\u003eApache Arrow 20.0.0 RC1\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 20.0.0 RC1\u003c/p\u003e\n\u003ch2\u003eApache Arrow 20.0.0 RC0\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 20.0.0 RC0\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/ee4d09ebef61c663c1efbfa4c18e518a03b798be\"\u003e\u003ccode\u003eee4d09e\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update versions for 21.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/f13a5796008e3a5e546af1a7b2be0fbd3c148c26\"\u003e\u003ccode\u003ef13a579\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update .deb/.rpm changelogs for 21.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/6fd2a167e0ed74dbe4c059e579a561fcc2aae11f\"\u003e\u003ccode\u003e6fd2a16\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update CHANGELOG.md for 21.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/cf261bf58ae74a1f7fa99d81c201ca8e1d679c9b\"\u003e\u003ccode\u003ecf261bf\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47078\"\u003eGH-47078\u003c/a\u003e: [Release] Ensure using cloned apache/arrow for reproducible check (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/ddbc3dc005dfdde5a79d42cb5953190479b12b73\"\u003e\u003ccode\u003eddbc3dc\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47074\"\u003eGH-47074\u003c/a\u003e: [Release] Use reproducible mtime for csharp/ in source archive (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47\"\u003e#47\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/0534eb2d279f445ac67b99a22eca344484749b6f\"\u003e\u003ccode\u003e0534eb2\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47071\"\u003eGH-47071\u003c/a\u003e: [Release] Dereference all hard links in source archive (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47072\"\u003e#47072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/f845b4184664aee522f7fd73864d3093e84b6580\"\u003e\u003ccode\u003ef845b41\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47069\"\u003eGH-47069\u003c/a\u003e: [Release] Add missing \u0026quot;needs: target\u0026quot; (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47070\"\u003e#47070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/1c08f8ee6947bd2a9bffb441af946c6a7373015b\"\u003e\u003ccode\u003e1c08f8e\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47067\"\u003eGH-47067\u003c/a\u003e: [Release] Fix wrong GitHub Actions context in verify_rc.yml (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47068\"\u003e#47068\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/70e5c51e6d5de1ca6f669b47ff0b98e1075336d0\"\u003e\u003ccode\u003e70e5c51\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47065\"\u003eGH-47065\u003c/a\u003e: [Release] Fix timeout key in verify_rc.yml (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47066\"\u003e#47066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/254a85c8bddb52eef03d623882836717f027061d\"\u003e\u003ccode\u003e254a85c\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47063\"\u003eGH-47063\u003c/a\u003e: [Release] Define missing RELEASE_TARBALL (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47064\"\u003e#47064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/arrow/compare/apache-arrow-19.0.1...apache-arrow-21.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.11.3 to 2.11.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.9 2025-09-13\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBackport v1.10.23 changes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.8...v2.11.9\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.11.8...v2.11.9\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.8 2025-09-13\u003c/h2\u003e\n\u003ch2\u003ev2.11.8 (2025-09-13)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix mypy plugin for mypy 1.18 by \u003ca href=\"https://github.com/cdce8p\"\u003e\u003ccode\u003e@​cdce8p\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12209\"\u003e#12209\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.7...v2.11.8\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.11.7...v2.11.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.7 2025-06-14\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCopy \u003ccode\u003eFieldInfo\u003c/code\u003e instance if necessary during \u003ccode\u003eFieldInfo\u003c/code\u003e build by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11980\"\u003epydantic/pydantic#11980\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.6...v2.11.7\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.11.6...v2.11.7\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.6 2025-06-13\u003c/h2\u003e\n\u003ch2\u003ev2.11.6 (2025-06-13)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRebuild dataclass fields before schema generation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11949\"\u003e#11949\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlways store the original field assignment on \u003ccode\u003eFieldInfo\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11946\"\u003e#11946\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.5...v2.11.6\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.11.5...v2.11.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.5 2025-05-22\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCheck if \u003ccode\u003eFieldInfo\u003c/code\u003e is complete after applying type variable map by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11855\"\u003e#11855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not delete mock validator/serializer in \u003ccode\u003emodel_rebuild()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11890\"\u003e#11890\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not duplicate metadata on model rebuild by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11902\"\u003e#11902\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.11.10/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.10 (2025-10-04)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.11.10\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBackport v1.10.24 changes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.11.9 (2025-09-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.11.9\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBackport v1.10.23 changes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.11.8 (2025-09-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.11.8\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix mypy plugin for mypy 1.18 by \u003ca href=\"https://github.com/cdce8p\"\u003e\u003ccode\u003e@​cdce8p\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12209\"\u003e#12209\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.11.7 (2025-06-14)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.11.7\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCopy \u003ccode\u003eFieldInfo\u003c/code\u003e instance if necessary during \u003ccode\u003eFieldInfo\u003c/code\u003e build by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11898\"\u003e#11898\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.11.6 (2025-06-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.11.6\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRebuild dataclass fields before schema generation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11949\"\u003e#11949\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlways store the original field assignment on \u003ccode\u003eFieldInfo\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11946\"\u003e#11946\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/162b806fa1dcc7d99ec165023d572ac2ca421566\"\u003e\u003ccode\u003e162b806\u003c/code\u003e\u003c/a\u003e Prepare release v2.11.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1f5915685083ba97db2787834f15f686f9253966\"\u003e\u003ccode\u003e1f59156\u003c/code\u003e\u003c/a\u003e Backport v1.10.24 changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/92310953c146a2ac668a0141be820c083e325f5d\"\u003e\u003ccode\u003e9231095\u003c/code\u003e\u003c/a\u003e Prepare release v2.11.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f003a89eeaff35ee18f220a2c790d20536e3d0ab\"\u003e\u003ccode\u003ef003a89\u003c/code\u003e\u003c/a\u003e Backport v1.10.23 changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/96b81ddaf93a1f2e19ff1609080c33de10b8d931\"\u003e\u003ccode\u003e96b81dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.11.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/966f377692194b3f1d6d5155ac78052bec0a751d\"\u003e\u003ccode\u003e966f377\u003c/code\u003e\u003c/a\u003e Fix mypy v2 plugin for upcoming \u003ccode\u003e1.18\u003c/code\u003e mypy release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5f033e46c54fea1b59b6894d6527daf49475e690\"\u003e\u003ccode\u003e5f033e4\u003c/code\u003e\u003c/a\u003e Prepare release v2.11.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c3368b83c411f421a7322959bc29f3bea4bd252a\"\u003e\u003ccode\u003ec3368b8\u003c/code\u003e\u003c/a\u003e Copy \u003ccode\u003eFieldInfo\u003c/code\u003e instance if necessary during \u003ccode\u003eFieldInfo\u003c/code\u003e build (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/11980\"\u003e#11980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/3987b23db4b31ff35e9fa15c21c0c1d1c9808838\"\u003e\u003ccode\u003e3987b23\u003c/code\u003e\u003c/a\u003e Prepare release v2.11.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/dc7a9d20bee55a3a6e7397ee46abfcd9057b627b\"\u003e\u003ccode\u003edc7a9d2\u003c/code\u003e\u003c/a\u003e Always store the original field assignment on \u003ccode\u003eFieldInfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.3...v2.11.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.9.1 to 2.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCLI Serialize Support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/643\"\u003epydantic/pydantic-settings#643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInspect type aliases to determine if an annotation is complex by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/644\"\u003epydantic/pydantic-settings#644\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;fix: Respect 'cli_parse_args' from model_config with settings_customise_sources (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/611\"\u003e#611\u003c/a\u003e)\u0026quot; by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/655\"\u003epydantic/pydantic-settings#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove parsing of command line arguments from \u003ccode\u003eCliSettingsSource.__init__\u003c/code\u003e. by \u003ca href=\"https://github.com/trygve-baerland\"\u003e\u003ccode\u003e@​trygve-baerland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/656\"\u003epydantic/pydantic-settings#656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eturn off allow_abbrev on subparsers by \u003ca href=\"https://github.com/mroch\"\u003e\u003ccode\u003e@​mroch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/658\"\u003epydantic/pydantic-settings#658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Serialization Fixes by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/649\"\u003epydantic/pydantic-settings#649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix PydanticModel type checking. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/659\"\u003epydantic/pydantic-settings#659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid env_prefix falling back to env vars without prefix by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/648\"\u003epydantic/pydantic-settings#648\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWarn if model_config sets unused keys for missing settings sources by \u003ca href=\"https://github.com/HomerusJa\"\u003e\u003ccode\u003e@​HomerusJa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/663\"\u003epydantic/pydantic-settings#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncluded endpoint_url kwarg in AWSSecretsManagerSettingsSource class by \u003ca href=\"https://github.com/adrianohrl\"\u003e\u003ccode\u003e@​adrianohrl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/664\"\u003epydantic/pydantic-settings#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo (\u0026quot;Accesing\u0026quot;) in the \u0026quot;Adding sources\u0026quot; docs by \u003ca href=\"https://github.com/deepyaman\"\u003e\u003ccode\u003e@​deepyaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/668\"\u003epydantic/pydantic-settings#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Windows Path Fix by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/669\"\u003epydantic/pydantic-settings#669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCli root model support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/677\"\u003epydantic/pydantic-settings#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSnake case conversion in Azure Key Vault by \u003ca href=\"https://github.com/AndreuCodina\"\u003e\u003ccode\u003e@​AndreuCodina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/680\"\u003epydantic/pydantic-settings#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eInitSettingsSource\u003c/code\u003e resolution deterministic by \u003ca href=\"https://github.com/enrico-stauss\"\u003e\u003ccode\u003e@​enrico-stauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/681\"\u003epydantic/pydantic-settings#681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate deps by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/683\"\u003epydantic/pydantic-settings#683\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/644\"\u003epydantic/pydantic-settings#644\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trygve-baerland\"\u003e\u003ccode\u003e@​trygve-baerland\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/656\"\u003epydantic/pydantic-settings#656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mroch\"\u003e\u003ccode\u003e@​mroch\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/658\"\u003epydantic/pydantic-settings#658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HomerusJa\"\u003e\u003ccode\u003e@​HomerusJa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/663\"\u003epydantic/pydantic-settings#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adrianohrl\"\u003e\u003ccode\u003e@​adrianohrl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/664\"\u003epydantic/pydantic-settings#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deepyaman\"\u003e\u003ccode\u003e@​deepyaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/668\"\u003epydantic/pydantic-settings#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enrico-stauss\"\u003e\u003ccode\u003e@​enrico-stauss\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/681\"\u003epydantic/pydantic-settings#681\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.10.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix UnboundLocalError error in _replace_field_names_case_insensitively by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/639\"\u003epydantic/pydantic-settings#639\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unknown file reference in documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/640\"\u003epydantic/pydantic-settings#640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.10.1 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/642\"\u003epydantic/pydantic-settings#642\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/2.10.0...2.10.1\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/2.10.0...2.10.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix running tests when azure-keyvault-secrets is not installed by \u003ca href=\"https://github.com/CyberTailor\"\u003e\u003ccode\u003e@​CyberTailor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/601\"\u003epydantic/pydantic-settings#601\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix running tests when google-cloud-secret-manager is not installed by \u003ca href=\"https://github.com/CyberTailor\"\u003e\u003ccode\u003e@​CyberTailor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/602\"\u003epydantic/pydantic-settings#602\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport loading a specific nested key from YAML in YamlConfigSettingsSource by \u003ca href=\"https://github.com/Seunghan-Jung\"\u003e\u003ccode\u003e@​Seunghan-Jung\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/603\"\u003epydantic/pydantic-settings#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI suppression for model group help by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/604\"\u003epydantic/pydantic-settings#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing DEFAULT_PATH import by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/606\"\u003epydantic/pydantic-settings#606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix case-insensitive handling of nested aliases in EnvironmentSettingsSource by \u003ca href=\"https://github.com/d15ky\"\u003e\u003ccode\u003e@​d15ky\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/608\"\u003epydantic/pydantic-settings#608\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAzure Key Vault case insensitive support and dash-underscore translation by \u003ca href=\"https://github.com/d15ky\"\u003e\u003ccode\u003e@​d15ky\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/607\"\u003epydantic/pydantic-settings#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect 'cli_parse_args' from model_config with settings_customise_sources by \u003ca href=\"https://github.com/karta9821\"\u003e\u003ccode\u003e@​karta9821\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/611\"\u003epydantic/pydantic-settings#611\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/612\"\u003epydantic/pydantic-settings#612\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/3e664300f38a4ad1e1ff4b431147f18d63930028\"\u003e\u003ccode\u003e3e66430\u003c/code\u003e\u003c/a\u003e Prepare release 2.11.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/684\"\u003e#684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/44fb5b7a97ed82d09d3895bee49b82ae4ac55fd9\"\u003e\u003ccode\u003e44fb5b7\u003c/code\u003e\u003c/a\u003e Update deps (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/683\"\u003e#683\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/0497ef23314dbd63ea41d07ab9c301e628f2f9f9\"\u003e\u003ccode\u003e0497ef2\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003eInitSettingsSource\u003c/code\u003e resolution deterministic (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/681\"\u003e#681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/c22cef44ff7d3ca058eee188bf1967650146fcda\"\u003e\u003ccode\u003ec22cef4\u003c/code\u003e\u003c/a\u003e Snake case conversion in Azure Key Vault (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/680\"\u003e#680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/9c6c9b55e27ab78e48eaa570965c6e52c32c9f38\"\u003e\u003ccode\u003e9c6c9b5\u003c/code\u003e\u003c/a\u003e Cli root model support (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/677\"\u003e#677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/a164b73fcf8d802c1a7db7c6d9d830f11b70244e\"\u003e\u003ccode\u003ea164b73\u003c/code\u003e\u003c/a\u003e CLI Windows Path Fix (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/d81f8d861d01eff563b8b91a1694d48b6eade92e\"\u003e\u003ccode\u003ed81f8d8\u003c/code\u003e\u003c/a\u003e Fix typo (\u0026quot;Accesing\u0026quot;) in the \u0026quot;Adding sources\u0026quot; docs (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/668\"\u003e#668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/53ade971d122b9fef88da85a8ff489180e06c796\"\u003e\u003ccode\u003e53ade97\u003c/code\u003e\u003c/a\u003e Included endpoint_url kwarg in AWSSecretsManagerSettingsSource class (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/664\"\u003e#664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/1967d6f5c18db30ddbcffe4856ea941a71189abc\"\u003e\u003ccode\u003e1967d6f\u003c/code\u003e\u003c/a\u003e Warn if model_config sets unused keys for missing settings sources (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/1fc20873d208979dfac0fa336f99fc05c0562ae8\"\u003e\u003ccode\u003e1fc2087\u003c/code\u003e\u003c/a\u003e Avoid env_prefix falling back to env vars without prefix (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/648\"\u003e#648\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.9.1...v2.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.40 to 2.0.43\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.43\u003c/h1\u003e\n\u003cp\u003eReleased: August 11, 2025\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where using the \u003ccode\u003epost_update\u003c/code\u003e feature would apply incorrect\n\u0026quot;pre-fetched\u0026quot; values to the ORM objects after a multi-row UPDATE process\ncompleted.  These \u0026quot;pre-fetched\u0026quot; values would come from any column that had\nan \u003ccode\u003eColumn.onupdate\u003c/code\u003e callable or a version id generator used by\n\u003ccode\u003eorm.Mapper.version_id_generator\u003c/code\u003e; for a version id generator\nthat delivered random identifiers like timestamps or UUIDs, this incorrect\ndata would lead to a DELETE statement against those same rows to fail in\nthe next step.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12748\"\u003e#12748\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where \u003ccode\u003e_orm.mapped_column.use_existing_column\u003c/code\u003e\nparameter in \u003ccode\u003e_orm.mapped_column()\u003c/code\u003e would not work when the\n\u003ccode\u003e_orm.mapped_column()\u003c/code\u003e is used inside of an \u003ccode\u003eAnnotated\u003c/code\u003e type alias in\npolymorphic inheritance scenarios. The parameter is now properly recognized\nand processed during declarative mapping configuration.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12787\"\u003e#12787\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Improved the implementation of the \u003ccode\u003e_orm.selectin_polymorphic()\u003c/code\u003e\ninheritance loader strategy to properly render the IN expressions using\nchunks of 500 records each, in the same manner as that of the\n\u003ccode\u003e_orm.selectinload()\u003c/code\u003e relationship loader strategy.  Previously, the IN\nexpression would be arbitrarily large, leading to failures on databases\nthat have limits on the size of IN expressions including Oracle Database.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12790\"\u003e#12790\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eengine\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[engine] [usecase]\u003c/strong\u003e Added new parameter \u003ccode\u003ecreate_engine.skip_autocommit_rollback\u003c/code\u003e\nwhich provides for a per-dialect feature of preventing the DBAPI\n\u003ccode\u003e.rollback()\u003c/code\u003e from being called under any circumstances, if the\nconnection is detected as being in \u0026quot;autocommit\u0026quot; mode.   This improves upon\na critical performance issue identified in MySQL dialects where the network\noverhead of the \u003ccode\u003e.rollback()\u003c/code\u003e call remains prohibitive even if autocommit\nmode is set.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12784\"\u003e#12784\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epostgresql\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.15.2 to 1.16.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.16.5\u003c/h1\u003e\n\u003cp\u003eReleased: August 27, 2025\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [mysql]\u003c/strong\u003e Fixed Python-side autogenerate rendering of index expressions in MySQL\ndialect by aligning it with SQLAlchemy's MySQL index expression rules. Pull\nrequest courtesy david-fed.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1492\"\u003e#1492\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [config]\u003c/strong\u003e Fixed issue where new pyproject.toml config would fail to parse the integer\nvalue used for the \u003ccode\u003etruncate_slug_length\u003c/code\u003e parameter.  Pull request\ncourtesy Luís Henrique Allebrandt Schunemann.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1709\"\u003e#1709\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.16.4\u003c/h1\u003e\n\u003cp\u003eReleased: July 10, 2025\u003c/p\u003e\n\u003ch2\u003ebug...\n\n_Description has been truncated_","html_url":"https://github.com/MrReasonable/jira-analyzer/pull/96","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrReasonable%2Fjira-analyzer/issues/96","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/96/packages"},{"uuid":"3471921900","node_id":"PR_kwDOGulfmM6reAu9","number":848,"state":"closed","title":"Bump dependency-injector from 4.39.1 to 4.48.2 in /packages/core/minos-microservice-common","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-01T04:02:00.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-01T04:02:51.000Z","updated_at":"2026-01-01T04:02:01.000Z","time_to_close":7948749,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"dependency-injector","old_version":"4.39.1","new_version":"4.48.2","repository_url":"https://github.com/ets-labs/python-dependency-injector"}],"path":"/packages/core/minos-microservice-common","ecosystem":"pip"},"body":"Bumps [dependency-injector](https://github.com/ets-labs/python-dependency-injector) from 4.39.1 to 4.48.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.48.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix grammar in Declarative Container documentation by \u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd warnings for unresolved markers by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\"\u003ehttps://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild ABI3 wheels only for Python\u0026gt;=3.10 by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\"\u003ehttps://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.2\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.48.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove performance of \u003ccode\u003edependency_injector._cwiring.DependencyResolver\u003c/code\u003e by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/eb74b1e9d0b681008de531a697c7caeaafbd1e30\"\u003ehttps://github.com/ets-labs/python-dependency-injector/commit/eb74b1e9d0b681008de531a697c7caeaafbd1e30\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping-extensions\u003c/code\u003e as a dependency for older Python versions (\u0026lt;3.11) by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/be7d25518de833ef02f97567b8def9f5d1b80ab1\"\u003ehttps://github.com/ets-labs/python-dependency-injector/commit/be7d25518de833ef02f97567b8def9f5d1b80ab1\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eProduce warning on \u003ccode\u003e@inject\u003c/code\u003es without \u003ccode\u003eProvide[...]\u003c/code\u003e marks by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/04b5907f21d40a6ddba57dbad46690e27cbaade4\"\u003ehttps://github.com/ets-labs/python-dependency-injector/commit/04b5907f21d40a6ddba57dbad46690e27cbaade4\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eresource_type\u003c/code\u003e in \u003ccode\u003eLifespan\u003c/code\u003es by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/e6cc12762f0355f2aff866b08eb1a3427b8b6403\"\u003ehttps://github.com/ets-labs/python-dependency-injector/commit/e6cc12762f0355f2aff866b08eb1a3427b8b6403\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.0...4.48.1\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.0...4.48.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.48.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse cache in _fetch_reference_injections() by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/897\"\u003eets-labs/python-dependency-injector#897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Context Manager support to Resource provider by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/899\"\u003eets-labs/python-dependency-injector#899\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for async generator injections by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/900\"\u003eets-labs/python-dependency-injector#900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Fast Depends by \u003ca href=\"https://github.com/AndrianEquestrian\"\u003e\u003ccode\u003e@​AndrianEquestrian\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/898\"\u003eets-labs/python-dependency-injector#898\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd resource type parameter to init and shutdown resources using specialized providers by \u003ca href=\"https://github.com/amoncusir\"\u003e\u003ccode\u003e@​amoncusir\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/858\"\u003eets-labs/python-dependency-injector#858\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AndrianEquestrian\"\u003e\u003ccode\u003e@​AndrianEquestrian\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/898\"\u003eets-labs/python-dependency-injector#898\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amoncusir\"\u003e\u003ccode\u003e@​amoncusir\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/858\"\u003eets-labs/python-dependency-injector#858\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.47.1...4.48.0\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.47.1...4.48.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.47.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix wiring marker typing by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/896\"\u003eets-labs/python-dependency-injector#896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStrip debug symbols in wheels\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.47.0...4.47.1\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.47.0...4.47.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.47.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with Closing+ConfigurationOption by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/871\"\u003eets-labs/python-dependency-injector#871\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused \u003ccode\u003eroot\u003c/code\u003e property from ConfigurationOption by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/875\"\u003eets-labs/python-dependency-injector#875\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrect monkeypatching during \u003ccode\u003ewire()\u003c/code\u003e that could violate MRO in some classes by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/886\"\u003eets-labs/python-dependency-injector#886\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eAnnotated\u003c/code\u003e type for module and class attribute injection in wiring, with updated documentation and examples by \u003ca href=\"https://github.com/rmk135\"\u003e\u003ccode\u003e@​rmk135\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/889\"\u003eets-labs/python-dependency-injector#889\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePublish ABI3 wheels for CPython by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/888\"\u003eets-labs/python-dependency-injector#888\u003c/a\u003e \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/887\"\u003eets-labs/python-dependency-injector#887\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5a1aef920372da6a95d14865caab10061aea7104\"\u003e\u003ccode\u003e5a1aef9\u003c/code\u003e\u003c/a\u003e Merge branch 'release/4.48.2'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5acddac9c15e87edff76846e8903a3c4552da22b\"\u003e\u003ccode\u003e5acddac\u003c/code\u003e\u003c/a\u003e Add changelog entry for v4.48.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/9f77976a294d7eeda6176610155f1fe0b91eea2d\"\u003e\u003ccode\u003e9f77976\u003c/code\u003e\u003c/a\u003e Fix typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\"\u003e\u003ccode\u003e891f8b4\u003c/code\u003e\u003c/a\u003e Build ABI3 wheels only for Python\u0026gt;=3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/8c2a32213a71c82334d009fbf3ee69dc85221b78\"\u003e\u003ccode\u003e8c2a322\u003c/code\u003e\u003c/a\u003e Add wheels Makefile target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/91a741a6332ba9e0130e3d80b4191b4010f9f726\"\u003e\u003ccode\u003e91a741a\u003c/code\u003e\u003c/a\u003e Bump Cython version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\"\u003e\u003ccode\u003e1222827\u003c/code\u003e\u003c/a\u003e Add warnings for unresolved markers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/759d89e9bdc35f0146361e5ff89fd36e99cc6184\"\u003e\u003ccode\u003e759d89e\u003c/code\u003e\u003c/a\u003e Add reprs to wiring markers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1500a1de364cd97ccebd812a28a9b6f4c344a0ef\"\u003e\u003ccode\u003e1500a1d\u003c/code\u003e\u003c/a\u003e docs(declarative.rst): fix grammar in Declarative Container documentation  (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/7df26d1ac76aabf52f74ce75e5f908ccf28b4898\"\u003e\u003ccode\u003e7df26d1\u003c/code\u003e\u003c/a\u003e docs(declarative.rst): fix grammar in Declarative Container documentation  (#...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.39.1...4.48.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=dependency-injector\u0026package-manager=pip\u0026previous-version=4.39.1\u0026new-version=4.48.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nYou can trigger a rebase of this PR by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e\n\n\u003e **Note**\n\u003e Automatic rebases have been disabled on this pull request as it has been open for over 30 days.\n","html_url":"https://github.com/minos-framework/minos-python/pull/848","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/minos-framework%2Fminos-python/issues/848","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/848/packages"},{"uuid":"2848528151","node_id":"PR_kwDOPYR9a86pyRcX","number":1051,"state":"open","title":"deps(deps): bump the minor-patches group with 6 updates","user":"dependabot[bot]","labels":["dependencies","python","security"],"assignees":["Josh-moreton"],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-22T09:04:25.000Z","updated_at":"2025-09-22T09:04:26.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps): bump","group_name":"minor-patches","update_count":6,"packages":[{"name":"typer","old_version":"0.17.4","new_version":"0.19.1","repository_url":"https://github.com/fastapi/typer"},{"name":"dependency-injector","old_version":"4.48.1","new_version":"4.48.2","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/giampaolo/psutil"},{"name":"click","old_version":"8.2.1","new_version":"8.3.0","repository_url":"https://github.com/pallets/click"},{"name":"pydantic-core","old_version":"2.33.2","new_version":"2.39.0","repository_url":"https://github.com/pydantic/pydantic-core"},{"name":"pyparsing","old_version":"3.2.4","new_version":"3.2.5","repository_url":"https://github.com/pyparsing/pyparsing"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-patches group with 6 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [typer](https://github.com/fastapi/typer) | `0.17.4` | `0.19.1` |\n| [dependency-injector](https://github.com/ets-labs/python-dependency-injector) | `4.48.1` | `4.48.2` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.0` |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic-core) | `2.33.2` | `2.39.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.4` | `3.2.5` |\n\nUpdates `typer` from 0.17.4 to 0.19.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/typer/releases\"\u003etyper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.19.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNote\u003c/strong\u003e: this is the last version to support Python 3.7, going forward Typer will require Python 3.8+. And soon Python 3.8 will also be dropped as \u003ca href=\"https://devguide.python.org/versions/\"\u003ePython 3.8 reached it's end of life\u003c/a\u003e almost a year ago.\u003c/p\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Ensure that \u003ccode\u003eOptional[list]\u003c/code\u003e values work correctly with callbacks. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1018\"\u003e#1018\u003c/a\u003e by \u003ca href=\"https://github.com/solesensei\"\u003e\u003ccode\u003e@​solesensei\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.19.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Support \u003ccode\u003etyping.Literal\u003c/code\u003e to define a set of predefined choices. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/429\"\u003e#429\u003c/a\u003e by \u003ca href=\"https://github.com/blackary\"\u003e\u003ccode\u003e@​blackary\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Allow setting an environment variable to \u003ccode\u003eNone\u003c/code\u003e in \u003ccode\u003eCliRunner.invoke\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1303\"\u003e#1303\u003c/a\u003e by \u003ca href=\"https://github.com/arjenzorgdoc\"\u003e\u003ccode\u003e@​arjenzorgdoc\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Use Ruff rules to ensure safe lazy-loading of \u003ccode\u003erich\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1297\"\u003e#1297\u003c/a\u003e by \u003ca href=\"https://github.com/nathanjmcdougall\"\u003e\u003ccode\u003e@​nathanjmcdougall\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✅ Avoid rich formatting in number test. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1305\"\u003e#1305\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Clarify single-command vs multi-command behaviour in README. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1268\"\u003e#1268\u003c/a\u003e by \u003ca href=\"https://github.com/MorgenPronk\"\u003e\u003ccode\u003e@​MorgenPronk\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👽️ Ensure compatibility with Click 8.3.0 by restoring the original \u003ccode\u003evalue_is_missing\u003c/code\u003e function. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1333\"\u003e#1333\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📌 Remove pin for Click \u0026lt; 8.3.0 now that there's a fix for the changes. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1346\"\u003e#1346\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.17.5\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬇️ Restrict Click to below 8.3.0 to handle changes in the new version. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1336\"\u003e#1336\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.6.14 to 9.6.20. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1308\"\u003e#1308\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.5.50 to 9.6.14. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1223\"\u003e#1223\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/download-artifact from 4 to 5. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1269\"\u003e#1269\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.12.12 to 0.13.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1302\"\u003e#1302\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ [pre-commit.ci] pre-commit autoupdate. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1307\"\u003e#1307\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Update pytest-cov requirement from \u0026lt;7.0.0,\u0026gt;=2.10.0 to \u0026gt;=2.10.0,\u0026lt;8.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1301\"\u003e#1301\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/setup-python from 5 to 6. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1291\"\u003e#1291\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.12.11 to 0.12.12. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1295\"\u003e#1295\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ [pre-commit.ci] pre-commit autoupdate. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1300\"\u003e#1300\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/labeler from 5 to 6. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1296\"\u003e#1296\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/typer/blob/master/docs/release-notes.md\"\u003etyper's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.19.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNote\u003c/strong\u003e: this is the last version to support Python 3.7, going forward Typer will require Python 3.8+. And soon Python 3.8 will also be dropped as \u003ca href=\"https://devguide.python.org/versions/\"\u003ePython 3.8 reached it's end of life\u003c/a\u003e almost a year ago.\u003c/p\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Ensure that \u003ccode\u003eOptional[list]\u003c/code\u003e values work correctly with callbacks. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1018\"\u003e#1018\u003c/a\u003e by \u003ca href=\"https://github.com/solesensei\"\u003e\u003ccode\u003e@​solesensei\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.19.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Support \u003ccode\u003etyping.Literal\u003c/code\u003e to define a set of predefined choices. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/429\"\u003e#429\u003c/a\u003e by \u003ca href=\"https://github.com/blackary\"\u003e\u003ccode\u003e@​blackary\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Allow setting an environment variable to \u003ccode\u003eNone\u003c/code\u003e in \u003ccode\u003eCliRunner.invoke\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1303\"\u003e#1303\u003c/a\u003e by \u003ca href=\"https://github.com/arjenzorgdoc\"\u003e\u003ccode\u003e@​arjenzorgdoc\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Use Ruff rules to ensure safe lazy-loading of \u003ccode\u003erich\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1297\"\u003e#1297\u003c/a\u003e by \u003ca href=\"https://github.com/nathanjmcdougall\"\u003e\u003ccode\u003e@​nathanjmcdougall\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✅ Avoid rich formatting in number test. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1305\"\u003e#1305\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Clarify single-command vs multi-command behaviour in README. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1268\"\u003e#1268\u003c/a\u003e by \u003ca href=\"https://github.com/MorgenPronk\"\u003e\u003ccode\u003e@​MorgenPronk\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👽️ Ensure compatibility with Click 8.3.0 by restoring the original \u003ccode\u003evalue_is_missing\u003c/code\u003e function. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1333\"\u003e#1333\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📌 Remove pin for Click \u0026lt; 8.3.0 now that there's a fix for the changes. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1346\"\u003e#1346\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.17.5\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬇️ Restrict Click to below 8.3.0 to handle changes in the new version. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1336\"\u003e#1336\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.6.14 to 9.6.20. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1308\"\u003e#1308\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.5.50 to 9.6.14. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1223\"\u003e#1223\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/download-artifact from 4 to 5. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1269\"\u003e#1269\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.12.12 to 0.13.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1302\"\u003e#1302\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ [pre-commit.ci] pre-commit autoupdate. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1307\"\u003e#1307\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Update pytest-cov requirement from \u0026lt;7.0.0,\u0026gt;=2.10.0 to \u0026gt;=2.10.0,\u0026lt;8.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1301\"\u003e#1301\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/setup-python from 5 to 6. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1291\"\u003e#1291\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.12.11 to 0.12.12. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1295\"\u003e#1295\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/7afa6361e8b61c1905899f5e9b6fd303bfa7dffa\"\u003e\u003ccode\u003e7afa636\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/82e27e97c9b6bc1b5c52cfe3840cdb329caf12de\"\u003e\u003ccode\u003e82e27e9\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/53ae9eeb6f0f2d564f3a6bebfad3e4de69210117\"\u003e\u003ccode\u003e53ae9ee\u003c/code\u003e\u003c/a\u003e 🐛 Ensure that \u003ccode\u003eOptional[list]\u003c/code\u003e values work correctly with callbacks (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1018\"\u003e#1018\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/13619fb4a35ee92a276215889c68ea03633c24dd\"\u003e\u003ccode\u003e13619fb\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.19.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/7a0f0028c069ee71d5e17274de8f83eb80ac3acd\"\u003e\u003ccode\u003e7a0f002\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/05400d913b1493e370ba1edec519788098303ba0\"\u003e\u003ccode\u003e05400d9\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/6774f1df002b0de80d2af502b831d4aa5357b03e\"\u003e\u003ccode\u003e6774f1d\u003c/code\u003e\u003c/a\u003e ✨ Support \u003ccode\u003etyping.Literal\u003c/code\u003e to define a set of predefined choices (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/429\"\u003e#429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/2ece3e6445f5e585f6118be9ff68d6afe85fe5fe\"\u003e\u003ccode\u003e2ece3e6\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/2b05c7c2c1f97a10e9da7579313cff855236b0cb\"\u003e\u003ccode\u003e2b05c7c\u003c/code\u003e\u003c/a\u003e ✅ Avoid rich formatting in number test (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1305\"\u003e#1305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/9dfdd51075031c592b614c360e42a3857226413d\"\u003e\u003ccode\u003e9dfdd51\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/typer/compare/0.17.4...0.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dependency-injector` from 4.48.1 to 4.48.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.48.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix grammar in Declarative Container documentation by \u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd warnings for unresolved markers by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\"\u003ehttps://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild ABI3 wheels only for Python\u0026gt;=3.10 by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\"\u003ehttps://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.2\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5a1aef920372da6a95d14865caab10061aea7104\"\u003e\u003ccode\u003e5a1aef9\u003c/code\u003e\u003c/a\u003e Merge branch 'release/4.48.2'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5acddac9c15e87edff76846e8903a3c4552da22b\"\u003e\u003ccode\u003e5acddac\u003c/code\u003e\u003c/a\u003e Add changelog entry for v4.48.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/9f77976a294d7eeda6176610155f1fe0b91eea2d\"\u003e\u003ccode\u003e9f77976\u003c/code\u003e\u003c/a\u003e Fix typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\"\u003e\u003ccode\u003e891f8b4\u003c/code\u003e\u003c/a\u003e Build ABI3 wheels only for Python\u0026gt;=3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/8c2a32213a71c82334d009fbf3ee69dc85221b78\"\u003e\u003ccode\u003e8c2a322\u003c/code\u003e\u003c/a\u003e Add wheels Makefile target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/91a741a6332ba9e0130e3d80b4191b4010f9f726\"\u003e\u003ccode\u003e91a741a\u003c/code\u003e\u003c/a\u003e Bump Cython version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\"\u003e\u003ccode\u003e1222827\u003c/code\u003e\u003c/a\u003e Add warnings for unresolved markers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/759d89e9bdc35f0146361e5ff89fd36e99cc6184\"\u003e\u003ccode\u003e759d89e\u003c/code\u003e\u003c/a\u003e Add reprs to wiring markers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1500a1de364cd97ccebd812a28a9b6f4c344a0ef\"\u003e\u003ccode\u003e1500a1d\u003c/code\u003e\u003c/a\u003e docs(declarative.rst): fix grammar in Declarative Container documentation  (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/7df26d1ac76aabf52f74ce75e5f908ccf28b4898\"\u003e\u003ccode\u003e7df26d1\u003c/code\u003e\u003c/a\u003e docs(declarative.rst): fix grammar in Declarative Container documentation  (#...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 7.0.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/HISTORY.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e7.1.0\u003c/h1\u003e\n\u003cp\u003e2025-09-17\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2581_, [Windows]: publish ARM64 wheels.  (patch by Matthieu Darbois)\u003c/li\u003e\n\u003cli\u003e2571_, [FreeBSD]: Dropped support for FreeBSD 8 and earlier. FreeBSD 8 was\nmaintained from 2009 to 2013.\u003c/li\u003e\n\u003cli\u003e2575_: introduced \u003ccode\u003edprint\u003c/code\u003e CLI tool to format .yml and .md files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2473_, [macOS]: Fix build issue on macOS 11 and lower.\u003c/li\u003e\n\u003cli\u003e2494_, [Windows]: All APIs dealing with paths, such as\n\u003ccode\u003eProcess.memory_maps()\u003c/code\u003e\u003cem\u003e, \u003ccode\u003eProcess.exe()\u003c/code\u003e\u003c/em\u003e and \u003ccode\u003eProcess.open_files()\u003c/code\u003e_ does\nnot properly handle UNC paths. Paths such as \u003ccode\u003e\\\\??\\\\C:\\\\Windows\\\\Temp\u003c/code\u003e and\n\u003ccode\u003e'\\\\Device\\\\HarddiskVolume1\\\\Windows\\\\Temp'\u003c/code\u003e are now converted to\n\u003ccode\u003eC:\\\\Windows\\\\Temp\u003c/code\u003e.  (patch by Ben Peddell)\u003c/li\u003e\n\u003cli\u003e2506_, [Windows]: Windows service APIs had issues with unicode services using\nspecial characters in their name.\u003c/li\u003e\n\u003cli\u003e2514_, [Linux]: \u003ccode\u003eProcess.cwd()\u003c/code\u003e_ sometimes fail with \u003ccode\u003eFileNotFoundError\u003c/code\u003e due\nto a race condition.\u003c/li\u003e\n\u003cli\u003e2526_, [Linux]: \u003ccode\u003eProcess.create_time()\u003c/code\u003e\u003cem\u003e, which is used to univocally\nidentify a process over time, is subject to system clock updates, and as such\ncan lead to \u003ccode\u003eProcess.is_running()\u003c/code\u003e\u003c/em\u003e returning a wrong result. A monotonic\ncreation time is now used instead.  (patch by Jonathan Kohler)\u003c/li\u003e\n\u003cli\u003e2528_, [Linux]: \u003ccode\u003eProcess.children()\u003c/code\u003e_ may raise \u003ccode\u003ePermissionError\u003c/code\u003e. It will\nnow raise \u003ccode\u003eAccessDenied\u003c/code\u003e_ instead.\u003c/li\u003e\n\u003cli\u003e2540_, [macOS]: \u003ccode\u003eboot_time()\u003c/code\u003e_ is off by 45 seconds (C precision issue).\u003c/li\u003e\n\u003cli\u003e2541_, 2570_, 2578_ [Linux], [macOS], [NetBSD]: \u003ccode\u003eProcess.create_time()\u003c/code\u003e_ does\nnot reflect system clock updates.\u003c/li\u003e\n\u003cli\u003e2542_: if system clock is updated \u003ccode\u003eProcess.children()\u003c/code\u003e_ and\n\u003ccode\u003eProcess.parent()\u003c/code\u003e_ may not be able to return the right information.\u003c/li\u003e\n\u003cli\u003e2545_: [Illumos]: Fix handling of MIB2_UDP_ENTRY in \u003ccode\u003enet_connections()\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003e2552_, [Windows]: \u003ccode\u003eboot_time()\u003c/code\u003e_ didn't take into account the time spent\nduring suspend / hibernation.\u003c/li\u003e\n\u003cli\u003e2560_, [Linux]: \u003ccode\u003eProcess.memory_maps()\u003c/code\u003e_ may crash with \u003ccode\u003eIndexError\u003c/code\u003e on\nRISCV64 due to a malformed \u003ccode\u003e/proc/{PID}/smaps\u003c/code\u003e file.  (patch by Julien\nStephan)\u003c/li\u003e\n\u003cli\u003e2586_, [macOS], [CRITICAL]: fixed different places in C code which can\ntrigger a segfault.\u003c/li\u003e\n\u003cli\u003e2604_, [Linux]: \u003ccode\u003evirtual_memory()\u003c/code\u003e_ \u0026quot;used\u0026quot; memory does not match recent\nversions of \u003ccode\u003efree\u003c/code\u003e CLI utility.  (patch by Isaac K. Ko)\u003c/li\u003e\n\u003cli\u003e2605_, [Linux]: \u003ccode\u003epsutil.sensors_battery()\u003c/code\u003e reports a negative amount for\nseconds left.\u003c/li\u003e\n\u003cli\u003e2607_, [Windows]: \u003ccode\u003eWindowsService.description()\u003c/code\u003e method may fail with\n\u003ccode\u003eERROR_NOT_FOUND\u003c/code\u003e. Now it returns an empty string instead.\u003c/li\u003e\n\u003cli\u003e2610:, [macOS], [CRITICAL]: fix \u003ccode\u003ecpu_freq()\u003c/code\u003e_ segfault on ARM architectures.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/0d18187e79b349e577fadabd3589f8fdbf99bf5a\"\u003e\u003ccode\u003e0d18187\u003c/code\u003e\u003c/a\u003e Revert HISTORY notes about \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2629\"\u003e#2629\u003c/a\u003e. We still do publish 3.6 and 3.7 wheels.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/229e2de232860fe22e2c2884c20b8979c643d5c6\"\u003e\u003ccode\u003e229e2de\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/fb75b28226ec8e6b9e5b9eefa05a62de579cc114\"\u003e\u003ccode\u003efb75b28\u003c/code\u003e\u003c/a\u003e Chore: skip CI tests except on Python 3.8 and 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/3a4c01638bc61c77f43a05aea5bc6e1ddc81c6c4\"\u003e\u003ccode\u003e3a4c016\u003c/code\u003e\u003c/a\u003e Stop publishing wheels for Python 3.6 and 3.7 (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2629\"\u003e#2629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/83e4f7fdd76051dd8e0eeed99e2bf5fc881a2960\"\u003e\u003ccode\u003e83e4f7f\u003c/code\u003e\u003c/a\u003e OSX: disable failing test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/df0d4e2637917377bd5971f1745e881b75f2c6e2\"\u003e\u003ccode\u003edf0d4e2\u003c/code\u003e\u003c/a\u003e Call GetExtended[Tcp|Udp]Table twice under free-threaded build (round 2) (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2627\"\u003e#2627\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/dcbfb81e863fa2b8688ccd8da27b09b539404688\"\u003e\u003ccode\u003edcbfb81\u003c/code\u003e\u003c/a\u003e [Windows] fix unicode issues around service APIs (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2626\"\u003e#2626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/ef72dcd076f1cec94ba50ec30b5dbebb272845d0\"\u003e\u003ccode\u003eef72dcd\u003c/code\u003e\u003c/a\u003e revert \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2590\"\u003e#2590\u003c/a\u003e (Call GetExtended[Tcp|Udp]Table twice under free-threaded build)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8773698006d387db90b3982d78fd4ff6b2ebe71c\"\u003e\u003ccode\u003e8773698\u003c/code\u003e\u003c/a\u003e small refact around UTXENT_MUTEX_LOCK\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/13b711fc3ffa384d481e03881e46ae48009c4eeb\"\u003e\u003ccode\u003e13b711f\u003c/code\u003e\u003c/a\u003e Lock around uses of getutent/setutent/endutent (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2615\"\u003e#2615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/release-7.0.0...release-7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.2.1 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/25\"\u003ehttps://github.com/pallets/click/milestone/25\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2952\"\u003e#2952\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2956\"\u003e#2956\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying functino \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2777\"\u003e#2777\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2990\"\u003e#2990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2911\"\u003e#2911\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3004\"\u003e#3004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2703\"\u003e#2703\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2846\"\u003e#2846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2971\"\u003e#2971\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2972\"\u003e#2972\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-15\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner. :issue:\u003ccode\u003e2939\u003c/code\u003e:pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n:issue:\u003ccode\u003e2952\u003c/code\u003e :pr:\u003ccode\u003e2956\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying function \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. :issue:\u003ccode\u003e2777\u003c/code\u003e :pr:\u003ccode\u003e2990\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. Refs :issue:\u003ccode\u003e2911\u003c/code\u003e :pr:\u003ccode\u003e3004\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. :issue:\u003ccode\u003e2703\u003c/code\u003e :pr:\u003ccode\u003e2846\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. :issue:\u003ccode\u003e2971\u003c/code\u003e :pr:\u003ccode\u003e2972\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix a rare race in \u003ccode\u003eclick.testing.StreamMixer\u003c/code\u003e's finalization that manifested\nas a \u003ccode\u003eValueError\u003c/code\u003e on close in a multi-threaded test session.\n:issue:\u003ccode\u003e2993\u003c/code\u003e :pr:\u003ccode\u003e2991\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/00fadb8904387158ce6e9aa1573be770446895c1\"\u003e\u003ccode\u003e00fadb8\u003c/code\u003e\u003c/a\u003e Release version 8.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2a0e3ba907927ade6951d5732b775f11b54cb766\"\u003e\u003ccode\u003e2a0e3ba\u003c/code\u003e\u003c/a\u003e testing/CliRunner: Fix regression related to EOF introduced in 262bdf0 (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e11a1efc3395e998a1521a0dc35672a799e78d30\"\u003e\u003ccode\u003ee11a1ef\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into fix-cli-runner-prompt-eof-handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/36deba8a95a2585de1a2aa4475b7f054f52830ac\"\u003e\u003ccode\u003e36deba8\u003c/code\u003e\u003c/a\u003e Forward exception information to resources registered in a context (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f2cae7ae997cd32311cab3dede4c2b89fe05e191\"\u003e\u003ccode\u003ef2cae7a\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Add summary of PR to changelog for 8.3.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c7ec36354f49d1a092cb077fa4881ea4d70ba01\"\u003e\u003ccode\u003e7c7ec36\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Split resource exception handling tests in single and nested\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/92129c552da88ac30b578132031efa4b003ecc46\"\u003e\u003ccode\u003e92129c5\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Added exception forwarding to context tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/555fa9bb37770a6845a98be60b0c84876775552e\"\u003e\u003ccode\u003e555fa9b\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Forward exception data to exit stack when calling \u003ccode\u003e__exit__\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/16fe802a3f96c4c8fa3cd382f1a7577fda0c5321\"\u003e\u003ccode\u003e16fe802\u003c/code\u003e\u003c/a\u003e Add more tests on \u003ccode\u003eEnum\u003c/code\u003e rendering (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d36de6fc67882f23d7a7d61cd4c0e25e0f88b0ac\"\u003e\u003ccode\u003ed36de6f\u003c/code\u003e\u003c/a\u003e Add more tests on Enum rendering their item's names and not values\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.2.1...8.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-core` from 2.33.2 to 2.39.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-core/releases\"\u003epydantic-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.39.0 2025-08-11\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: improve onboarding by \u003ca href=\"https://github.com/PrettyWood\"\u003e\u003ccode\u003e@​PrettyWood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1775\"\u003epydantic/pydantic-core#1775\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild: bump pytest to 8.4 by \u003ca href=\"https://github.com/PrettyWood\"\u003e\u003ccode\u003e@​PrettyWood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1781\"\u003epydantic/pydantic-core#1781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eexclude_computed_fields\u003c/code\u003e serialization option by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1780\"\u003epydantic/pydantic-core#1780\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-core/compare/v2.38.0...v2.39.0\"\u003ehttps://github.com/pydantic/pydantic-core/compare/v2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.38.0 2025-08-04\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to PEP 639 license information by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1769\"\u003epydantic/pydantic-core#1769\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSimplify \u003ccode\u003eValidationError.from_exception_data()\u003c/code\u003e docstring by \u003ca href=\"https://github.com/kinuax\"\u003e\u003ccode\u003e@​kinuax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1768\"\u003epydantic/pydantic-core#1768\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: make TzInfo instantiable without any arguments by \u003ca href=\"https://github.com/PrettyWood\"\u003e\u003ccode\u003e@​PrettyWood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1777\"\u003epydantic/pydantic-core#1777\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: make everything work on nightly by \u003ca href=\"https://github.com/PrettyWood\"\u003e\u003ccode\u003e@​PrettyWood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1776\"\u003epydantic/pydantic-core#1776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump serde_json from 1.0.140 to 1.0.142 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1772\"\u003epydantic/pydantic-core#1772\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild wheels for GraalPy by \u003ca href=\"https://github.com/msimacek\"\u003e\u003ccode\u003e@​msimacek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1771\"\u003epydantic/pydantic-core#1771\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebump speedate to 0.17 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1778\"\u003epydantic/pydantic-core#1778\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImplement val_temporal_unit for deciding how datetimes and dates timestamps get validated. by \u003ca href=\"https://github.com/ollz272\"\u003e\u003ccode\u003e@​ollz272\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1751\"\u003epydantic/pydantic-core#1751\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kinuax\"\u003e\u003ccode\u003e@​kinuax\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1768\"\u003epydantic/pydantic-core#1768\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/msimacek\"\u003e\u003ccode\u003e@​msimacek\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1771\"\u003epydantic/pydantic-core#1771\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-core/compare/v2.37.2...v2.38.0\"\u003ehttps://github.com/pydantic/pydantic-core/compare/v2.37.2...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.37.2 2025-07-26\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing entries in \u003ccode\u003emissing-sentinel\u003c/code\u003e core schema by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1765\"\u003epydantic/pydantic-core#1765\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-core/compare/v2.37.1...v2.37.2\"\u003ehttps://github.com/pydantic/pydantic-core/compare/v2.37.1...v2.37.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.37.1 2025-07-25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eIdentical to \u003ca href=\"https://github.com/pydantic/pydantic-core/releases/tag/v2.37.0\"\u003ev2.37.0\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev2.37.0 2025-07-25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eMISSING\u003c/code\u003e sentinel by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1711\"\u003epydantic/pydantic-core#1711\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-core/compare/v2.36.0...v2.37.0\"\u003ehttps://github.com/pydantic/pydantic-core/compare/v2.36.0...v2.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.36.0 2025-07-23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eStop testing free-threaded on 3.13 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1738\"\u003epydantic/pydantic-core#1738\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump smallvec from 1.15.0 to 1.15.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1752\"\u003epydantic/pydantic-core#1752\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump uuid from 1.16.0 to 1.17.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1754\"\u003epydantic/pydantic-core#1754\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-core/commit/e0bc980764ec5d5f59c7d451948df937b5a1921f\"\u003e\u003ccode\u003ee0bc980\u003c/code\u003e\u003c/a\u003e Bump version to v2.39.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/issues/1783\"\u003e#1783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-core/commit/5da40643c7210f2099a399291b625c95099c99b8\"\u003e\u003ccode\u003e5da4064\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eexclude_computed_fields\u003c/code\u003e serialization option (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/issues/1780\"\u003e#1780\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-core/commit/4ba86e8b4c78c0631d354ca5469fdd2789775ab0\"\u003e\u003ccode\u003e4ba86e8\u003c/code\u003e\u003c/a\u003e build: bump pytest to 8.4 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/issues/1781\"\u003e#1781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-core/commit/17cbe988de187701dd21d5cd2306086ced5a8872\"\u003e\u003ccode\u003e17cbe98\u003c/code\u003e\u003c/a\u003e docs: improve onboarding (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/issues/1775\"\u003e#1775\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-core/commit/57e44118099881e4efb61f99be273a721549d892\"\u003e\u003ccode\u003e57e4411\u003c/code\u003e\u003c/a\u003e release: 2.38.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/issues/1779\"\u003e#1779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-core/commit/a1b87573124a7c2e7009ff20ac15d2deacc6f431\"\u003e\u003ccode\u003ea1b8757\u003c/code\u003e\u003c/a\u003e Implement val_temporal_unit for deciding how datetimes and dates timestamps g...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-core/commit/4c4ac6ed8485c1208dbca8e8f194ae155175c53d\"\u003e\u003ccode\u003e4c4ac6e\u003c/code\u003e\u003c/a\u003e bump speedate to 0.17 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/issues/1778\"\u003e#1778\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-core/commit/46796b60bc9e3d36cc0e58e1df29cdf99b1bccec\"\u003e\u003ccode\u003e46796b6\u003c/code\u003e\u003c/a\u003e Build wheels for GraalPy (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/issues/1771\"\u003e#1771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-core/commit/1a945f6d3ac7cab49ec6e99e48abfdfc2e2cb316\"\u003e\u003ccode\u003e1a945f6\u003c/code\u003e\u003c/a\u003e Bump serde_json from 1.0.140 to 1.0.142 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/issues/1772\"\u003e#1772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-core/commit/1ea1fef1c4e6160c5ebc2e7d837027f62283ca60\"\u003e\u003ccode\u003e1ea1fef\u003c/code\u003e\u003c/a\u003e fix: make everything work on nightly (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/issues/1776\"\u003e#1776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-core/compare/v2.33.2...v2.39.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyparsing` from 3.2.4 to 3.2.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyparsing/pyparsing/blob/master/CHANGES\"\u003epyparsing's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.2.5 - September, 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eJINX! Well, 3.2.4 had a bug for \u003ccode\u003eWord\u003c/code\u003e expressions that include a space\ncharacter, if that expression was then copied, either directly with .copy() or\nby adding a results name, or including in another construct (like \u003ccode\u003eDelimitedList\u003c/code\u003e)\nthat makes a copy internally. Issue \u003ca href=\"https://redirect.github.com/pyparsing/pyparsing/issues/618\"\u003e#618\u003c/a\u003e, reported by mstinberg, among others -\nthanks, and sorry for the inconvenience.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyparsing/pyparsing/commit/dbbd53ad1cd0ab31ae2a8fee5a64a718788b63fb\"\u003e\u003ccode\u003edbbd53a\u003c/code\u003e\u003c/a\u003e More unit tests and some comments for traceability to Issue \u003ca href=\"https://redirect.github.com/pyparsing/pyparsing/issues/618\"\u003e#618\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyparsing/pyparsing/commit/f5bdb2deff92859e068937f2ae502136b38ad16f\"\u003e\u003ccode\u003ef5bdb2d\u003c/code\u003e\u003c/a\u003e Issue \u003ca href=\"https://redirect.github.com/pyparsing/pyparsing/issues/618\"\u003e#618\u003c/a\u003e - fix reference to re_match attribute in copy of Word object to fi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyparsing/pyparsing/commit/8c61893d362b21d66fa3646c073295235ef166fd\"\u003e\u003ccode\u003e8c61893\u003c/code\u003e\u003c/a\u003e Prep for 3.2.5 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyparsing/pyparsing/compare/3.2.4...3.2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e` 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)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/Josh-moreton/alchemiser-quant/pull/1051","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Josh-moreton%2Falchemiser-quant/issues/1051","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1051/packages"},{"uuid":"2847763833","node_id":"PR_kwDOLG5FhM6pvW15","number":284,"state":"closed","title":"Bump dependency-injector from 4.48.1 to 4.48.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["uriyyo"],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-09-22T03:11:35.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-22T03:11:23.000Z","updated_at":"2025-09-22T03:11:36.000Z","time_to_close":12,"merged_at":"2025-09-22T03:11:35.000Z","merged_by":"github-actions[bot]","closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"dependency-injector","old_version":"4.48.1","new_version":"4.48.2","repository_url":"https://github.com/ets-labs/python-dependency-injector"}],"path":null,"ecosystem":"pip"},"body":"Bumps [dependency-injector](https://github.com/ets-labs/python-dependency-injector) from 4.48.1 to 4.48.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.48.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix grammar in Declarative Container documentation by \u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd warnings for unresolved markers by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\"\u003ehttps://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild ABI3 wheels only for Python\u0026gt;=3.10 by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\"\u003ehttps://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.2\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5a1aef920372da6a95d14865caab10061aea7104\"\u003e\u003ccode\u003e5a1aef9\u003c/code\u003e\u003c/a\u003e Merge branch 'release/4.48.2'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5acddac9c15e87edff76846e8903a3c4552da22b\"\u003e\u003ccode\u003e5acddac\u003c/code\u003e\u003c/a\u003e Add changelog entry for v4.48.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/9f77976a294d7eeda6176610155f1fe0b91eea2d\"\u003e\u003ccode\u003e9f77976\u003c/code\u003e\u003c/a\u003e Fix typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\"\u003e\u003ccode\u003e891f8b4\u003c/code\u003e\u003c/a\u003e Build ABI3 wheels only for Python\u0026gt;=3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/8c2a32213a71c82334d009fbf3ee69dc85221b78\"\u003e\u003ccode\u003e8c2a322\u003c/code\u003e\u003c/a\u003e Add wheels Makefile target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/91a741a6332ba9e0130e3d80b4191b4010f9f726\"\u003e\u003ccode\u003e91a741a\u003c/code\u003e\u003c/a\u003e Bump Cython version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\"\u003e\u003ccode\u003e1222827\u003c/code\u003e\u003c/a\u003e Add warnings for unresolved markers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/759d89e9bdc35f0146361e5ff89fd36e99cc6184\"\u003e\u003ccode\u003e759d89e\u003c/code\u003e\u003c/a\u003e Add reprs to wiring markers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1500a1de364cd97ccebd812a28a9b6f4c344a0ef\"\u003e\u003ccode\u003e1500a1d\u003c/code\u003e\u003c/a\u003e docs(declarative.rst): fix grammar in Declarative Container documentation  (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/7df26d1ac76aabf52f74ce75e5f908ccf28b4898\"\u003e\u003ccode\u003e7df26d1\u003c/code\u003e\u003c/a\u003e docs(declarative.rst): fix grammar in Declarative Container documentation  (#...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=dependency-injector\u0026package-manager=pip\u0026previous-version=4.48.1\u0026new-version=4.48.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/uriyyo/fastapi-async-safe-dependencies/pull/284","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/uriyyo%2Ffastapi-async-safe-dependencies/issues/284","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/284/packages"},{"uuid":"2847552748","node_id":"PR_kwDON6D7-86pujTs","number":95,"state":"open","title":"pip(deps): bump the all-dependencies group across 1 directory with 23 updates","user":"dependabot[bot]","labels":["dependencies","backend"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-22T00:26:52.000Z","updated_at":"2025-09-22T00:26:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"pip(deps): bump","group_name":"all-dependencies","update_count":23,"packages":[{"name":"fastapi","old_version":"0.115.12","new_version":"0.117.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.34.2","new_version":"0.36.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"python-dotenv","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"atlassian-python-api","old_version":"4.0.3","new_version":"4.0.7","repository_url":"https://github.com/atlassian-api/atlassian-python-api"},{"name":"pandas","old_version":"2.2.3","new_version":"2.3.2","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"pyarrow","old_version":"19.0.1","new_version":"21.0.0","repository_url":"https://github.com/apache/arrow"},{"name":"pydantic","old_version":"2.11.3","new_version":"2.11.9","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.9.1","new_version":"2.10.1","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"sqlalchemy","old_version":"2.0.40","new_version":"2.0.43","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"alembic","old_version":"1.15.2","new_version":"1.16.5","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"psycopg","old_version":"3.2.6","new_version":"3.2.10","repository_url":"https://github.com/psycopg/psycopg"},{"name":"psycopg-c","old_version":"3.2.6","new_version":"3.2.10","repository_url":"https://github.com/psycopg/psycopg"},{"name":"greenlet","old_version":"3.2.0","new_version":"3.2.4","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"python-jose","old_version":"3.4.0","new_version":"3.5.0"},{"name":"dependency-injector","old_version":"4.46.0","new_version":"4.48.2","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"black","old_version":"25.1.0","new_version":"25.9.0","repository_url":"https://github.com/psf/black"},{"name":"flake8","old_version":"7.2.0","new_version":"7.3.0","repository_url":"https://github.com/pycqa/flake8"},{"name":"flake8-import-order","old_version":"0.18.2","new_version":"0.19.2","repository_url":"https://github.com/PyCQA/flake8-import-order"},{"name":"pytest","old_version":"8.3.5","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"0.26.0","new_version":"1.2.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pytest-cov","old_version":"6.1.1","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"yamllint","old_version":"1.37.0","new_version":"1.37.1","repository_url":"https://github.com/adrienverge/yamllint"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-dependencies group with 23 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.115.12` | `0.117.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.34.2` | `0.36.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.0` | `1.1.1` |\n| [atlassian-python-api](https://github.com/atlassian-api/atlassian-python-api) | `4.0.3` | `4.0.7` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.2.3` | `2.3.2` |\n| [pyarrow](https://github.com/apache/arrow) | `19.0.1` | `21.0.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.11.9` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.9.1` | `2.10.1` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.43` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.16.5` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.2.10` |\n| [psycopg-c](https://github.com/psycopg/psycopg) | `3.2.6` | `3.2.10` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.0` | `3.2.4` |\n| [python-jose[cryptography]](https://github.com/mpdavis/python-jose) | `3.4.0` | `3.5.0` |\n| [dependency-injector](https://github.com/ets-labs/python-dependency-injector) | `4.46.0` | `4.48.2` |\n| [black](https://github.com/psf/black) | `25.1.0` | `25.9.0` |\n| [flake8](https://github.com/pycqa/flake8) | `7.2.0` | `7.3.0` |\n| [flake8-import-order](https://github.com/PyCQA/flake8-import-order) | `0.18.2` | `0.19.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `8.4.2` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.26.0` | `1.2.0` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.1.1` | `7.0.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.3.0` |\n| [yamllint](https://github.com/adrienverge/yamllint) | `1.37.0` | `1.37.1` |\n\n\nUpdates `fastapi` from 0.115.12 to 0.117.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.117.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix validation error when \u003ccode\u003eFile\u003c/code\u003e is declared after \u003ccode\u003eForm\u003c/code\u003e parameter. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/11194\"\u003e#11194\u003c/a\u003e by \u003ca href=\"https://github.com/thomasleveil\"\u003e\u003ccode\u003e@​thomasleveil\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.117.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨  Allow \u003ccode\u003eNone\u003c/code\u003e as return type for bodiless responses. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/9425\"\u003e#9425\u003c/a\u003e by \u003ca href=\"https://github.com/hofrob\"\u003e\u003ccode\u003e@​hofrob\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Allow array values for OpenAPI schema \u003ccode\u003etype\u003c/code\u003e field. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13639\"\u003e#13639\u003c/a\u003e by \u003ca href=\"https://github.com/sammasak\"\u003e\u003ccode\u003e@​sammasak\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add OpenAPI \u003ccode\u003eexternal_docs\u003c/code\u003e parameter to \u003ccode\u003eFastAPI\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13713\"\u003e#13713\u003c/a\u003e by \u003ca href=\"https://github.com/cmtoro\"\u003e\u003ccode\u003e@​cmtoro\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⚡️ Fix \u003ccode\u003edefault_factory\u003c/code\u003e for response model field with Pydantic V1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/9704\"\u003e#9704\u003c/a\u003e by \u003ca href=\"https://github.com/vvanglro\"\u003e\u003ccode\u003e@​vvanglro\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix inconsistent processing of model docstring formfeed char with Pydantic V1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/6039\"\u003e#6039\u003c/a\u003e by \u003ca href=\"https://github.com/MaxwellPayne\"\u003e\u003ccode\u003e@​MaxwellPayne\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003ejsonable_encoder\u003c/code\u003e alters \u003ccode\u003ejson_encoders\u003c/code\u003e of Pydantic v1 objects. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/4972\"\u003e#4972\u003c/a\u003e by \u003ca href=\"https://github.com/aboubacs\"\u003e\u003ccode\u003e@​aboubacs\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Reenable \u003ccode\u003eallow_arbitrary_types\u003c/code\u003e when only 1 argument is used on the API endpoint. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13694\"\u003e#13694\u003c/a\u003e by \u003ca href=\"https://github.com/rmawatson\"\u003e\u003ccode\u003e@​rmawatson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003einspect.getcoroutinefunction()\u003c/code\u003e can break testing with \u003ccode\u003eunittest.mock.patch()\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14022\"\u003e#14022\u003c/a\u003e by \u003ca href=\"https://github.com/secrett2633\"\u003e\u003ccode\u003e@​secrett2633\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Create \u003ccode\u003edependency-cache\u003c/code\u003e dict in \u003ccode\u003esolve_dependencies\u003c/code\u003e only if \u003ccode\u003eNone\u003c/code\u003e (don't re-create if empty). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13689\"\u003e#13689\u003c/a\u003e by \u003ca href=\"https://github.com/bokshitsky\"\u003e\u003ccode\u003e@​bokshitsky\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✅ Enable test case for duplicated headers in \u003ccode\u003etest_tutorial/test_header_params/test_tutorial003.py\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13864\"\u003e#13864\u003c/a\u003e by \u003ca href=\"https://github.com/Amogha-ark\"\u003e\u003ccode\u003e@​Amogha-ark\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📌 Pin \u003ccode\u003ehttpx\u003c/code\u003e to \u003ccode\u003e\u0026gt;=0.23.0,\u0026lt;1.0.0\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14086\"\u003e#14086\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add note about Cookies and JavaScript on \u003ccode\u003etutorial/cookie-params.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13510\"\u003e#13510\u003c/a\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Remove outdated formatting from \u003ccode\u003epath-params-numeric-validations.md\u003c/code\u003e for languages \u003ccode\u003een\u003c/code\u003e, \u003ccode\u003ees\u003c/code\u003e and \u003ccode\u003euk\u003c/code\u003e.. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14059\"\u003e#14059\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix and Improve English Documentation. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14048\"\u003e#14048\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update prompts and German translation. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14015\"\u003e#14015\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Simplify tests for response_model. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14062\"\u003e#14062\u003c/a\u003e by \u003ca href=\"https://github.com/dynamicy\"\u003e\u003ccode\u003e@​dynamicy\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🚨 Install pydantic.mypy plugin. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14081\"\u003e#14081\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✅ Add LLM test file. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14049\"\u003e#14049\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Update translations script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13968\"\u003e#13968\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🛠️ Update \u003ccode\u003edocs.py generate-readme\u003c/code\u003e command to remove permalinks from headers. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14055\"\u003e#14055\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆️ Update mypy to 1.14.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/12970\"\u003e#12970\u003c/a\u003e by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.116.2\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Upgrade Starlette supported version range to \u0026gt;=0.40.0,\u0026lt;0.49.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14077\"\u003e#14077\u003c/a\u003e by \u003ca href=\"https://github.com/musicinmybrain\"\u003e\u003ccode\u003e@​musicinmybrain\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/784f06cb9b7cc63f6a0cb2bc9cf238473eef93e2\"\u003e\u003ccode\u003e784f06c\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.117.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b5c05893b4c43c93ff94761270ea750c0bd9e30e\"\u003e\u003ccode\u003eb5c0589\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/44fc67632bcdae4d078cb11b1a319ac122cbb06f\"\u003e\u003ccode\u003e44fc676\u003c/code\u003e\u003c/a\u003e 🐛 Fix validation error when \u003ccode\u003eFile\u003c/code\u003e is declared after \u003ccode\u003eForm\u003c/code\u003e parameter (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/11194\"\u003e#11194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/a84001000e59ff362e74f93b8d9a58a4309dac2d\"\u003e\u003ccode\u003ea840010\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/382d083e26a28e95c731e85345c85c6dc99b08b4\"\u003e\u003ccode\u003e382d083\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.117.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/a7f2dbe976bf72703376f0cd04487bfc4a849f83\"\u003e\u003ccode\u003ea7f2dbe\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/f1e6f978ce10a6f9b4c668350a79462e9ac330a8\"\u003e\u003ccode\u003ef1e6f97\u003c/code\u003e\u003c/a\u003e ⚡️ Fix \u003ccode\u003edefault_factory\u003c/code\u003e for response model field with Pydantic V1 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/9704\"\u003e#9704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b01d5c97a09b8f4f95b9e9b0d6bc083a23cdea20\"\u003e\u003ccode\u003eb01d5c9\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b51ec36f2e442495de5e4c22ae51a8f5c44917eb\"\u003e\u003ccode\u003eb51ec36\u003c/code\u003e\u003c/a\u003e ✨  Allow \u003ccode\u003eNone\u003c/code\u003e as return type for bodiless responses (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/9425\"\u003e#9425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/0bdc3ca3732e3742e094bea2b320e9774659ac38\"\u003e\u003ccode\u003e0bdc3ca\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.115.12...0.117.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.34.2 to 0.36.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.36.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport custom IOLOOPs by \u003ca href=\"https://github.com/gnir-work\"\u003e\u003ccode\u003e@​gnir-work\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2435\"\u003eKludex/uvicorn#2435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow to provide importable string in \u003ccode\u003e--http\u003c/code\u003e, \u003ccode\u003e--ws\u003c/code\u003e and \u003ccode\u003e--loop\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2658\"\u003eKludex/uvicorn#2658\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eNew Contributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gnir-work\"\u003e\u003ccode\u003e@​gnir-work\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2435\"\u003eKludex/uvicorn#2435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/musicinmybrain\"\u003e\u003ccode\u003e@​musicinmybrain\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2659\"\u003eKludex/uvicorn#2659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/secrett2633\"\u003e\u003ccode\u003e@​secrett2633\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2684\"\u003eKludex/uvicorn#2684\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.35.0...0.36.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.35.0...0.36.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.35.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eWebSocketsSansIOProtocol\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2540\"\u003eencode/uvicorn#2540\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefine help message for option \u003ccode\u003e--proxy-headers\u003c/code\u003e by \u003ca href=\"https://github.com/zhangyoufu\"\u003e\u003ccode\u003e@​zhangyoufu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2653\"\u003eencode/uvicorn#2653\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zhangyoufu\"\u003e\u003ccode\u003e@​zhangyoufu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2653\"\u003eencode/uvicorn#2653\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/uvicorn/compare/0.34.3...0.35.0\"\u003ehttps://github.com/encode/uvicorn/compare/0.34.3...0.35.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.34.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDon't include \u003ccode\u003ecwd()\u003c/code\u003e when non-empty \u003ccode\u003e--reload-dirs\u003c/code\u003e is passed by \u003ca href=\"https://github.com/stinovlas\"\u003e\u003ccode\u003e@​stinovlas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2598\"\u003eencode/uvicorn#2598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApply \u003ccode\u003eget_client_addr\u003c/code\u003e formatting to WebSocket logging by \u003ca href=\"https://github.com/Harry-Lees\"\u003e\u003ccode\u003e@​Harry-Lees\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2636\"\u003eencode/uvicorn#2636\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: improve type hints by \u003ca href=\"https://github.com/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2638\"\u003eencode/uvicorn#2638\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stinovlas\"\u003e\u003ccode\u003e@​stinovlas\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2598\"\u003eencode/uvicorn#2598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LifeLex\"\u003e\u003ccode\u003e@​LifeLex\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2621\"\u003eencode/uvicorn#2621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Harry-Lees\"\u003e\u003ccode\u003e@​Harry-Lees\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2636\"\u003eencode/uvicorn#2636\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2638\"\u003eencode/uvicorn#2638\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/uvicorn/compare/0.34.2...0.34.3\"\u003ehttps://github.com/encode/uvicorn/compare/0.34.2...0.34.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.36.0 (September 20, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport custom IOLOOPs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2435\"\u003e#2435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow to provide importable string in \u003ccode\u003e--http\u003c/code\u003e, \u003ccode\u003e--ws\u003c/code\u003e and \u003ccode\u003e--loop\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2658\"\u003e#2658\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.35.0 (June 28, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eWebSocketsSansIOProtocol\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2540\"\u003e#2540\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefine help message for option \u003ccode\u003e--proxy-headers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2653\"\u003e#2653\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.34.3 (June 1, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't include \u003ccode\u003ecwd()\u003c/code\u003e when non-empty \u003ccode\u003e--reload-dirs\u003c/code\u003e is passed (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2598\"\u003e#2598\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eApply \u003ccode\u003eget_client_addr\u003c/code\u003e formatting to WebSocket logging (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2636\"\u003e#2636\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0e3b18c39959ad4ec8bfe6cb7e11c82664aaa702\"\u003e\u003ccode\u003e0e3b18c\u003c/code\u003e\u003c/a\u003e Version 0.36.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2704\"\u003e#2704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/f84661d56eb14bbd29b995af8774c73856e3ce04\"\u003e\u003ccode\u003ef84661d\u003c/code\u003e\u003c/a\u003e chore: drop mention to scripts/publish (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2696\"\u003e#2696\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/dcd7e6c94e87b6ffbce378e4ada3d67654af975d\"\u003e\u003ccode\u003edcd7e6c\u003c/code\u003e\u003c/a\u003e docs: replace uvicorn.org by uvicorn.dev (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2703\"\u003e#2703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/e5e7344a2554a0e4cd2f942c8699289edaf7b220\"\u003e\u003ccode\u003ee5e7344\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 6.6.1 to 6.7.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2701\"\u003e#2701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/b40c4288c7283e3568642fa9e0c330f45ce5020d\"\u003e\u003ccode\u003eb40c428\u003c/code\u003e\u003c/a\u003e docs: add docs to uvicorn.dev (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2702\"\u003e#2702\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/dca6b1c529f2727ebb451726a69680c8dab06b9d\"\u003e\u003ccode\u003edca6b1c\u003c/code\u003e\u003c/a\u003e ci: update dependabot ecosystem from pip to uv (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2700\"\u003e#2700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/fe50e5d9933fc09c347b991d6376c02ada3f0f21\"\u003e\u003ccode\u003efe50e5d\u003c/code\u003e\u003c/a\u003e Add Marcelo Trylesinski to the license (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2699\"\u003e#2699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d41737158f9f1dec770f7e1607de000b546d41dd\"\u003e\u003ccode\u003ed417371\u003c/code\u003e\u003c/a\u003e ci: publish docs on \u003ccode\u003eworkflow_dispatch\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2695\"\u003e#2695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/bf337d62d5d645bd00f25777fd0740158814d2ed\"\u003e\u003ccode\u003ebf337d6\u003c/code\u003e\u003c/a\u003e Use uv instead of plain pip (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2693\"\u003e#2693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/ea9e01e3b06ad149e099de4d172abedf722fd971\"\u003e\u003ccode\u003eea9e01e\u003c/code\u003e\u003c/a\u003e chore: rename pipeline file to match starlette (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2692\"\u003e#2692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.34.2...0.36.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.1.0 to 1.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure find_dotenv work reliably on python 3.13 by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003etheskumar/python-dotenv#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(cli): issue with execvpe on Windows by \u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.1.1] - 2025-06-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCLI: Ensure \u003ccode\u003efind_dotenv\u003c/code\u003e work reliably on python 3.13 by [\u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003e#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI: revert the use of execvpe on Windows by [\u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003e#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/16e660d384b942b11879b44500afbbe021650448\"\u003e\u003ccode\u003e16e660d\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.0 → 1.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/667e82f18d6e5306894c8746c46b1da2d031bd23\"\u003e\u003ccode\u003e667e82f\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/9d85edb3b8652de4601f9ad8a7a49ad9909f898a\"\u003e\u003ccode\u003e9d85edb\u003c/code\u003e\u003c/a\u003e fix(cli): issue with execvpe on Windows (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/566\"\u003e#566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8411987b9301f716245074872afa30646e9b9eb7\"\u003e\u003ccode\u003e8411987\u003c/code\u003e\u003c/a\u003e fix: ensure find_dotenv work reliably on python 3.13 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/563\"\u003e#563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/01f899733de664cda0550207067eb36a1795062f\"\u003e\u003ccode\u003e01f8997\u003c/code\u003e\u003c/a\u003e docs update\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `atlassian-python-api` from 4.0.3 to 4.0.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/releases\"\u003eatlassian-python-api's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.0.7: Bugfix release notes\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSearch endpoint for Jira DC isn't working with /search/jql by \u003ca href=\"https://github.com/FallenAtticus\"\u003e\u003ccode\u003e@​FallenAtticus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1571\"\u003eatlassian-api/atlassian-python-api#1571\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FallenAtticus\"\u003e\u003ccode\u003e@​FallenAtticus\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1571\"\u003eatlassian-api/atlassian-python-api#1571\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/compare/4.0.6...4.0.7\"\u003ehttps://github.com/atlassian-api/atlassian-python-api/compare/4.0.6...4.0.7\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.6: Confluence, Jira Cloud and BB\u003c/h2\u003e\n\u003cp\u003eHi!\nin that path release, adjustments for Confluence, Jira Cloud and Bitbucket\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/a32f6d1f23e3ed9635660554d783e6a2fab72b7d\"\u003eConfluence: get_all_pages_from_space add workaround\u003c/a\u003e \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1547\"\u003eatlassian-api/atlassian-python-api#1547\u003c/a\u003e\n\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/eebf86ec8cc26dfb9299dc70e33d6b4a60e78eda\"\u003eBitbucket: Add AppUser enrollments for User class appears\u003c/a\u003e \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1570\"\u003eatlassian-api/atlassian-python-api#1570\u003c/a\u003e\n[Jira Cloud]: adjustment of jql search](\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/b090c2e9da7de45ab3607a83d4d112e33307fdd2\"\u003ehttps://github.com/atlassian-api/atlassian-python-api/commit/b090c2e9da7de45ab3607a83d4d112e33307fdd2\u003c/a\u003e)\n\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/compare/4.0.5...4.0.6\"\u003ehttps://github.com/atlassian-api/atlassian-python-api/compare/4.0.5...4.0.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.5 Confluence next step for cloud, BB and Jira bugfixes\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Confluence]: Prepare dedicated module by \u003ca href=\"https://github.com/gonchik\"\u003e\u003ccode\u003e@​gonchik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1537\"\u003eatlassian-api/atlassian-python-api#1537\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: add an example to jira_add_comment.py by \u003ca href=\"https://github.com/dunterov\"\u003e\u003ccode\u003e@​dunterov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1540\"\u003eatlassian-api/atlassian-python-api#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Bitbucket] Adding filterText REST parameter for Get pull requests for by \u003ca href=\"https://github.com/thopx14\"\u003e\u003ccode\u003e@​thopx14\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1542\"\u003eatlassian-api/atlassian-python-api#1542\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVisualization for the atlassian-python-api codebase by \u003ca href=\"https://github.com/ivanmilevtues\"\u003e\u003ccode\u003e@​ivanmilevtues\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1543\"\u003eatlassian-api/atlassian-python-api#1543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Confluence] Sanitize attachment filenames to prevent download failures by \u003ca href=\"https://github.com/AntonioContrerasO\"\u003e\u003ccode\u003e@​AntonioContrerasO\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1549\"\u003eatlassian-api/atlassian-python-api#1549\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Doc] [Jira] Update info about jira.get_issue_tree_recursive method by \u003ca href=\"https://github.com/bore-alex\"\u003e\u003ccode\u003e@​bore-alex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1544\"\u003eatlassian-api/atlassian-python-api#1544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Confluence] Update confluence/\u003cstrong\u003einit\u003c/strong\u003e.py with add space permissions by \u003ca href=\"https://github.com/neyrat-salvator\"\u003e\u003ccode\u003e@​neyrat-salvator\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1557\"\u003eatlassian-api/atlassian-python-api#1557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Wrapper ]Update errors.py for JSON-RPC Errors by \u003ca href=\"https://github.com/neyrat-salvator\"\u003e\u003ccode\u003e@​neyrat-salvator\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1564\"\u003eatlassian-api/atlassian-python-api#1564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate license identifier by \u003ca href=\"https://github.com/leifdreizler\"\u003e\u003ccode\u003e@​leifdreizler\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1563\"\u003eatlassian-api/atlassian-python-api#1563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake using session the default by \u003ca href=\"https://github.com/Matthew-Jenkins\"\u003e\u003ccode\u003e@​Matthew-Jenkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1566\"\u003eatlassian-api/atlassian-python-api#1566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Jira] Update jira.py by adding set_issue_status_by_transition_name by \u003ca href=\"https://github.com/neyrat-salvator\"\u003e\u003ccode\u003e@​neyrat-salvator\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1567\"\u003eatlassian-api/atlassian-python-api#1567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Bitbucket] Added Download class to retrieve pipeline-generated artifacts by \u003ca href=\"https://github.com/denisab85\"\u003e\u003ccode\u003e@​denisab85\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1551\"\u003eatlassian-api/atlassian-python-api#1551\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thopx14\"\u003e\u003ccode\u003e@​thopx14\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1542\"\u003eatlassian-api/atlassian-python-api#1542\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ivanmilevtues\"\u003e\u003ccode\u003e@​ivanmilevtues\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1543\"\u003eatlassian-api/atlassian-python-api#1543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AntonioContrerasO\"\u003e\u003ccode\u003e@​AntonioContrerasO\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1549\"\u003eatlassian-api/atlassian-python-api#1549\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bore-alex\"\u003e\u003ccode\u003e@​bore-alex\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1544\"\u003eatlassian-api/atlassian-python-api#1544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/neyrat-salvator\"\u003e\u003ccode\u003e@​neyrat-salvator\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1557\"\u003eatlassian-api/atlassian-python-api#1557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/leifdreizler\"\u003e\u003ccode\u003e@​leifdreizler\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1563\"\u003eatlassian-api/atlassian-python-api#1563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Matthew-Jenkins\"\u003e\u003ccode\u003e@​Matthew-Jenkins\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1566\"\u003eatlassian-api/atlassian-python-api#1566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denisab85\"\u003e\u003ccode\u003e@​denisab85\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1551\"\u003eatlassian-api/atlassian-python-api#1551\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/compare/4.0.4...4.0.5\"\u003ehttps://github.com/atlassian-api/atlassian-python-api/compare/4.0.4...4.0.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.4 : BB, Confluence, Jira\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/412f6b37bced32b184c2166cba0b8d306bac63bb\"\u003e\u003ccode\u003e412f6b3\u003c/code\u003e\u003c/a\u003e Jira: Clarification for cloud create searcher field \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1552\"\u003e#1552\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/d16700a1831a6f1d61a9347cdf38e3ec1d7108bd\"\u003e\u003ccode\u003ed16700a\u003c/code\u003e\u003c/a\u003e rollback changes with session and fix typo in condition\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/d224880e3e6ce42d2107f7c4e1334463027a5e6d\"\u003e\u003ccode\u003ed224880\u003c/code\u003e\u003c/a\u003e Update jira.py (\u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1571\"\u003e#1571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/a32f6d1f23e3ed9635660554d783e6a2fab72b7d\"\u003e\u003ccode\u003ea32f6d1\u003c/code\u003e\u003c/a\u003e Confluence: get_all_pages_from_space add workaround \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1547\"\u003e#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/eebf86ec8cc26dfb9299dc70e33d6b4a60e78eda\"\u003e\u003ccode\u003eeebf86e\u003c/code\u003e\u003c/a\u003e Bitbucket: Add AppUser enrollments for User class appears \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1570\"\u003e#1570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/b090c2e9da7de45ab3607a83d4d112e33307fdd2\"\u003e\u003ccode\u003eb090c2e\u003c/code\u003e\u003c/a\u003e Jira Cloud: adjustment of jql search\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/46239bd80e8c6ad3eb9f7637543291ba997a4c7c\"\u003e\u003ccode\u003e46239bd\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1570\"\u003e#1570\u003c/a\u003e Workaround of traceback\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/a1b2f5c26ef3b4cc1d9b3ebe0e6ff29e1af9c111\"\u003e\u003ccode\u003ea1b2f5c\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1568\"\u003e#1568\u003c/a\u003e Add doc of create_issue method\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/c98bb64cf717f77e7be012d089804c11d3c779ef\"\u003e\u003ccode\u003ec98bb64\u003c/code\u003e\u003c/a\u003e Fix build and adjust imports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/5c5ff35706c4f7291b149020072409168e47cc0c\"\u003e\u003ccode\u003e5c5ff35\u003c/code\u003e\u003c/a\u003e [Bitbucket] Added Download class to retrieve pipeline-generated artifacts (Cl...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/compare/4.0.3...4.0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 2.2.3 to 2.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePandas 2.3.2\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.2.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3/whatsnew/v2.3.2.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.2 supports Python 3.9 and higher.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install --upgrade pandas\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003ePandas 2.3.1\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.1.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3.1/whatsnew/v2.3.1.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.1 supports Python 3.9 and higher.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install --upgrade pandas\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003ePandas 2.3.0\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.0.\nThis release includes some new features, bug fixes, and performance improvements. We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3.0/whatsnew/v2.3.0.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.0 supports Python 3.10 and higher.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the defaults and conda-forge channels:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4665c10899bc413b639194f6fb8665a5c70f7db5\"\u003e\u003ccode\u003e4665c10\u003c/code\u003e\u003c/a\u003e RLS: 2.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/633c68b91808441eba7d73b630a82b713ba19da8\"\u003e\u003ccode\u003e633c68b\u003c/code\u003e\u003c/a\u003e DOC: fix syntax in whatsnew file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/456ad4702cb017aab36e2d09a4029b1b085198f5\"\u003e\u003ccode\u003e456ad47\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62152\"\u003e#62152\u003c/a\u003e on branch 2.3.x (DOC: prepare 2.3.2 whatsnew notes for rel...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/6cae6444444ed7943ceffbd5990cd8249dd5b47c\"\u003e\u003ccode\u003e6cae644\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] DOC: move and reword whatsnew note for replace fix (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/57865\"\u003eGH-57865\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/a91c50a58c372cddf104fd60241c7284bbf8fc80\"\u003e\u003ccode\u003ea91c50a\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62147\"\u003e#62147\u003c/a\u003e on branch 2.3.x (DOC: correct and rewrite string migration...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f7a2cfdf2ed08016167ae6c5e577c54949a849b2\"\u003e\u003ccode\u003ef7a2cfd\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG/DEPR: logical operation with bool and string (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/61995\"\u003e#61995\u003c/a\u003e) (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/7981a43db4339826a3ce5020e9b1b931e604e5bd\"\u003e\u003ccode\u003e7981a43\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62124\"\u003e#62124\u003c/a\u003e on branch 2.3.x (CI/BLD: don't use strict xfail for '%m.%Y...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/fafbcbd03d1721830f4df8255abdab341db2a583\"\u003e\u003ccode\u003efafbcbd\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG(CoW): also raise for chained assignment for .at / .iat (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3ac64a714886d917ca24ba637a85c4aaf563fc1b\"\u003e\u003ccode\u003e3ac64a7\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG: Fix Series.str.contains with compiled regex on Arrow st...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/1f2dc4fd8a2503773b6f90cb5e8cc5c3172c3c11\"\u003e\u003ccode\u003e1f2dc4f\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG: fix Series.str.fullmatch() and Series.str.match() with ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v2.2.3...v2.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyarrow` from 19.0.1 to 21.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/arrow/releases\"\u003epyarrow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Arrow 21.0.0\u003c/h2\u003e\n\u003cp\u003eRelease Notes URL: \u003ca href=\"https://arrow.apache.org/release/21.0.0.html\"\u003ehttps://arrow.apache.org/release/21.0.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eApache Arrow 21.0.0 RC6\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 21.0.0 RC6\u003c/p\u003e\n\u003ch2\u003eApache Arrow 21.0.0 RC5\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 21.0.0 RC5\u003c/p\u003e\n\u003ch2\u003eApache Arrow 21.0.0 RC4\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 21.0.0 RC4\u003c/p\u003e\n\u003ch2\u003eApache Arrow 21.0.0 RC3\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 21.0.0 RC3\u003c/p\u003e\n\u003ch2\u003eApache Arrow 21.0.0 RC2\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 21.0.0 RC2\u003c/p\u003e\n\u003ch2\u003eApache Arrow 20.0.0\u003c/h2\u003e\n\u003cp\u003eRelease Notes URL: \u003ca href=\"https://arrow.apache.org/release/20.0.0.html\"\u003ehttps://arrow.apache.org/release/20.0.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eApache Arrow 20.0.0 RC2\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 20.0.0 RC2\u003c/p\u003e\n\u003ch2\u003eApache Arrow 20.0.0 RC1\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 20.0.0 RC1\u003c/p\u003e\n\u003ch2\u003eApache Arrow 20.0.0 RC0\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 20.0.0 RC0\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/ee4d09ebef61c663c1efbfa4c18e518a03b798be\"\u003e\u003ccode\u003eee4d09e\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update versions for 21.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/f13a5796008e3a5e546af1a7b2be0fbd3c148c26\"\u003e\u003ccode\u003ef13a579\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update .deb/.rpm changelogs for 21.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/6fd2a167e0ed74dbe4c059e579a561fcc2aae11f\"\u003e\u003ccode\u003e6fd2a16\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update CHANGELOG.md for 21.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/cf261bf58ae74a1f7fa99d81c201ca8e1d679c9b\"\u003e\u003ccode\u003ecf261bf\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47078\"\u003eGH-47078\u003c/a\u003e: [Release] Ensure using cloned apache/arrow for reproducible check (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/ddbc3dc005dfdde5a79d42cb5953190479b12b73\"\u003e\u003ccode\u003eddbc3dc\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47074\"\u003eGH-47074\u003c/a\u003e: [Release] Use reproducible mtime for csharp/ in source archive (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47\"\u003e#47\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/0534eb2d279f445ac67b99a22eca344484749b6f\"\u003e\u003ccode\u003e0534eb2\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47071\"\u003eGH-47071\u003c/a\u003e: [Release] Dereference all hard links in source archive (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47072\"\u003e#47072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/f845b4184664aee522f7fd73864d3093e84b6580\"\u003e\u003ccode\u003ef845b41\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47069\"\u003eGH-47069\u003c/a\u003e: [Release] Add missing \u0026quot;needs: target\u0026quot; (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47070\"\u003e#47070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/1c08f8ee6947bd2a9bffb441af946c6a7373015b\"\u003e\u003ccode\u003e1c08f8e\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47067\"\u003eGH-47067\u003c/a\u003e: [Release] Fix wrong GitHub Actions context in verify_rc.yml (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47068\"\u003e#47068\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/70e5c51e6d5de1ca6f669b47ff0b98e1075336d0\"\u003e\u003ccode\u003e70e5c51\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47065\"\u003eGH-47065\u003c/a\u003e: [Release] Fix timeout key in verify_rc.yml (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47066\"\u003e#47066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/254a85c8bddb52eef03d623882836717f027061d\"\u003e\u003ccode\u003e254a85c\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47063\"\u003eGH-47063\u003c/a\u003e: [Release] Define missing RELEASE_TARBALL (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47064\"\u003e#47064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/arrow/compare/apache-arrow-19.0.1...apache-arrow-21.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.11.3 to 2.11.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.9 2025-09-13\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBackport v1.10.23 changes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.8...v2.11.9\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.11.8...v2.11.9\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.8 2025-09-13\u003c/h2\u003e\n\u003ch2\u003ev2.11.8 (2025-09-13)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix mypy plugin for mypy 1.18 by \u003ca href=\"https://github.com/cdce8p\"\u003e\u003ccode\u003e@​cdce8p\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12209\"\u003e#12209\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.7...v2.11.8\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.11.7...v2.11.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.7 2025-06-14\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCopy \u003ccode\u003eFieldInfo\u003c/code\u003e instance if necessary during \u003ccode\u003eFieldInfo\u003c/code\u003e build by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11980\"\u003epydantic/pydantic#11980\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.6...v2.11.7\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.11.6...v2.11.7\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.6 2025-06-13\u003c/h2\u003e\n\u003ch2\u003ev2.11.6 (2025-06-13)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRebuild dataclass fields before schema generation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11949\"\u003e#11949\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlways store the original field assignment on \u003ccode\u003eFieldInfo\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11946\"\u003e#11946\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.5...v2.11.6\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.11.5...v2.11.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.5 2025-05-22\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCheck if \u003ccode\u003eFieldInfo\u003c/code\u003e is complete after applying type variable map by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11855\"\u003e#11855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not delete mock validator/serializer in \u003ccode\u003emodel_rebuild()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11890\"\u003e#11890\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not duplicate metadata on model rebuild by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11902\"\u003e#11902\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.11.9/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.9 (2025-09-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.11.9\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBackport v1.10.23 changes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.11.8 (2025-09-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.11.8\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix mypy plugin for mypy 1.18 by \u003ca href=\"https://github.com/cdce8p\"\u003e\u003ccode\u003e@​cdce8p\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12209\"\u003e#12209\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.11.7 (2025-06-14)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.11.7\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCopy \u003ccode\u003eFieldInfo\u003c/code\u003e instance if necessary during \u003ccode\u003eFieldInfo\u003c/code\u003e build by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11898\"\u003e#11898\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.11.6 (2025-06-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.11.6\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRebuild dataclass fields before schema generation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11949\"\u003e#11949\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlways store the original field assignment on \u003ccode\u003eFieldInfo\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11946\"\u003e#11946\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.11.5 (2025-05-22)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.11.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCheck if \u003ccode\u003eFieldInfo\u003c/code\u003e is complete after applying type variable map by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11855\"\u003e#11855\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/92310953c146a2ac668a0141be820c083e325f5d\"\u003e\u003ccode\u003e9231095\u003c/code\u003e\u003c/a\u003e Prepare release v2.11.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f003a89eeaff35ee18f220a2c790d20536e3d0ab\"\u003e\u003ccode\u003ef003a89\u003c/code\u003e\u003c/a\u003e Backport v1.10.23 changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/96b81ddaf93a1f2e19ff1609080c33de10b8d931\"\u003e\u003ccode\u003e96b81dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.11.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/966f377692194b3f1d6d5155ac78052bec0a751d\"\u003e\u003ccode\u003e966f377\u003c/code\u003e\u003c/a\u003e Fix mypy v2 plugin for upcoming \u003ccode\u003e1.18\u003c/code\u003e mypy release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5f033e46c54fea1b59b6894d6527daf49475e690\"\u003e\u003ccode\u003e5f033e4\u003c/code\u003e\u003c/a\u003e Prepare release v2.11.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c3368b83c411f421a7322959bc29f3bea4bd252a\"\u003e\u003ccode\u003ec3368b8\u003c/code\u003e\u003c/a\u003e Copy \u003ccode\u003eFieldInfo\u003c/code\u003e instance if necessary during \u003ccode\u003eFieldInfo\u003c/code\u003e build (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/11980\"\u003e#11980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/3987b23db4b31ff35e9fa15c21c0c1d1c9808838\"\u003e\u003ccode\u003e3987b23\u003c/code\u003e\u003c/a\u003e Prepare release v2.11.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/dc7a9d20bee55a3a6e7397ee46abfcd9057b627b\"\u003e\u003ccode\u003edc7a9d2\u003c/code\u003e\u003c/a\u003e Always store the original field assignment on \u003ccode\u003eFieldInfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c284c279a5b8c95d32ab5ec31d2511b3b27bfa87\"\u003e\u003ccode\u003ec284c27\u003c/code\u003e\u003c/a\u003e Rebuild dataclass fields before schema generation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5e6d1dc71fe9bd832635cb2e9b4af92286fd00b8\"\u003e\u003ccode\u003e5e6d1dc\u003c/code\u003e\u003c/a\u003e Prepare release v2.11.5\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.3...v2.11.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.9.1 to 2.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.10.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix UnboundLocalError error in _replace_field_names_case_insensitively by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/639\"\u003epydantic/pydantic-settings#639\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unknown file reference in documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/640\"\u003epydantic/pydantic-settings#640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.10.1 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/642\"\u003epydantic/pydantic-settings#642\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/2.10.0...2.10.1\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/2.10.0...2.10.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix running tests when azure-keyvault-secrets is not installed by \u003ca href=\"https://github.com/CyberTailor\"\u003e\u003ccode\u003e@​CyberTailor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/601\"\u003epydantic/pydantic-settings#601\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix running tests when google-cloud-secret-manager is not installed by \u003ca href=\"https://github.com/CyberTailor\"\u003e\u003ccode\u003e@​CyberTailor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/602\"\u003epydantic/pydantic-settings#602\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport loading a specific nested key from YAML in YamlConfigSettingsSource by \u003ca href=\"https://github.com/Seunghan-Jung\"\u003e\u003ccode\u003e@​Seunghan-Jung\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/603\"\u003epydantic/pydantic-settings#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI suppression for model group help by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/604\"\u003epydantic/pydantic-settings#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing DEFAULT_PATH import by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/606\"\u003epydantic/pydantic-settings#606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix case-insensitive handling of nested aliases in EnvironmentSettingsSource by \u003ca href=\"https://github.com/d15ky\"\u003e\u003ccode\u003e@​d15ky\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/608\"\u003epydantic/pydantic-settings#608\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAzure Key Vault case insensitive support and dash-underscore translation by \u003ca href=\"https://github.com/d15ky\"\u003e\u003ccode\u003e@​d15ky\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/607\"\u003epydantic/pydantic-settings#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect 'cli_parse_args' from model_config with settings_customise_sources by \u003ca href=\"https://github.com/karta9821\"\u003e\u003ccode\u003e@​karta9821\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/611\"\u003epydantic/pydantic-settings#611\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/612\"\u003epydantic/pydantic-settings#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate packages by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/613\"\u003epydantic/pydantic-settings#613\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate README.md by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/616\"\u003epydantic/pydantic-settings#616\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI badge by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/617\"\u003epydantic/pydantic-settings#617\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/618\"\u003epydantic/pydantic-settings#618\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix coverage report by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/619\"\u003epydantic/pydantic-settings#619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix _consume_object_or_array on unbalanced brackets in JSON strings by \u003ca href=\"https://github.com/andryak\"\u003e\u003ccode\u003e@​andryak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/621\"\u003epydantic/pydantic-settings#621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd region as a parameter to aws secret manager by \u003ca href=\"https://github.com/barakor-vs\"\u003e\u003ccode\u003e@​barakor-vs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/622\"\u003epydantic/pydantic-settings#622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose GCP Secret Manager case sensitive option by \u003ca href=\"https://github.com/bellmatthewf\"\u003e\u003ccode\u003e@​bellmatthewf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/626\"\u003epydantic/pydantic-settings#626\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate deps by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/633\"\u003epydantic/pydantic-settings#633\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add \u003ccode\u003ecli_shortcuts\u003c/code\u003e to CLI settings by \u003ca href=\"https://github.com/karta9821\"\u003e\u003ccode\u003e@​karta9821\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/624\"\u003epydantic/pydantic-settings#624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose AWS Secrets Manager case sensitive option by \u003ca href=\"https://github.com/femiadebayo\"\u003e\u003ccode\u003e@​femiadebayo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/629\"\u003epydantic/pydantic-settings#629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.10.0 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/635\"\u003epydantic/pydantic-settings#635\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Seunghan-Jung\"\u003e\u003ccode\u003e@​Seunghan-Jung\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/603\"\u003epydantic/pydantic-settings#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/d15ky\"\u003e\u003ccode\u003e@​d15ky\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/608\"\u003epydantic/pydantic-settings#608\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/karta9821\"\u003e\u003ccode\u003e@​karta9821\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/611\"\u003epydantic/pydantic-settings#611\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andryak\"\u003e\u003ccode\u003e@​andryak\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/621\"\u003epydantic/pydantic-settings#621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/barakor-vs\"\u003e\u003ccode\u003e@​barakor-vs\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/622\"\u003epydantic/pydantic-settings#622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bellmatthewf\"\u003e\u003ccode\u003e@​bellmatthewf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/626\"\u003epydantic/pydantic-settings#626\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/femiadebayo\"\u003e\u003ccode\u003e@​femiadebayo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/629\"\u003epydantic/pydantic-settings#629\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.9.1...2.10.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.9.1...2.10.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/6bae3ab4fb321434feca35d120f05509d5c4ac55\"\u003e\u003ccode\u003e6bae3ab\u003c/code\u003e\u003c/a\u003e Prepare release 2.10.1 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/642\"\u003e#642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/36b8bfed902cce5d870fe09688014902d3894cab\"\u003e\u003ccode\u003e36b8bfe\u003c/code\u003e\u003c/a\u003e Remove unknown file reference in documentation (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/640\"\u003e#640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/697aaa621eb184a51e2e2729d8146b5ef4b2b7cc\"\u003e\u003ccode\u003e697aaa6\u003c/code\u003e\u003c/a\u003e Fix UnboundLocalError error in _replace_field_names_case_insensitively (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/639\"\u003e#639\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/910b1b1e0c30af39e10a3703e78b1e5943cde491\"\u003e\u003ccode\u003e910b1b1\u003c/code\u003e\u003c/a\u003e Prepare release 2.10.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/635\"\u003e#635\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/1ee66248adeff298d7f37b08c2dfb07f8562f08e\"\u003e\u003ccode\u003e1ee6624\u003c/code\u003e\u003c/a\u003e Expose AWS Secrets Manager case sensitive option (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/629\"\u003e#629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/180e74e324d8418e22b5dcb196fd6390fa964537\"\u003e\u003ccode\u003e180e74e\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003ecli_shortcuts\u003c/code\u003e to CLI settings (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/624\"\u003e#624\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/e1629080542ffab481030a7a100b820556f2695f\"\u003e\u003ccode\u003ee162908\u003c/code\u003e\u003c/a\u003e Update deps (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/159ef14dc1d299a29992283060d038cf6e6d3b56\"\u003e\u003ccode\u003e159ef14\u003c/code\u003e\u003c/a\u003e Expose GCP Secret Manager case sensitive option (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/626\"\u003e#626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/e9f7994872ebcd7a284d98d0ed501cc314a6a7fa\"\u003e\u003ccode\u003ee9f7994\u003c/code\u003e\u003c/a\u003e add region as a parameter to aws secret manager (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/622\"\u003e#622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/ca4ff9f96fc22396647ab878e5b87458ae0fde2f\"\u003e\u003ccode\u003eca4ff9f\u003c/code\u003e\u003c/a\u003e Fix _consume_object_or_array on unbalanced brackets in JSON strings (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/621\"\u003e#621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.9.1...2.10.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.40 to 2.0.43\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.43\u003c/h1\u003e\n\u003cp\u003eReleased: August 11, 2025\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where using the \u003ccode\u003epost_update\u003c/code\u003e feature would apply incorrect\n\u0026quot;pre-fetched\u0026quot; values to the ORM objects after a multi-row UPDATE process\ncompleted.  These \u0026quot;pre-fetched\u0026quot; values would come from any column that had\nan \u003ccode\u003eColumn.onupdate\u003c/code\u003e callable or a version id generator used by\n\u003ccode\u003eorm.Mapper.version_id_generator\u003c/code\u003e; for a version id generator\nthat delivered random identifiers like timestamps or UUIDs, this incorrect\ndata would lead to a DELETE statement against those same rows to fail in\nthe next step.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12748\"\u003e#12748\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where \u003ccode\u003e_orm.mapped_column.use_existing_column\u003c/code\u003e\nparameter in \u003ccode\u003e_orm.mapped_column()\u003c/code\u003e would not work when the\n\u003ccode\u003e_orm.mapped_column()\u003c/code\u003e is used inside of an \u003ccode\u003eAnnotated\u003c/code\u003e type alias in\npolymorphic inheritance scenarios. The parameter is now properly recognized\nand processed during declarative mapping configuration.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12787\"\u003e#12787\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Improved the implementation of the \u003ccode\u003e_orm.selectin_polymorphic()\u003c/code\u003e\ninheritance loader strategy to properly render the IN expressions using\nchunks of 500 records each, in the same manner as that of the\n\u003ccode\u003e_orm.selectinload()\u003c/code\u003e relationship loader strategy.  Previously, the IN\nexpression would be arbitrarily large, leading to failures on databases\nthat have limits on the size of IN expressions including Oracle Database.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12790\"\u003e#12790\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eengine\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[engine] [usecase]\u003c/strong\u003e Added new parameter \u003ccode\u003ecreate_engine.skip_autocommit_rollback\u003c/code\u003e\nwhich provides for a per-dialect feature of preventing the DBAPI\n\u003ccode\u003e.rollback()\u003c/code\u003e from being called under any circumstances, if the\nconnection is detected as being in \u0026quot;autocommit\u0026quot; mode.   This improves upon\na critical performance issue identified in MySQL dialects where the network\noverhead of the \u003ccode\u003e.rollback()\u003c/code\u003e call remains prohibitive even if autocommit\nmode is set.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12784\"\u003e#12784\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epostgresql\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.15.2 to 1.16.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.16.5\u003c/h1\u003e\n\u003cp\u003eReleased: August 27, 2025\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [mysql]\u003c/strong\u003e Fixed Python-side autogenerate rendering of index expressions in MySQL\ndialect by aligning it with SQLAlchemy's MySQL index expression rules. Pull\nrequest courtesy david-fed.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1492\"\u003e#1492\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [config]\u003c/strong\u003e Fixed issue where new pyproject.toml config would fail to parse the integer\nvalue used for the \u003ccode\u003etruncate_slug_length\u003c/code\u003e parameter.  Pull request\ncourtesy Luís Henrique Allebrandt Schunemann.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1709\"\u003e#1709\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.16.4\u003c/h1\u003e\n\u003cp\u003eReleased: July 10, 2025\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [config]\u003c/strong\u003e Fixed issue in new \u003ccode\u003epyproject.toml\u003c/code\u003e support where boolean values, such as\nthose used for the \u003ccode\u003erecursive_version_locations\u003c/code\u003e and \u003ccode\u003esourceless\u003c/code\u003e\nconfiguration parameters, would not be accepted.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1694\"\u003e#1694\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.16.3\u003c/h1\u003e\n\u003cp\u003eReleased: July 8, 2025\u003c/p\u003e\n\u003ch2\u003eusecase\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [commands]\u003c/strong\u003e Added new \u003ccode\u003epyproject_async\u003c/code\u003e template, combining the new \u003ccode\u003epyproject\u003c/code\u003e\ntemplate with the \u003ccode\u003easync\u003c/code\u003e template.  Pull request courtesy Alc-Alc.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1683\"\u003e#1683\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [autogenerate]\u003c/strong\u003e Add \u0026quot;module\u0026quot; post-write hook. This hook type is almost identical to the\nconsole_scripts hook, except it's running \u003ccode\u003epython -m black\u003c/code\u003e instead of\nusing black's \u003ccode\u003econsole_script\u003c/code\u003e. It is mainly useful for tools without\nconsole scripts (e.g. ruff), but has semantics closer to the\nconsole_scripts hook in that it finds the ruff module available to the\nrunning interpreter instead of finding an executable by path. Pull request\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg` from 3.2.6 to 3.2.10\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg/blob/master/docs/news.rst\"\u003epsycopg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e.. currentmodule:: psycopg\u003c/p\u003e\n\u003cp\u003e.. index::\nsingle: Release notes\nsingle: News\u003c/p\u003e\n\u003ch1\u003e\u003ccode\u003epsycopg\u003c/code\u003e release notes\u003c/h1\u003e\n\u003ch2\u003eFuture releases\u003c/h2\u003e\n\u003cp\u003ePsycopg 3.3.0 (unrelease...\n\n_Description has been truncated_","html_url":"https://github.com/MrReasonable/jira-analyzer/pull/95","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrReasonable%2Fjira-analyzer/issues/95","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/95/packages"},{"uuid":"2847499380","node_id":"PR_kwDOPa_yKc6puWR0","number":12,"state":"closed","title":"build(pip): bump dependency-injector from 4.48.1 to 4.48.2 in /src","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-09-22T16:52:50.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-21T23:08:32.000Z","updated_at":"2025-09-22T16:52:50.000Z","time_to_close":63858,"merged_at":"2025-09-22T16:52:50.000Z","merged_by":"Rubenrod18","closed_by":null,"dependency_metadata":{"prefix":"build(pip)","packages":[{"name":"dependency-injector","old_version":"4.48.1","new_version":"4.48.2","repository_url":"https://github.com/ets-labs/python-dependency-injector"}],"path":"/src","ecosystem":"pip"},"body":"Bumps [dependency-injector](https://github.com/ets-labs/python-dependency-injector) from 4.48.1 to 4.48.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.48.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix grammar in Declarative Container documentation by \u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd warnings for unresolved markers by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\"\u003ehttps://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild ABI3 wheels only for Python\u0026gt;=3.10 by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\"\u003ehttps://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.2\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5a1aef920372da6a95d14865caab10061aea7104\"\u003e\u003ccode\u003e5a1aef9\u003c/code\u003e\u003c/a\u003e Merge branch 'release/4.48.2'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5acddac9c15e87edff76846e8903a3c4552da22b\"\u003e\u003ccode\u003e5acddac\u003c/code\u003e\u003c/a\u003e Add changelog entry for v4.48.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/9f77976a294d7eeda6176610155f1fe0b91eea2d\"\u003e\u003ccode\u003e9f77976\u003c/code\u003e\u003c/a\u003e Fix typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\"\u003e\u003ccode\u003e891f8b4\u003c/code\u003e\u003c/a\u003e Build ABI3 wheels only for Python\u0026gt;=3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/8c2a32213a71c82334d009fbf3ee69dc85221b78\"\u003e\u003ccode\u003e8c2a322\u003c/code\u003e\u003c/a\u003e Add wheels Makefile target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/91a741a6332ba9e0130e3d80b4191b4010f9f726\"\u003e\u003ccode\u003e91a741a\u003c/code\u003e\u003c/a\u003e Bump Cython version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\"\u003e\u003ccode\u003e1222827\u003c/code\u003e\u003c/a\u003e Add warnings for unresolved markers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/759d89e9bdc35f0146361e5ff89fd36e99cc6184\"\u003e\u003ccode\u003e759d89e\u003c/code\u003e\u003c/a\u003e Add reprs to wiring markers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1500a1de364cd97ccebd812a28a9b6f4c344a0ef\"\u003e\u003ccode\u003e1500a1d\u003c/code\u003e\u003c/a\u003e docs(declarative.rst): fix grammar in Declarative Container documentation  (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/7df26d1ac76aabf52f74ce75e5f908ccf28b4898\"\u003e\u003ccode\u003e7df26d1\u003c/code\u003e\u003c/a\u003e docs(declarative.rst): fix grammar in Declarative Container documentation  (#...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=dependency-injector\u0026package-manager=uv\u0026previous-version=4.48.1\u0026new-version=4.48.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/Rubenrod18/cinebooker/pull/12","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rubenrod18%2Fcinebooker/issues/12","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12/packages"}],"issue_packages":[{"old_version":"\u003c5.0.0,\u003e=4.48.1","new_version":"\u003e=4.49.0,\u003c5.0.0","update_type":"minor","path":null,"pr_created_at":"2026-05-11T04:33:51.000Z","version_change":"\u003c5.0.0,\u003e=4.48.1 → \u003e=4.49.0,\u003c5.0.0","issue":{"uuid":"4418087753","node_id":"PR_kwDOPnn26s7aG6Wi","number":4,"state":"open","title":"chore(deps): update dependency-injector requirement from \u003c5.0.0,\u003e=4.48.1 to \u003e=4.49.0,\u003c5.0.0","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-11T04:33:51.000Z","updated_at":"2026-05-11T04:33:52.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): update","packages":[{"name":"dependency-injector","old_version":"\u003c5.0.0,\u003e=4.48.1","new_version":"\u003e=4.49.0,\u003c5.0.0","repository_url":"https://github.com/ets-labs/python-dependency-injector"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [dependency-injector](https://github.com/ets-labs/python-dependency-injector) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.49.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.14 support\u003c/li\u003e\n\u003cli\u003eFix Pydantic v2 deprecation warning triggering on settings class import (fixes \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix grammar in Declarative Container documentation by \u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing warn_unresolved parameter to WiringConfiguration in containers.pyi by \u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd keep_cache argument to Container.wire typings by \u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for some type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/943\"\u003eets-labs/python-dependency-injector#943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for remaining type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/953\"\u003eets-labs/python-dependency-injector#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd provided()\u003c!-- raw HTML omitted --\u003e.call *args, **kwargs arguments \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/945\"\u003e#945\u003c/a\u003e by \u003ca href=\"https://github.com/pavalso\"\u003e\u003ccode\u003e@​pavalso\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/946\"\u003eets-labs/python-dependency-injector#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd context local resource by \u003ca href=\"https://github.com/elina-israyelyan\"\u003e\u003ccode\u003e@​elina-israyelyan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/931\"\u003eets-labs/python-dependency-injector#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI/CD to \u003ccode\u003eactions/checkout@v6\u003c/code\u003e, \u003ccode\u003eactions/setup-python@v6\u003c/code\u003e, \u003ccode\u003eactions/download-artifact@v8\u003c/code\u003e, \u003ccode\u003eactions/upload-artifact@v7\u003c/code\u003e and \u003ccode\u003epypa/cibuildwheel@v3.4.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdd dependabot config for GitHub Actions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pavalso\"\u003e\u003ccode\u003e@​pavalso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/946\"\u003eets-labs/python-dependency-injector#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elina-israyelyan\"\u003e\u003ccode\u003e@​elina-israyelyan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/931\"\u003eets-labs/python-dependency-injector#931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5f7aa1c337c77e782e1e927eb4b1e41a60912604\"\u003e\u003ccode\u003e5f7aa1c\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5863d99bd5e9b2d22c15f3815b23973317a453ee\"\u003e\u003ccode\u003e5863d99\u003c/code\u003e\u003c/a\u003e Add .github/dependabot.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/000c670c7e655cc7db423a76c6b877d185f706ce\"\u003e\u003ccode\u003e000c670\u003c/code\u003e\u003c/a\u003e Upgrade GHA actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/931084070a5304a26a925961375a5afcc3c3a38b\"\u003e\u003ccode\u003e9310840\u003c/code\u003e\u003c/a\u003e Fix iscoroutinefunction import for older Pythons\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/05a5e7d8701a1df8cb88ad55d187ba88cd6ffbe8\"\u003e\u003ccode\u003e05a5e7d\u003c/code\u003e\u003c/a\u003e Fix get_annotations import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/58700d9dbd3420a559330666edfb477418997ff9\"\u003e\u003ccode\u003e58700d9\u003c/code\u003e\u003c/a\u003e Use from import statements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/0e25331738716d5bfa5562d42617deb6ad65d23c\"\u003e\u003ccode\u003e0e25331\u003c/code\u003e\u003c/a\u003e Do not build nogil wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1696986aa7698120a7e2aab2355d93e178fc36f9\"\u003e\u003ccode\u003e1696986\u003c/code\u003e\u003c/a\u003e Python 3.14 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/525935137e81355657e44b454c0f7b19b69fdc7b\"\u003e\u003ccode\u003e5259351\u003c/code\u003e\u003c/a\u003e Add context local resource (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/931\"\u003e#931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/76d5932b7340719eac2b737bd444daacc7bb0682\"\u003e\u003ccode\u003e76d5932\u003c/code\u003e\u003c/a\u003e Add provided()\u0026lt;func\u0026gt;.call *args, **kwargs arguments (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/946\"\u003e#946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.49.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/6ixGODD/modx/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/6ixGODD%2Fmodx/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"}},{"old_version":"4.48.3","new_version":"4.49.0","update_type":"minor","path":null,"pr_created_at":"2026-05-11T01:25:24.000Z","version_change":"4.48.3 → 4.49.0","issue":{"uuid":"4417455638","node_id":"PR_kwDORMFN3c7aE8Yd","number":147,"state":"open","title":"chore(deps): Bump the python-minor-patch group across 1 directory with 41 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-11T01:25:24.000Z","updated_at":"2026-05-11T01:25:35.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"python-minor-patch","update_count":41,"packages":[{"name":"fastapi","old_version":"0.135.1","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.42.0","new_version":"0.46.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"python-multipart","old_version":"0.0.22","new_version":"0.0.28","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"sqlalchemy","old_version":"2.0.48","new_version":"2.0.49","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.13.1","new_version":"2.14.1","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"redis","old_version":"7.3.0","new_version":"7.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"meilisearch","old_version":"0.40.0","new_version":"0.41.0","repository_url":"https://github.com/meilisearch/meilisearch-python"},{"name":"supabase","old_version":"2.28.2","new_version":"2.30.0","repository_url":"https://github.com/supabase/supabase-py"},{"name":"postgrest","old_version":"2.28.2","new_version":"2.30.0","repository_url":"https://github.com/supabase/supabase-py"},{"name":"storage3","old_version":"2.28.2","new_version":"2.30.0","repository_url":"https://github.com/supabase/supabase-py"},{"name":"anthropic","old_version":"0.85.0","new_version":"0.100.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"openai","old_version":"2.28.0","new_version":"2.36.0","repository_url":"https://github.com/openai/openai-python"},{"name":"claude-agent-sdk","old_version":"0.1.48","new_version":"0.1.80","repository_url":"https://github.com/anthropics/claude-agent-sdk-python"},{"name":"dependency-injector","old_version":"4.48.3","new_version":"4.49.0","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"orjson","old_version":"3.11.7","new_version":"3.11.9","repository_url":"https://github.com/ijl/orjson"},{"name":"markdown-it-py","old_version":"4.0.0","new_version":"4.2.0","repository_url":"https://github.com/executablebooks/markdown-it-py"},{"name":"ua-parser","old_version":"1.0.1","new_version":"1.0.2","repository_url":"https://github.com/ua-parser/uap-python"},{"name":"anyio","old_version":"4.12.1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"certifi","old_version":"2026.2.25","new_version":"2026.4.22","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.6","new_version":"3.4.7","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.1","new_version":"8.3.3","repository_url":"https://github.com/pallets/click"},{"name":"docstring-parser","old_version":"0.17.0","new_version":"0.18.0","repository_url":"https://github.com/rr-/docstring_parser"},{"name":"fsspec","old_version":"2026.2.0","new_version":"2026.4.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"greenlet","old_version":"3.3.2","new_version":"3.5.0","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"idna","old_version":"3.11","new_version":"3.14","repository_url":"https://github.com/kjd/idna"},{"name":"jiter","old_version":"0.13.0","new_version":"0.14.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"mako","old_version":"1.3.10","new_version":"1.3.12","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"mcp","old_version":"1.26.0","new_version":"1.27.1","repository_url":"https://github.com/modelcontextprotocol/python-sdk"},{"name":"numpy","old_version":"2.4.3","new_version":"2.4.4","repository_url":"https://github.com/numpy/numpy"},{"name":"packaging","old_version":"26.0","new_version":"26.2","repository_url":"https://github.com/pypa/packaging"},{"name":"propcache","old_version":"0.4.1","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.46.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.19.2","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyroaring","old_version":"1.0.3","new_version":"1.1.0","repository_url":"https://github.com/Ezibenroc/PyRoaringBitMap"},{"name":"realtime","old_version":"2.28.2","new_version":"2.30.0","repository_url":"https://github.com/supabase/supabase-py"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"sse-starlette","old_version":"3.3.2","new_version":"3.4.2","repository_url":"https://github.com/sysid/sse-starlette"},{"name":"supabase-auth","old_version":"2.28.2","new_version":"2.30.0","repository_url":"https://github.com/supabase/supabase-py"},{"name":"supabase-functions","old_version":"2.28.2","new_version":"2.30.0","repository_url":"https://github.com/supabase/supabase-py"},{"name":"urllib3","old_version":"2.6.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 41 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.135.1` | `0.136.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.42.0` | `0.46.0` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.22` | `0.0.28` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.48` | `2.0.49` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.4` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.13.1` | `2.14.1` |\n| [redis](https://github.com/redis/redis-py) | `7.3.0` | `7.4.0` |\n| [meilisearch](https://github.com/meilisearch/meilisearch-python) | `0.40.0` | `0.41.0` |\n| [supabase](https://github.com/supabase/supabase-py) | `2.28.2` | `2.30.0` |\n| [postgrest](https://github.com/supabase/supabase-py) | `2.28.2` | `2.30.0` |\n| [storage3](https://github.com/supabase/supabase-py) | `2.28.2` | `2.30.0` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.85.0` | `0.100.0` |\n| [openai](https://github.com/openai/openai-python) | `2.28.0` | `2.36.0` |\n| [claude-agent-sdk](https://github.com/anthropics/claude-agent-sdk-python) | `0.1.48` | `0.1.80` |\n| [dependency-injector](https://github.com/ets-labs/python-dependency-injector) | `4.48.3` | `4.49.0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.7` | `3.11.9` |\n| [markdown-it-py](https://github.com/executablebooks/markdown-it-py) | `4.0.0` | `4.2.0` |\n| [ua-parser](https://github.com/ua-parser/uap-python) | `1.0.1` | `1.0.2` |\n| [anyio](https://github.com/agronholm/anyio) | `4.12.1` | `4.13.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2026.2.25` | `2026.4.22` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.6` | `3.4.7` |\n| [click](https://github.com/pallets/click) | `8.3.1` | `8.3.3` |\n| [docstring-parser](https://github.com/rr-/docstring_parser) | `0.17.0` | `0.18.0` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.2.0` | `2026.4.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.3.2` | `3.5.0` |\n| [idna](https://github.com/kjd/idna) | `3.11` | `3.14` |\n| [jiter](https://github.com/pydantic/jiter) | `0.13.0` | `0.14.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.3.12` |\n| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `1.26.0` | `1.27.1` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.3` | `2.4.4` |\n| [packaging](https://github.com/pypa/packaging) | `26.0` | `26.2` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.4.1` | `0.5.2` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.5` | `2.46.4` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.2` | `2.20.0` |\n| [pyroaring](https://github.com/Ezibenroc/PyRoaringBitMap) | `1.0.3` | `1.1.0` |\n| [realtime](https://github.com/supabase/supabase-py) | `2.28.2` | `2.30.0` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [sse-starlette](https://github.com/sysid/sse-starlette) | `3.3.2` | `3.4.2` |\n| [supabase-auth](https://github.com/supabase/supabase-py) | `2.28.2` | `2.30.0` |\n| [supabase-functions](https://github.com/supabase/supabase-py) | `2.28.2` | `2.30.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.6.3` | `2.7.0` |\n\n\nUpdates `fastapi` from 0.135.1 to 0.136.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.136.1\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Update Pydantic v2 code to address deprecations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15101\"\u003e#15101\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Tweak translation script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15174\"\u003e#15174\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.1 to 9.7.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15408\"\u003e#15408\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump inline-snapshot from 0.31.1 to 0.32.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15409\"\u003e#15409\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-codspeed from 4.3.0 to 4.4.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15407\"\u003e#15407\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-cov from 7.0.0 to 7.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15406\"\u003e#15406\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15405\"\u003e#15405\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 1.19.1 to 1.20.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15410\"\u003e#15410\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-dotenv from 1.2.1 to 1.2.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15400\"\u003e#15400\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump starlette from 0.52.1 to 1.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15397\"\u003e#15397\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygithub from 2.8.1 to 2.9.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15396\"\u003e#15396\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pyjwt from 2.12.0 to 2.12.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15393\"\u003e#15393\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump zizmor from 1.23.1 to 1.24.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15394\"\u003e#15394\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.312.3 to 0.314.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15395\"\u003e#15395\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-multipart from 0.0.22 to 0.0.26. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15360\"\u003e#15360\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump authlib from 1.6.9 to 1.6.11. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15373\"\u003e#15373\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump aiohttp from 3.13.3 to 3.13.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15282\"\u003e#15282\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15263\"\u003e#15263\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.20.1 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15391\"\u003e#15391\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pillow from 12.1.1 to 12.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15333\"\u003e#15333\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest from 9.0.2 to 9.0.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15334\"\u003e#15334\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15374\"\u003e#15374\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15385\"\u003e#15385\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Zuplo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15369\"\u003e#15369\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Speakeasy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15368\"\u003e#15368\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Add zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15316\"\u003e#15316\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.136.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Support free-threaded Python 3.14t. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15149\"\u003e#15149\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15363\"\u003e#15363\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump cryptography from 46.0.5 to 46.0.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15314\"\u003e#15314\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15309\"\u003e#15309\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15293\"\u003e#15293\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e54e5a8980ffa6d7ff68ee7b25a1c46036375521\"\u003e\u003ccode\u003ee54e5a8\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9a8a5fd99902c3b80d4cc94b85e120e2b808825f\"\u003e\u003ccode\u003e9a8a5fd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7815a32f2ed177b8b786a48b3e0712c05b5c644f\"\u003e\u003ccode\u003e7815a32\u003c/code\u003e\u003c/a\u003e ⬆️ Update Pydantic v2 code to address deprecations (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15101\"\u003e#15101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ef1c927b0558d414e199a666833942a6fabb3a51\"\u003e\u003ccode\u003eef1c927\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/38039e12a86e67f2001b9b7d96c219691d6cb4af\"\u003e\u003ccode\u003e38039e1\u003c/code\u003e\u003c/a\u003e 🔨 Tweak translation script (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15174\"\u003e#15174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4fa826ce0a3b16884a04f51e5aac95d01790b599\"\u003e\u003ccode\u003e4fa826c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c39415673e621665fdb7bbdde69beba7eb1dfd12\"\u003e\u003ccode\u003ec394156\u003c/code\u003e\u003c/a\u003e ⬆ Bump mkdocs-material from 9.7.1 to 9.7.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15408\"\u003e#15408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ae230ad2f9d90a4e3f6222ff1a5d6e8da41ec0ad\"\u003e\u003ccode\u003eae230ad\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d9eb39d1a1bf2f6e6e5d3a55088f61c712cb864e\"\u003e\u003ccode\u003ed9eb39d\u003c/code\u003e\u003c/a\u003e ⬆ Bump inline-snapshot from 0.31.1 to 0.32.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15409\"\u003e#15409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4f8b5d14d324ae8e15cfae8d85adb4186d4c2175\"\u003e\u003ccode\u003e4f8b5d1\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.135.1...0.136.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.42.0 to 0.46.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.46.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2915\"\u003eKludex/uvicorn#2915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2916\"\u003eKludex/uvicorn#2916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in websockets-sansio by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2917\"\u003eKludex/uvicorn#2917\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.45.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve forwarded client ports in proxy headers middleware by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2903\"\u003eKludex/uvicorn#2903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003eos.PathLike\u003c/code\u003e for \u003ccode\u003elog_config\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2905\"\u003eKludex/uvicorn#2905\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2907\"\u003eKludex/uvicorn#2907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2906\"\u003eKludex/uvicorn#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert empty context for ASGI runs by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2911\"\u003eKludex/uvicorn#2911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2912\"\u003eKludex/uvicorn#2912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e) by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2913\"\u003eKludex/uvicorn#2913\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Krishnachaitanyakc\"\u003e\u003ccode\u003e@​Krishnachaitanyakc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2870\"\u003eKludex/uvicorn#2870\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.44.0...0.45.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.44.0...0.45.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.44.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2888\"\u003eKludex/uvicorn#2888\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.43.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.46.0 (April 23, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2916\"\u003e#2916\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2917\"\u003e#2917\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.45.0 (April 21, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2912\"\u003e#2912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003eos.PathLike\u003c/code\u003e for \u003ccode\u003elog_config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2905\"\u003e#2905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRevert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2913\"\u003e#2913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;Explicitly start ASGI run with empty context\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve forwarded client ports in proxy headers middleware (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRaise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2906\"\u003e#2906\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.44.0 (April 6, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2888\"\u003e#2888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.43.0 (April 3, 2026)\u003c/h2\u003e\n\u003cp\u003eYou can quit Uvicorn now. We heard you, \u003ca href=\"https://github.com/pamelafox\"\u003e\u003ccode\u003e@​pamelafox\u003c/code\u003e\u003c/a\u003e - all 47 of your Ctrl+C's (thanks for flagging it, and thanks to \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e for the fix 🙏). \u003ca href=\"https://x.com/pamelafox/status/2039097686155227623\"\u003eSee the tweet\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/b224045f5900b7f766743bcb16ba9fc3adea2606\"\u003e\u003ccode\u003eb224045\u003c/code\u003e\u003c/a\u003e Version 0.46.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2918\"\u003e#2918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7375b5bf66d962186d663e85615d4b4d956bf880\"\u003e\u003ccode\u003e7375b5b\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in websockets-sansio (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d438fb16fe2d23c7bbc2ca7094645cff1f116458\"\u003e\u003ccode\u003ed438fb1\u003c/code\u003e\u003c/a\u003e Support \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3e6b96446653d0156434bce529a14c80764c9eda\"\u003e\u003ccode\u003e3e6b964\u003c/code\u003e\u003c/a\u003e Support \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/2c423bd82be169459ea254a61476de34767e0326\"\u003e\u003ccode\u003e2c423bd\u003c/code\u003e\u003c/a\u003e Version 0.45.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2914\"\u003e#2914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7f027f8e25e47668a9c2ce8b5c21b35054c48d02\"\u003e\u003ccode\u003e7f027f8\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/73a80c3cc87de269ed016e584a25e585ae6f2b44\"\u003e\u003ccode\u003e73a80c3\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2912\"\u003e#2912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/45c0b568d38e9bf4f2f036bc2d79eb98b0e72f72\"\u003e\u003ccode\u003e45c0b56\u003c/code\u003e\u003c/a\u003e Revert empty context for ASGI runs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/850d92656de0cb5859ee5f6ba252e19ad3d38989\"\u003e\u003ccode\u003e850d926\u003c/code\u003e\u003c/a\u003e Raise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2906\"\u003e#2906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/fdcacb4b83bc686ea1ba9e50ffe5b8cfe49b3e00\"\u003e\u003ccode\u003efdcacb4\u003c/code\u003e\u003c/a\u003e Accept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.42.0...0.46.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.22 to 0.0.28\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.28\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up partial-boundary tail scan via \u003ccode\u003ebytes.find\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/281\"\u003eKludex/python-multipart#281\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCap multipart boundary length at 256 bytes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/282\"\u003eKludex/python-multipart#282\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.27...0.0.28\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.27...0.0.28\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.27\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePass parse offsets via constructors by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/268\"\u003eKludex/python-multipart#268\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd multipart header limits by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/267\"\u003eKludex/python-multipart#267\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.26\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before first multipart boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003eKludex/python-multipart#262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003eKludex/python-multipart#259\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply Apache-2.0 properly by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003eKludex/python-multipart#247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003eKludex/python-multipart#252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003eKludex/python-multipart#230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003eKludex/python-multipart#254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove custom FormParser classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003eKludex/python-multipart#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003eKludex/python-multipart#258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd MIME content type info to File by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003eKludex/python-multipart#143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003eKludex/python-multipart#244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003eKludex/python-multipart#196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e by \u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/blob/main/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.28 (2026-05-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up partial-boundary tail scan via \u003ccode\u003ebytes.find\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/281\"\u003e#281\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCap multipart boundary length at 256 bytes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/282\"\u003e#282\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.27 (2026-04-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd multipart header limits \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/267\"\u003e#267\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePass parse offsets via constructors \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/268\"\u003e#268\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.26 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before the first multipart boundary more efficiently \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003e#262\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing multipart boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003e#259\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.25 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd MIME content type info to \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003e#143\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003e#258\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRemove custom \u003ccode\u003eFormParser\u003c/code\u003e classes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003e#257\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003e#254\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003e#230\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003e#252\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eApply Apache-2.0 properly \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003e#247\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.24 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003e#244\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.23 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003e#196\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003e#229\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003e#227\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/7d8d28b210ac6cb055399562b0dc0e5cf9aef14a\"\u003e\u003ccode\u003e7d8d28b\u003c/code\u003e\u003c/a\u003e Version 0.0.28 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/284\"\u003e#284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/b0dd125457d0f98de23bf2f894aedb1a54639d4e\"\u003e\u003ccode\u003eb0dd125\u003c/code\u003e\u003c/a\u003e Cap multipart boundary length at 256 bytes (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/282\"\u003e#282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d1b57392cf7d0c19235ba454eb5686fd27dc2384\"\u003e\u003ccode\u003ed1b5739\u003c/code\u003e\u003c/a\u003e Speed up partial-boundary tail scan via \u003ccode\u003ebytes.find\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/281\"\u003e#281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/09cb8c3da7638d45ecdf7c154832303214bba829\"\u003e\u003ccode\u003e09cb8c3\u003c/code\u003e\u003c/a\u003e Make the long_boundary benchmark dominated by the patched code path (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/a6467c93c14aa4b09ef65450ead8011c45e5c7a0\"\u003e\u003ccode\u003ea6467c9\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Switch CodSpeed benchmarks to walltime mode\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/9a9690035a956fbdcca06f98461244cf790375a7\"\u003e\u003ccode\u003e9a96900\u003c/code\u003e\u003c/a\u003e Switch CodSpeed benchmarks to walltime mode (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/278\"\u003e#278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/1fc7a626f566ae11bc63165260262b9a30af9008\"\u003e\u003ccode\u003e1fc7a62\u003c/code\u003e\u003c/a\u003e Make benchmark coverage trigger the partial-boundary fallback (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/277\"\u003e#277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/03df045810a216dceabbefc9dca7a33a264307bc\"\u003e\u003ccode\u003e03df045\u003c/code\u003e\u003c/a\u003e Add CodSpeed benchmark suite for parser hot paths (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/276\"\u003e#276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/79a7c614953d0c91a1d6dc69759b4fbcd0fb44f3\"\u003e\u003ccode\u003e79a7c61\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 3 updates (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/273\"\u003e#273\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/bd29332f23429d06cf16226819f89b28a8288915\"\u003e\u003ccode\u003ebd29332\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 5 updates (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/274\"\u003e#274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.28\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.48 to 2.0.49\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.49\u003c/h1\u003e\n\u003cp\u003eReleased: April 3, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where \u003ccode\u003e_orm.Session.get()\u003c/code\u003e would bypass the identity map\nand emit unnecessary SQL when \u003ccode\u003ewith_for_update=False\u003c/code\u003e was passed,\nrather than treating it equivalently to the default of \u003ccode\u003eNone\u003c/code\u003e.\nPull request courtesy of Joshua Swanson.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13176\"\u003e#13176\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where chained \u003ccode\u003e_orm.joinedload()\u003c/code\u003e options would not be\napplied correctly when the final relationship in the chain is declared on a\nbase mapper and accessed through a subclass mapper in a\n\u003ccode\u003e_orm.with_polymorphic()\u003c/code\u003e query. The path registry now correctly\ncomputes the natural path when a property declared on a base class is\naccessed through a path containing a subclass mapper, ensuring the loader\noption can be located during query compilation.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13193\"\u003e#13193\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using \u003ccode\u003e_orm.Load.options()\u003c/code\u003e to apply a chained loader\noption such as \u003ccode\u003e_orm.joinedload()\u003c/code\u003e or \u003ccode\u003e_orm.selectinload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot generate the necessary clauses for the polymorphic subclasses. The\npolymorphic loading strategy is now correctly propagated when using a call\nsuch as \u003ccode\u003ejoinedload(A.b).options(joinedload(B.c.of_type(poly)))\u003c/code\u003e to match\nthe behavior of direct chaining e.g.\n\u003ccode\u003ejoinedload(A.b).joinedload(B.c.of_type(poly))\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13202\"\u003e#13202\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using chained loader options such as\n\u003ccode\u003e_orm.selectinload()\u003c/code\u003e after \u003ccode\u003e_orm.joinedload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot properly apply the chained loader option. The loader option is now\ncorrectly applied when using a call such as\n\u003ccode\u003ejoinedload(A.b.of_type(poly)).selectinload(poly.SubClass.c)\u003c/code\u003e to eagerly\nload related objects.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13209\"\u003e#13209\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etyping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[typing] [bug]\u003c/strong\u003e Fixed a typing issue where the typed members of :data:\u003ccode\u003e.func\u003c/code\u003e would return\nthe appropriate class of the same name, however this creates an issue for\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.13.4/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/cf67d4b3193c3fe43ede18612ed62785eee11382\"\u003e\u003ccode\u003ecf67d4b\u003c/code\u003e\u003c/a\u003e Fix linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662\"\u003e\u003ccode\u003ef0d8a21\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a\"\u003e\u003ccode\u003e5e3fe1d\u003c/code\u003e\u003c/a\u003e Check for pydantic tag pattern in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686\"\u003e\u003ccode\u003e7f9edcc\u003c/code\u003e\u003c/a\u003e Document tagging conventions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c\"\u003e\u003ccode\u003eb46a0c9\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400\"\u003e\u003ccode\u003e50629c8\u003c/code\u003e\u003c/a\u003e Update to PyPy 7.3.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725\"\u003e\u003ccode\u003e8522ebb\u003c/code\u003e\u003c/a\u003e Preserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8\"\u003e\u003ccode\u003ea37f3af\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003eMISSING\u003c/code\u003e sentinel test to work with unreleased \u003ccode\u003etyping_extensions\u003c/code\u003e ver...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2\"\u003e\u003ccode\u003e909259a\u003c/code\u003e\u003c/a\u003e Remove Logfire example in documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df\"\u003e\u003ccode\u003e2c4174c\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.155 to 0.2.185\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.13.1 to 2.14.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.14.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/850\"\u003epydantic/pydantic-settings#850\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 5 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/854\"\u003epydantic/pydantic-settings#854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/853\"\u003epydantic/pydantic-settings#853\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/856\"\u003epydantic/pydantic-settings#856\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix field named \u003ccode\u003ecls\u003c/code\u003e conflicting with classmethod parameter by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/858\"\u003epydantic/pydantic-settings#858\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.14.1 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/859\"\u003epydantic/pydantic-settings#859\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.14.0...v2.14.1\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.14.0...v2.14.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix parsing env vars into Optional Strict types by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/792\"\u003epydantic/pydantic-settings#792\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError with mutually recursive models in CLI by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/794\"\u003epydantic/pydantic-settings#794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix env_file from model_config ignored in CliApp.run() (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/795\"\u003e#795\u003c/a\u003e) by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/796\"\u003epydantic/pydantic-settings#796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/798\"\u003epydantic/pydantic-settings#798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Dependabot configuration by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/801\"\u003epydantic/pydantic-settings#801\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump samuelcolvin/check-python-version from 4.1 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/802\"\u003epydantic/pydantic-settings#802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 4 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/803\"\u003epydantic/pydantic-settings#803\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/804\"\u003epydantic/pydantic-settings#804\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 5 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/805\"\u003epydantic/pydantic-settings#805\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/806\"\u003epydantic/pydantic-settings#806\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore chardet and group GitHub Actions in Dependabot by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/808\"\u003epydantic/pydantic-settings#808\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 4 to 8 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/809\"\u003epydantic/pydantic-settings#809\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/810\"\u003epydantic/pydantic-settings#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport reading .env files from FIFOs (e.g. 1Password Environments) by \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/776\"\u003epydantic/pydantic-settings#776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AliasChoices ignored when changing provider priority by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/813\"\u003epydantic/pydantic-settings#813\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: resolve KeyError in run_subcommand for underscore field names by \u003ca href=\"https://github.com/bradykieffer\"\u003e\u003ccode\u003e@​bradykieffer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/799\"\u003epydantic/pydantic-settings#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/814\"\u003epydantic/pydantic-settings#814\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eLiteral[numeric Enum]\u003c/code\u003e coercion for CLI and env vars by \u003ca href=\"https://github.com/m9810223\"\u003e\u003ccode\u003e@​m9810223\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/811\"\u003epydantic/pydantic-settings#811\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix nested discriminated unions not discovered by env/CLI providers by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/816\"\u003epydantic/pydantic-settings#816\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/820\"\u003epydantic/pydantic-settings#820\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI ensure env nested max split internally. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/821\"\u003epydantic/pydantic-settings#821\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/824\"\u003epydantic/pydantic-settings#824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate \u003ccode\u003eboto3-stubs\u003c/code\u003e to \u003ccode\u003etypes-boto3\u003c/code\u003e by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/831\"\u003epydantic/pydantic-settings#831\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI not recognizing field name with validate_by_name and AliasChoices by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/826\"\u003epydantic/pydantic-settings#826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow customisation of the dotevn setting source to filter variables by \u003ca href=\"https://github.com/CaselIT\"\u003e\u003ccode\u003e@​CaselIT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/832\"\u003epydantic/pydantic-settings#832\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/833\"\u003epydantic/pydantic-settings#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce yamlfmt by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/836\"\u003epydantic/pydantic-settings#836\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump boto3 from 1.42.82 to 1.42.83 in the python-packages group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/837\"\u003epydantic/pydantic-settings#837\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce zizmor by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/838\"\u003epydantic/pydantic-settings#838\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CliPositionalArg[list[CustomType]] crash for custom types by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/839\"\u003epydantic/pydantic-settings#839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note about Mypy plugin for \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/842\"\u003epydantic/pydantic-settings#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ecli_ignore_unknown_args=True\u003c/code\u003e not working on subcommands by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/844\"\u003epydantic/pydantic-settings#844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/847\"\u003epydantic/pydantic-settings#847\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI descriptions lost under \u003ccode\u003epython -OO\u003c/code\u003e by falling back to \u003ccode\u003ejson_schema_extra\u003c/code\u003e by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/843\"\u003epydantic/pydantic-settings#843\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.14.0 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/848\"\u003epydantic/pydantic-settings#848\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/e95c30bec8cfaee88ee275138c064aea97a25bdf\"\u003e\u003ccode\u003ee95c30b\u003c/code\u003e\u003c/a\u003e Prepare release 2.14.1 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/859\"\u003e#859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/0c8734581b6cf70a995afad603ac456631d00621\"\u003e\u003ccode\u003e0c87345\u003c/code\u003e\u003c/a\u003e Fix field named \u003ccode\u003ecls\u003c/code\u003e conflicting with classmethod parameter (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/858\"\u003e#858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/7bd0072795a800065b42210b6dca90fc9b83daf7\"\u003e\u003ccode\u003e7bd0072\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 2 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/856\"\u003e#856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/b03e573d017ed48e1c2774a5e0b715db9766c76b\"\u003e\u003ccode\u003eb03e573\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/853\"\u003e#853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/eaa3b434938411ec8a3717ea646614561e713f51\"\u003e\u003ccode\u003eeaa3b43\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 5 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/854\"\u003e#854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/9f95615c24c6813c1d7d203576581a79cb6d9e8e\"\u003e\u003ccode\u003e9f95615\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 4 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/850\"\u003e#850\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/8916beeecc6d0510e3d0532a0ed839937400ddc3\"\u003e\u003ccode\u003e8916bee\u003c/code\u003e\u003c/a\u003e Prepare release 2.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/848\"\u003e#848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/39e551c0910c85505b608ff85a103b2c9f7396c5\"\u003e\u003ccode\u003e39e551c\u003c/code\u003e\u003c/a\u003e Fix CLI descriptions lost under \u003ccode\u003epython -OO\u003c/code\u003e by falling back to `json_schema_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/9ed7f48ea2c90f436a03b01f721fe6656c869b14\"\u003e\u003ccode\u003e9ed7f48\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 4 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/847\"\u003e#847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/617c690fb16c95eb0fb98fc88c0d6d82b9af4fa9\"\u003e\u003ccode\u003e617c690\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003ecli_ignore_unknown_args=True\u003c/code\u003e not working on subcommands (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/844\"\u003e#844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 7.3.0 to 7.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError in cluster metrics recording when connection is None or ClusterNode object instance is used to extract the connection info (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3999\"\u003e#3999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords might leak in plain text logs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3998\"\u003e#3998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cp\u003e-Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpose basic Otel classes and functions to be importable through redis.observability to match the examples in the readthedocs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3996\"\u003e#3996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/b72f24ad6a2226d46aed770e18094a86117d2217\"\u003e\u003ccode\u003eb72f24a\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/0a4e0afe36504c3fb6df1e38683ea946febac9d3\"\u003e\u003ccode\u003e0a4e0af\u003c/code\u003e\u003c/a\u003e Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/15492c9156d3ab8dce05360977480510cf24fbf9\"\u003e\u003ccode\u003e15492c9\u003c/code\u003e\u003c/a\u003e Refactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/cd964ac96649df872a051835e9a52e05a5090607\"\u003e\u003ccode\u003ecd964ac\u003c/code\u003e\u003c/a\u003e Expose basic Otel classes and funtions to be importable through redis.observa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/46ab74d02ed9b15176f67edb817de83524f8145a\"\u003e\u003ccode\u003e46ab74d\u003c/code\u003e\u003c/a\u003e Fixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/26482dbaae38abdb1966d9b1c803331e2dab2053\"\u003e\u003ccode\u003e26482db\u003c/code\u003e\u003c/a\u003e Fix AttributeError in cluster metrics recording when connection is None or Cl...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/redis-py/compare/v7.3.0...v7.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `meilisearch` from 0.40.0 to 0.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/meilisearch/meilisearch-python/releases\"\u003emeilisearch's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.41.0 🐍\u003c/h2\u003e\n\u003ch2\u003e🚀 Enhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for export api (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1171\"\u003e#1171\u003c/a\u003e) \u003ca href=\"https://github.com/jawad-khan\"\u003e\u003ccode\u003e@​jawad-khan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd method to list index fields (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1199\"\u003e#1199\u003c/a\u003e) \u003ca href=\"https://github.com/awais786\"\u003e\u003ccode\u003e@​awais786\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⚙️ Maintenance/misc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd AI usage disclosure guidelines to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1196\"\u003e#1196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(ci): use setup-python version for pipenv virtualenv (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1195\"\u003e#1195\u003c/a\u003e) \u003ca href=\"https://github.com/VedantMadane\"\u003e\u003ccode\u003e@​VedantMadane\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed pipenv compatibility issue (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1194\"\u003e#1194\u003c/a\u003e) \u003ca href=\"https://github.com/jawad-khan\"\u003e\u003ccode\u003e@​jawad-khan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update tests for v1.36.0 (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1210\"\u003e#1210\u003c/a\u003e) \u003ca href=\"https://github.com/Strift\"\u003e\u003ccode\u003e@​Strift\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add async usage section linking to meilisearch-python-sdk (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1212\"\u003e#1212\u003c/a\u003e) \u003ca href=\"https://github.com/vibeyclaw\"\u003e\u003ccode\u003e@​vibeyclaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace localhost:7700 with MEILISEARCH_URL (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1213\"\u003e#1213\u003c/a\u003e) \u003ca href=\"https://github.com/Strift\"\u003e\u003ccode\u003e@​Strift\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded missing code samples (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1200\"\u003e#1200\u003c/a\u003e) \u003ca href=\"https://github.com/aznszn\"\u003e\u003ccode\u003e@​aznszn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused code samples (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1216\"\u003e#1216\u003c/a\u003e) \u003ca href=\"https://github.com/curquiza\"\u003e\u003ccode\u003e@​curquiza\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused code samples (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1217\"\u003e#1217\u003c/a\u003e) \u003ca href=\"https://github.com/curquiza\"\u003e\u003ccode\u003e@​curquiza\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump wrapt from 2.0.1 to 2.1.1 (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1215\"\u003e#1215\u003c/a\u003e) @\u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(docs): add sphinx dependencies to Pipfile dev-packages (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1214\"\u003e#1214\u003c/a\u003e) \u003ca href=\"https://github.com/vibeyclaw\"\u003e\u003ccode\u003e@​vibeyclaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Added tests and docstrings for showPerformanceDetails (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1206\"\u003e#1206\u003c/a\u003e) \u003ca href=\"https://github.com/jawad-khan\"\u003e\u003ccode\u003e@​jawad-khan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: refactor pipenv installation steps across all workflow files (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1219\"\u003e#1219\u003c/a\u003e) \u003ca href=\"https://github.com/DhavalGojiya\"\u003e\u003ccode\u003e@​DhavalGojiya\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix outdated Pipfile.lock and pipenv install inconsistencies across CI jobs (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1223\"\u003e#1223\u003c/a\u003e) \u003ca href=\"https://github.com/DhavalGojiya\"\u003e\u003ccode\u003e@​DhavalGojiya\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused code samples (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1229\"\u003e#1229\u003c/a\u003e) \u003ca href=\"https://github.com/curquiza\"\u003e\u003ccode\u003e@​curquiza\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pytest from 8.4.1 to 8.4.2 (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1151\"\u003e#1151\u003c/a\u003e) @\u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks again to \u003ca href=\"https://github.com/DhavalGojiya\"\u003e\u003ccode\u003e@​DhavalGojiya\u003c/...\n\n_Description has been truncated_","html_url":"https://github.com/pilotspace/pilot-space/pull/147","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pilotspace%2Fpilot-space/issues/147","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/147/packages"}},{"old_version":"4.48.3","new_version":"4.49.0","update_type":"minor","path":null,"pr_created_at":"2026-05-01T14:31:59.000Z","version_change":"4.48.3 → 4.49.0","issue":{"uuid":"4364883807","node_id":"PR_kwDOPfdS887XcShY","number":140,"state":"closed","title":"chore(deps): bump the all-deps group with 9 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-11T19:37:32.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-01T14:31:59.000Z","updated_at":"2026-05-11T19:37:34.000Z","time_to_close":882333,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all-deps","update_count":9,"packages":[{"name":"pydantic-settings","old_version":"2.13.1","new_version":"2.14.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"typer","old_version":"0.24.1","new_version":"0.25.1","repository_url":"https://github.com/fastapi/typer"},{"name":"aiogram","old_version":"3.26.0","new_version":"3.27.0","repository_url":"https://github.com/aiogram/aiogram"},{"name":"aio-pika","old_version":"9.6.1","new_version":"9.6.2","repository_url":"https://github.com/mosquito/aio-pika"},{"name":"sqlalchemy","old_version":"2.0.48","new_version":"2.0.49","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"dependency-injector","old_version":"4.48.3","new_version":"4.49.0","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"hypothesis","old_version":"6.151.9","new_version":"6.152.4","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"ruff","old_version":"0.15.6","new_version":"0.15.12","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-deps group with 9 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.13.1` | `2.14.0` |\n| [typer](https://github.com/fastapi/typer) | `0.24.1` | `0.25.1` |\n| [aiogram](https://github.com/aiogram/aiogram) | `3.26.0` | `3.27.0` |\n| [aio-pika](https://github.com/mosquito/aio-pika) | `9.6.1` | `9.6.2` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.48` | `2.0.49` |\n| [dependency-injector](https://github.com/ets-labs/python-dependency-injector) | `4.48.3` | `4.49.0` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.151.9` | `6.152.4` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.6` | `0.15.12` |\n\nUpdates `pydantic-settings` from 2.13.1 to 2.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix parsing env vars into Optional Strict types by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/792\"\u003epydantic/pydantic-settings#792\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError with mutually recursive models in CLI by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/794\"\u003epydantic/pydantic-settings#794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix env_file from model_config ignored in CliApp.run() (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/795\"\u003e#795\u003c/a\u003e) by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/796\"\u003epydantic/pydantic-settings#796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/798\"\u003epydantic/pydantic-settings#798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Dependabot configuration by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/801\"\u003epydantic/pydantic-settings#801\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump samuelcolvin/check-python-version from 4.1 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/802\"\u003epydantic/pydantic-settings#802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 4 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/803\"\u003epydantic/pydantic-settings#803\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/804\"\u003epydantic/pydantic-settings#804\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 5 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/805\"\u003epydantic/pydantic-settings#805\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/806\"\u003epydantic/pydantic-settings#806\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore chardet and group GitHub Actions in Dependabot by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/808\"\u003epydantic/pydantic-settings#808\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 4 to 8 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/809\"\u003epydantic/pydantic-settings#809\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/810\"\u003epydantic/pydantic-settings#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport reading .env files from FIFOs (e.g. 1Password Environments) by \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/776\"\u003epydantic/pydantic-settings#776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AliasChoices ignored when changing provider priority by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/813\"\u003epydantic/pydantic-settings#813\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: resolve KeyError in run_subcommand for underscore field names by \u003ca href=\"https://github.com/bradykieffer\"\u003e\u003ccode\u003e@​bradykieffer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/799\"\u003epydantic/pydantic-settings#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/814\"\u003epydantic/pydantic-settings#814\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eLiteral[numeric Enum]\u003c/code\u003e coercion for CLI and env vars by \u003ca href=\"https://github.com/m9810223\"\u003e\u003ccode\u003e@​m9810223\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/811\"\u003epydantic/pydantic-settings#811\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix nested discriminated unions not discovered by env/CLI providers by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/816\"\u003epydantic/pydantic-settings#816\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/820\"\u003epydantic/pydantic-settings#820\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI ensure env nested max split internally. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/821\"\u003epydantic/pydantic-settings#821\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/824\"\u003epydantic/pydantic-settings#824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate \u003ccode\u003eboto3-stubs\u003c/code\u003e to \u003ccode\u003etypes-boto3\u003c/code\u003e by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/831\"\u003epydantic/pydantic-settings#831\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI not recognizing field name with validate_by_name and AliasChoices by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/826\"\u003epydantic/pydantic-settings#826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow customisation of the dotevn setting source to filter variables by \u003ca href=\"https://github.com/CaselIT\"\u003e\u003ccode\u003e@​CaselIT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/832\"\u003epydantic/pydantic-settings#832\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/833\"\u003epydantic/pydantic-settings#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce yamlfmt by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/836\"\u003epydantic/pydantic-settings#836\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump boto3 from 1.42.82 to 1.42.83 in the python-packages group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/837\"\u003epydantic/pydantic-settings#837\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce zizmor by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/838\"\u003epydantic/pydantic-settings#838\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CliPositionalArg[list[CustomType]] crash for custom types by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/839\"\u003epydantic/pydantic-settings#839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note about Mypy plugin for \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/842\"\u003epydantic/pydantic-settings#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ecli_ignore_unknown_args=True\u003c/code\u003e not working on subcommands by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/844\"\u003epydantic/pydantic-settings#844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/847\"\u003epydantic/pydantic-settings#847\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI descriptions lost under \u003ccode\u003epython -OO\u003c/code\u003e by falling back to \u003ccode\u003ejson_schema_extra\u003c/code\u003e by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/843\"\u003epydantic/pydantic-settings#843\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.14.0 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/848\"\u003epydantic/pydantic-settings#848\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/802\"\u003epydantic/pydantic-settings#802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/776\"\u003epydantic/pydantic-settings#776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bradykieffer\"\u003e\u003ccode\u003e@​bradykieffer\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/799\"\u003epydantic/pydantic-settings#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CaselIT\"\u003e\u003ccode\u003e@​CaselIT\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/832\"\u003epydantic/pydantic-settings#832\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/8916beeecc6d0510e3d0532a0ed839937400ddc3\"\u003e\u003ccode\u003e8916bee\u003c/code\u003e\u003c/a\u003e Prepare release 2.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/848\"\u003e#848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/39e551c0910c85505b608ff85a103b2c9f7396c5\"\u003e\u003ccode\u003e39e551c\u003c/code\u003e\u003c/a\u003e Fix CLI descriptions lost under \u003ccode\u003epython -OO\u003c/code\u003e by falling back to `json_schema_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/9ed7f48ea2c90f436a03b01f721fe6656c869b14\"\u003e\u003ccode\u003e9ed7f48\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 4 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/847\"\u003e#847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/617c690fb16c95eb0fb98fc88c0d6d82b9af4fa9\"\u003e\u003ccode\u003e617c690\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003ecli_ignore_unknown_args=True\u003c/code\u003e not working on subcommands (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/844\"\u003e#844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/577c05f7e8ac25904da2381db51ed4ddd4b3e4fe\"\u003e\u003ccode\u003e577c05f\u003c/code\u003e\u003c/a\u003e Add note about Mypy plugin for \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/842\"\u003e#842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/2355bc54e9d442ca7916f02de28d0c936e75441c\"\u003e\u003ccode\u003e2355bc5\u003c/code\u003e\u003c/a\u003e Fix CliPositionalArg[list[CustomType]] crash for custom types (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/839\"\u003e#839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/16bd6fd230d6280d52db6ce2a0ffef8f908cc89d\"\u003e\u003ccode\u003e16bd6fd\u003c/code\u003e\u003c/a\u003e Introduce zizmor (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/838\"\u003e#838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/df8b239fe09ba712767bdf378bc90627df375f04\"\u003e\u003ccode\u003edf8b239\u003c/code\u003e\u003c/a\u003e Bump boto3 from 1.42.82 to 1.42.83 in the python-packages group (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/837\"\u003e#837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/c5401a27999cd6c0e93925deb0660cd51013c8b1\"\u003e\u003ccode\u003ec5401a2\u003c/code\u003e\u003c/a\u003e Introduce yamlfmt (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/836\"\u003e#836\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/953e28e6cfe9a9e536375d771a4ffd48535a4ab2\"\u003e\u003ccode\u003e953e28e\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 3 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/833\"\u003e#833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `typer` from 0.24.1 to 0.25.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/typer/releases\"\u003etyper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.25.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add Typer Library Skill for Agents. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1620\"\u003e#1620\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.11 to 0.15.12. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1722\"\u003e#1722\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.10 to 0.3.11. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1723\"\u003e#1723\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.25.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🚸 Don't truncate code lines in traceback when formatted with Rich. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1695\"\u003e#1695\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.24.2\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Ensure that \u003ccode\u003etyper.launch\u003c/code\u003e forwards correctly when launching a file. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1708\"\u003e#1708\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🎨 Ensure \u003ccode\u003ety\u003c/code\u003e runs without errors. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1628\"\u003e#1628\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add dates to release notes. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1612\"\u003e#1612\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Fix code blocks in reference docs overflowing table width. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1630\"\u003e#1630\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix broken link to FastAPI and Friends newsletter. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1540\"\u003e#1540\u003c/a\u003e by \u003ca href=\"https://github.com/Karlemami\"\u003e\u003ccode\u003e@​Karlemami\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Handle external links \u003ccode\u003etarget=_blank\u003c/code\u003e and CSS automatically in JS and CSS. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1622\"\u003e#1622\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Remove link to Typer developer survey. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1609\"\u003e#1609\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✏️ Clean up documentation in \u003ccode\u003einstall.md\u003c/code\u003e file. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1606\"\u003e#1606\u003c/a\u003e by \u003ca href=\"https://github.com/Johandielangman\"\u003e\u003ccode\u003e@​Johandielangman\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump mypy from 1.20.1 to 1.20.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1715\"\u003e#1715\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.9 to 0.3.10. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1716\"\u003e#1716\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pydantic-settings from 2.13.1 to 2.14.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1713\"\u003e#1713\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ty from 0.0.31 to 0.0.32. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1711\"\u003e#1711\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pydantic from 2.13.2 to 2.13.3. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1712\"\u003e#1712\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1667\"\u003e#1667\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.20 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1710\"\u003e#1710\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1700\"\u003e#1700\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pydantic from 2.13.1 to 2.13.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1703\"\u003e#1703\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1701\"\u003e#1701\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.10 to 0.15.11. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1704\"\u003e#1704\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1702\"\u003e#1702\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump astral-sh/setup-uv from 7.6.0 to 8.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1699\"\u003e#1699\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ty from 0.0.30 to 0.0.31. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1696\"\u003e#1696\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pydantic from 2.13.0 to 2.13.1. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1697\"\u003e#1697\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/typer/blob/master/docs/release-notes.md\"\u003etyper's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.25.1 (2026-04-30)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add Typer Library Skill for Agents. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1620\"\u003e#1620\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.11 to 0.15.12. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1722\"\u003e#1722\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.10 to 0.3.11. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1723\"\u003e#1723\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.25.0 (2026-04-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🚸 Don't truncate code lines in traceback when formatted with Rich. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1695\"\u003e#1695\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.24.2 (2026-04-22)\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Ensure that \u003ccode\u003etyper.launch\u003c/code\u003e forwards correctly when launching a file. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1708\"\u003e#1708\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🎨 Ensure \u003ccode\u003ety\u003c/code\u003e runs without errors. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1628\"\u003e#1628\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add dates to release notes. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1612\"\u003e#1612\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Fix code blocks in reference docs overflowing table width. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1630\"\u003e#1630\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix broken link to FastAPI and Friends newsletter. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1540\"\u003e#1540\u003c/a\u003e by \u003ca href=\"https://github.com/Karlemami\"\u003e\u003ccode\u003e@​Karlemami\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Handle external links \u003ccode\u003etarget=_blank\u003c/code\u003e and CSS automatically in JS and CSS. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1622\"\u003e#1622\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Remove link to Typer developer survey. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1609\"\u003e#1609\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✏️ Clean up documentation in \u003ccode\u003einstall.md\u003c/code\u003e file. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1606\"\u003e#1606\u003c/a\u003e by \u003ca href=\"https://github.com/Johandielangman\"\u003e\u003ccode\u003e@​Johandielangman\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump mypy from 1.20.1 to 1.20.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1715\"\u003e#1715\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump prek from 0.3.9 to 0.3.10. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1716\"\u003e#1716\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pydantic-settings from 2.13.1 to 2.14.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1713\"\u003e#1713\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ty from 0.0.31 to 0.0.32. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1711\"\u003e#1711\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pydantic from 2.13.2 to 2.13.3. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1712\"\u003e#1712\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1667\"\u003e#1667\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.20 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1710\"\u003e#1710\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1700\"\u003e#1700\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pydantic from 2.13.1 to 2.13.2. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1703\"\u003e#1703\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1701\"\u003e#1701\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.10 to 0.15.11. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1704\"\u003e#1704\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1702\"\u003e#1702\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/cfcc2ef9f948bcce67897a6c7e689d39da690bf9\"\u003e\u003ccode\u003ecfcc2ef\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.25.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/13846cc59bd574567a9a1f56eae3cd42b9aa2a4f\"\u003e\u003ccode\u003e13846cc\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/a43746997ad6f2b4a8829c69c919f4d4c2cc0698\"\u003e\u003ccode\u003ea437469\u003c/code\u003e\u003c/a\u003e 🔧 Add Typer Library Skill for Agents (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1620\"\u003e#1620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/ba6cc2c9e7cba35f891c91118e228e1d2da35edb\"\u003e\u003ccode\u003eba6cc2c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/0f3ead07c2bb384fdd590e895ca6705582c58d89\"\u003e\u003ccode\u003e0f3ead0\u003c/code\u003e\u003c/a\u003e ⬆ Bump ruff from 0.15.11 to 0.15.12 (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1722\"\u003e#1722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/db4ade64936599b3460f2fc0a7c550c3fedc33b0\"\u003e\u003ccode\u003edb4ade6\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/5a5206ceed2afdf234f88a6e2ef74ad9ebdf0d92\"\u003e\u003ccode\u003e5a5206c\u003c/code\u003e\u003c/a\u003e ⬆ Bump prek from 0.3.10 to 0.3.11 (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1723\"\u003e#1723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/959845e173b4bec0d606d99247815c2710613ca8\"\u003e\u003ccode\u003e959845e\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.25.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/5e1fcfb5935e7ac3ff3c7526ef297eae31bd4822\"\u003e\u003ccode\u003e5e1fcfb\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/dfb21ad034804584702d553ebfba40d8f4d791b9\"\u003e\u003ccode\u003edfb21ad\u003c/code\u003e\u003c/a\u003e 🚸 Don't truncate code lines in traceback when formatted with Rich (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1695\"\u003e#1695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/typer/compare/0.24.1...0.25.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aiogram` from 3.26.0 to 3.27.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aiogram/aiogram/releases\"\u003eaiogram's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBot API 9.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix link formatting by \u003ca href=\"https://github.com/Xeforo\"\u003e\u003ccode\u003e@​Xeforo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aiogram/aiogram/pull/1624\"\u003eaiogram/aiogram#1624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect release version number in CHANGES.rst by \u003ca href=\"https://github.com/NasrollahYusefi\"\u003e\u003ccode\u003e@​NasrollahYusefi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aiogram/aiogram/pull/1784\"\u003eaiogram/aiogram#1784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded full support for the Bot API 9.6 by \u003ca href=\"https://github.com/JrooTJunior\"\u003e\u003ccode\u003e@​JrooTJunior\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aiogram/aiogram/pull/1792\"\u003eaiogram/aiogram#1792\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeature/eq method for default by \u003ca href=\"https://github.com/DatPill\"\u003e\u003ccode\u003e@​DatPill\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aiogram/aiogram/pull/1789\"\u003eaiogram/aiogram#1789\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix HtmlDecoration attribute name for custom emoji method (\u003ca href=\"https://redirect.github.com/aiogram/aiogram/issues/1782\"\u003e#1782\u003c/a\u003e) by \u003ca href=\"https://github.com/slav0nic\"\u003e\u003ccode\u003e@​slav0nic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aiogram/aiogram/pull/1783\"\u003eaiogram/aiogram#1783\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: CommandStart(deep_link=False) now rejects deep-link arguments by \u003ca href=\"https://github.com/temrjan\"\u003e\u003ccode\u003e@​temrjan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aiogram/aiogram/pull/1790\"\u003eaiogram/aiogram#1790\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove redundant list() around sorted() and fix router type name in validation error message by \u003ca href=\"https://github.com/m-xim\"\u003e\u003ccode\u003e@​m-xim\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/aiogram/aiogram/pull/1788\"\u003eaiogram/aiogram#1788\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NasrollahYusefi\"\u003e\u003ccode\u003e@​NasrollahYusefi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/aiogram/aiogram/pull/1784\"\u003eaiogram/aiogram#1784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DatPill\"\u003e\u003ccode\u003e@​DatPill\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/aiogram/aiogram/pull/1789\"\u003eaiogram/aiogram#1789\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/slav0nic\"\u003e\u003ccode\u003e@​slav0nic\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/aiogram/aiogram/pull/1783\"\u003eaiogram/aiogram#1783\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/temrjan\"\u003e\u003ccode\u003e@​temrjan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/aiogram/aiogram/pull/1790\"\u003eaiogram/aiogram#1790\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/aiogram/aiogram/compare/v3.26.0...v3.27.0\"\u003ehttps://github.com/aiogram/aiogram/compare/v3.26.0...v3.27.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/aiogram/aiogram/blob/dev-3.x/CHANGES.rst\"\u003eaiogram's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.27.0 (2026-04-04)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003e__eq__\u003c/code\u003e and \u003ccode\u003e__hash__\u003c/code\u003e methods to the \u003ccode\u003eDefault\u003c/code\u003e class.\n\u003ccode\u003e[#1707](https://github.com/aiogram/aiogram/issues/1707) \u0026lt;https://github.com/aiogram/aiogram/issues/1707\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eCommandStart(deep_link=False)\u003c/code\u003e now correctly rejects messages that contain deep-link arguments. Previously \u003ccode\u003edeep_link=False\u003c/code\u003e (the default) did not distinguish between \u003ccode\u003e/start\u003c/code\u003e and \u003ccode\u003e/start \u0026lt;payload\u0026gt;\u003c/code\u003e. The default is changed to \u003ccode\u003eNone\u003c/code\u003e (accept both) to preserve backward compatibility.\n\u003ccode\u003e[#1713](https://github.com/aiogram/aiogram/issues/1713) \u0026lt;https://github.com/aiogram/aiogram/issues/1713\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHtmlDecoration.custom_emoji()\u003c/code\u003e to use the correct \u003ccode\u003eemoji-id\u003c/code\u003e attribute name instead of \u003ccode\u003eemoji_id\u003c/code\u003e in the \u003ccode\u003e\u0026lt;tg-emoji\u0026gt;\u003c/code\u003e tag, matching the Telegram Bot API specification.\n\u003ccode\u003e[#1782](https://github.com/aiogram/aiogram/issues/1782) \u0026lt;https://github.com/aiogram/aiogram/issues/1782\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003cli\u003eRemove redundant list() around sorted() and fix router type name in validation error message\n\u003ccode\u003e[#1788](https://github.com/aiogram/aiogram/issues/1788) \u0026lt;https://github.com/aiogram/aiogram/issues/1788\u0026gt;\u003c/code\u003e_\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eMisc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated to \u003ccode\u003eBot API 9.6 \u0026lt;https://core.telegram.org/bots/api-changelog#april-3-2026\u0026gt;\u003c/code\u003e_\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eManaged Bots\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eNew Methods:\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded :class:\u003ccode\u003eaiogram.methods.get_managed_bot_token.GetManagedBotToken\u003c/code\u003e method - retrieves the token of a managed bot\u003c/li\u003e\n\u003cli\u003eAdded :class:\u003ccode\u003eaiogram.methods.replace_managed_bot_token.ReplaceManagedBotToken\u003c/code\u003e method - generates a new token for a managed bot, invalidating the previous one\u003c/li\u003e\n\u003cli\u003eAdded :class:\u003ccode\u003eaiogram.methods.save_prepared_keyboard_button.SavePreparedKeyboardButton\u003c/code\u003e method - saves a keyboard button to be used in Mini Apps via :code:\u003ccode\u003erequestChat\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cem\u003eNew Types:\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded :class:\u003ccode\u003eaiogram.types.keyboard_button_request_managed_bot.KeyboardButtonRequestManagedBot\u003c/code\u003e type - defines criteria for selecting a managed bot via a keyboard button\u003c/li\u003e\n\u003cli\u003eAdded :class:\u003ccode\u003eaiogram.types.managed_bot_created.ManagedBotCreated\u003c/code\u003e type - describes a service message about a managed bot being created\u003c/li\u003e\n\u003cli\u003eAdded :class:\u003ccode\u003eaiogram.types.managed_bot_updated.ManagedBotUpdated\u003c/code\u003e type - describes updates to a managed bot\u003c/li\u003e\n\u003cli\u003eAdded :class:\u003ccode\u003eaiogram.types.prepared_keyboard_button.PreparedKeyboardButton\u003c/code\u003e type - represents a prepared keyboard button for use in Mini Apps\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cem\u003eNew Fields:\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded :code:\u003ccode\u003ecan_manage_bots\u003c/code\u003e field to :class:\u003ccode\u003eaiogram.types.user.User\u003c/code\u003e - indicates whether the bot can manage other bots\u003c/li\u003e\n\u003cli\u003eAdded :code:\u003ccode\u003erequest_managed_bot\u003c/code\u003e field to :class:\u003ccode\u003eaiogram.types.keyboard_button.KeyboardButton\u003c/code\u003e - requests the user to select a managed bot\u003c/li\u003e\n\u003cli\u003eAdded :code:\u003ccode\u003emanaged_bot_created\u003c/code\u003e field to :class:\u003ccode\u003eaiogram.types.message.Message\u003c/code\u003e - service message about a managed bot being created (type: :class:\u003ccode\u003eaiogram.types.managed_bot_created.ManagedBotCreated\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdded :code:\u003ccode\u003emanaged_bot\u003c/code\u003e field to :class:\u003ccode\u003eaiogram.types.update.Update\u003c/code\u003e - contains updates received by a managed bot\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003ePolls\u003c/strong\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aiogram/aiogram/commit/288b95fd746e8abcd9024ce4b4ccfc2d1bd5d1e8\"\u003e\u003ccode\u003e288b95f\u003c/code\u003e\u003c/a\u003e Merge branch 'dev-3.x'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aiogram/aiogram/commit/e4d3692ac201bbdbfd786522d262caf4416dcafd\"\u003e\u003ccode\u003ee4d3692\u003c/code\u003e\u003c/a\u003e Bump changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aiogram/aiogram/commit/19a6131618f6724f91011516f208c975a63be407\"\u003e\u003ccode\u003e19a6131\u003c/code\u003e\u003c/a\u003e Remove redundant list() around sorted() and fix router type name in validatio...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aiogram/aiogram/commit/0611d0d953828f237debab9efea8dfc166dbde78\"\u003e\u003ccode\u003e0611d0d\u003c/code\u003e\u003c/a\u003e fix: CommandStart(deep_link=False) now rejects deep-link arguments (\u003ca href=\"https://redirect.github.com/aiogram/aiogram/issues/1790\"\u003e#1790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aiogram/aiogram/commit/d5bd0b98a3cc395f7268ab6411c928adccca9cfb\"\u003e\u003ccode\u003ed5bd0b9\u003c/code\u003e\u003c/a\u003e Fix HtmlDecoration attribute name for custom emoji method (\u003ca href=\"https://redirect.github.com/aiogram/aiogram/issues/1782\"\u003e#1782\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/aiogram/aiogram/issues/1783\"\u003e#1783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aiogram/aiogram/commit/875f37f78063bfa338389d94fcbb7ac7d4b9a6e6\"\u003e\u003ccode\u003e875f37f\u003c/code\u003e\u003c/a\u003e Feature/eq method for default (\u003ca href=\"https://redirect.github.com/aiogram/aiogram/issues/1789\"\u003e#1789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aiogram/aiogram/commit/9f49c0413ff5b51ad0d35ffc0e7b0909b8162b17\"\u003e\u003ccode\u003e9f49c04\u003c/code\u003e\u003c/a\u003e Added full support for the Bot API 9.6 (\u003ca href=\"https://redirect.github.com/aiogram/aiogram/issues/1792\"\u003e#1792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aiogram/aiogram/commit/00c1130938d4a8049c4f50f353a57971377a1014\"\u003e\u003ccode\u003e00c1130\u003c/code\u003e\u003c/a\u003e Correct release version number in CHANGES.rst (\u003ca href=\"https://redirect.github.com/aiogram/aiogram/issues/1784\"\u003e#1784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aiogram/aiogram/commit/4f435ae39b90cab98089584c10913958cb744e76\"\u003e\u003ccode\u003e4f435ae\u003c/code\u003e\u003c/a\u003e Merge branch 'dev-3.x'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aiogram/aiogram/commit/860dd5cab86f2ae3ac8e84bde0f0b3532f88bfe8\"\u003e\u003ccode\u003e860dd5c\u003c/code\u003e\u003c/a\u003e Merge branch 'dev-3.x'\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/aiogram/aiogram/compare/v3.26.0...v3.27.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `aio-pika` from 9.6.1 to 9.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mosquito/aio-pika/releases\"\u003eaio-pika's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.6.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInclude license file in built distributions via project.license-files by \u003ca href=\"https://github.com/julia-thorn\"\u003e\u003ccode\u003e@​julia-thorn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/mosquito/aio-pika/pull/698\"\u003emosquito/aio-pika#698\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/julia-thorn\"\u003e\u003ccode\u003e@​julia-thorn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/mosquito/aio-pika/pull/698\"\u003emosquito/aio-pika#698\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/mosquito/aio-pika/compare/9.6.1...9.6.2\"\u003ehttps://github.com/mosquito/aio-pika/compare/9.6.1...9.6.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mosquito/aio-pika/commit/8136a8cf6fd04413c9e6ac1a789944ac4b1a47fd\"\u003e\u003ccode\u003e8136a8c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mosquito/aio-pika/issues/698\"\u003e#698\u003c/a\u003e from julia-thorn/julia-thorn-patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mosquito/aio-pika/commit/31b82b102ac0133ff8322a3fc39db48409765055\"\u003e\u003ccode\u003e31b82b1\u003c/code\u003e\u003c/a\u003e Add license-files entry to pyproject.toml\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mosquito/aio-pika/compare/9.6.1...9.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.48 to 2.0.49\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.49\u003c/h1\u003e\n\u003cp\u003eReleased: April 3, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where \u003ccode\u003e_orm.Session.get()\u003c/code\u003e would bypass the identity map\nand emit unnecessary SQL when \u003ccode\u003ewith_for_update=False\u003c/code\u003e was passed,\nrather than treating it equivalently to the default of \u003ccode\u003eNone\u003c/code\u003e.\nPull request courtesy of Joshua Swanson.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13176\"\u003e#13176\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where chained \u003ccode\u003e_orm.joinedload()\u003c/code\u003e options would not be\napplied correctly when the final relationship in the chain is declared on a\nbase mapper and accessed through a subclass mapper in a\n\u003ccode\u003e_orm.with_polymorphic()\u003c/code\u003e query. The path registry now correctly\ncomputes the natural path when a property declared on a base class is\naccessed through a path containing a subclass mapper, ensuring the loader\noption can be located during query compilation.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13193\"\u003e#13193\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using \u003ccode\u003e_orm.Load.options()\u003c/code\u003e to apply a chained loader\noption such as \u003ccode\u003e_orm.joinedload()\u003c/code\u003e or \u003ccode\u003e_orm.selectinload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot generate the necessary clauses for the polymorphic subclasses. The\npolymorphic loading strategy is now correctly propagated when using a call\nsuch as \u003ccode\u003ejoinedload(A.b).options(joinedload(B.c.of_type(poly)))\u003c/code\u003e to match\nthe behavior of direct chaining e.g.\n\u003ccode\u003ejoinedload(A.b).joinedload(B.c.of_type(poly))\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13202\"\u003e#13202\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using chained loader options such as\n\u003ccode\u003e_orm.selectinload()\u003c/code\u003e after \u003ccode\u003e_orm.joinedload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot properly apply the chained loader option. The loader option is now\ncorrectly applied when using a call such as\n\u003ccode\u003ejoinedload(A.b.of_type(poly)).selectinload(poly.SubClass.c)\u003c/code\u003e to eagerly\nload related objects.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13209\"\u003e#13209\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etyping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[typing] [bug]\u003c/strong\u003e Fixed a typing issue where the typed members of :data:\u003ccode\u003e.func\u003c/code\u003e would return\nthe appropriate class of the same name, however this creates an issue for\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dependency-injector` from 4.48.3 to 4.49.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.49.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.14 support\u003c/li\u003e\n\u003cli\u003eFix Pydantic v2 deprecation warning triggering on settings class import (fixes \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix grammar in Declarative Container documentation by \u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing warn_unresolved parameter to WiringConfiguration in containers.pyi by \u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd keep_cache argument to Container.wire typings by \u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for some type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/943\"\u003eets-labs/python-dependency-injector#943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for remaining type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/953\"\u003eets-labs/python-dependency-injector#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd provided()\u003c!-- raw HTML omitted --\u003e.call *args, **kwargs arguments \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/945\"\u003e#945\u003c/a\u003e by \u003ca href=\"https://github.com/pavalso\"\u003e\u003ccode\u003e@​pavalso\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/946\"\u003eets-labs/python-dependency-injector#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd context local resource by \u003ca href=\"https://github.com/elina-israyelyan\"\u003e\u003ccode\u003e@​elina-israyelyan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/931\"\u003eets-labs/python-dependency-injector#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI/CD to \u003ccode\u003eactions/checkout@v6\u003c/code\u003e, \u003ccode\u003eactions/setup-python@v6\u003c/code\u003e, \u003ccode\u003eactions/download-artifact@v8\u003c/code\u003e, \u003ccode\u003eactions/upload-artifact@v7\u003c/code\u003e and \u003ccode\u003epypa/cibuildwheel@v3.4.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdd dependabot config for GitHub Actions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pavalso\"\u003e\u003ccode\u003e@​pavalso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/946\"\u003eets-labs/python-dependency-injector#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elina-israyelyan\"\u003e\u003ccode\u003e@​elina-israyelyan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/931\"\u003eets-labs/python-dependency-injector#931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5f7aa1c337c77e782e1e927eb4b1e41a60912604\"\u003e\u003ccode\u003e5f7aa1c\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5863d99bd5e9b2d22c15f3815b23973317a453ee\"\u003e\u003ccode\u003e5863d99\u003c/code\u003e\u003c/a\u003e Add .github/dependabot.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/000c670c7e655cc7db423a76c6b877d185f706ce\"\u003e\u003ccode\u003e000c670\u003c/code\u003e\u003c/a\u003e Upgrade GHA actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/931084070a5304a26a925961375a5afcc3c3a38b\"\u003e\u003ccode\u003e9310840\u003c/code\u003e\u003c/a\u003e Fix iscoroutinefunction import for older Pythons\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/05a5e7d8701a1df8cb88ad55d187ba88cd6ffbe8\"\u003e\u003ccode\u003e05a5e7d\u003c/code\u003e\u003c/a\u003e Fix get_annotations import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/58700d9dbd3420a559330666edfb477418997ff9\"\u003e\u003ccode\u003e58700d9\u003c/code\u003e\u003c/a\u003e Use from import statements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/0e25331738716d5bfa5562d42617deb6ad65d23c\"\u003e\u003ccode\u003e0e25331\u003c/code\u003e\u003c/a\u003e Do not build nogil wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1696986aa7698120a7e2aab2355d93e178fc36f9\"\u003e\u003ccode\u003e1696986\u003c/code\u003e\u003c/a\u003e Python 3.14 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/525935137e81355657e44b454c0f7b19b69fdc7b\"\u003e\u003ccode\u003e5259351\u003c/code\u003e\u003c/a\u003e Add context local resource (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/931\"\u003e#931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/76d5932b7340719eac2b737bd444daacc7bb0682\"\u003e\u003ccode\u003e76d5932\u003c/code\u003e\u003c/a\u003e Add provided()\u0026lt;func\u0026gt;.call *args, **kwargs arguments (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/946\"\u003e#946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 7.0.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0 (2026-03-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed total coverage computation to always be consistent, regardless of reporting settings.\nPreviously some reports could produce different total counts, and consequently can make --cov-fail-under behave different depending on\nreporting options.\nSee \u003ccode\u003e[#641](https://github.com/pytest-dev/pytest-cov/issues/641) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/641\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove handling of ResourceWarning from sqlite3.\u003c/p\u003e\n\u003cp\u003eThe plugin adds warning filter for sqlite3 \u003ccode\u003eResourceWarning\u003c/code\u003e unclosed database (since 6.2.0).\nIt checks if there is already existing plugin for this message by comparing filter regular expression.\nWhen filter is specified on command line the message is escaped and does not match an expected message.\nA check for an escaped regular expression is added to handle this case.\u003c/p\u003e\n\u003cp\u003eWith this fix one can suppress \u003ccode\u003eResourceWarning\u003c/code\u003e from sqlite3 from command line::\u003c/p\u003e\n\u003cp\u003epytest -W \u0026quot;ignore:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\u0026quot; ...\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to documentation.\nContributed by Art Pelling in \u003ccode\u003e[#718](https://github.com/pytest-dev/pytest-cov/issues/718) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/718\u0026gt;\u003c/code\u003e_ and\n\u0026quot;vivodi\u0026quot; in \u003ccode\u003e[#738](https://github.com/pytest-dev/pytest-cov/issues/738) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/738\u0026gt;\u003c/code\u003e\u003cem\u003e.\nAlso closed \u003ccode\u003e[#736](https://github.com/pytest-dev/pytest-cov/issues/736) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/736\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed some assertions in tests.\nContributed by in Markéta Machová in \u003ccode\u003e[#722](https://github.com/pytest-dev/pytest-cov/issues/722) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/722\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved unnecessary coverage configuration copying (meant as a backup because reporting commands had configuration side-effects before coverage 5.0).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/66c8a526b1246b5eb8fb1bc218878131bc628622\"\u003e\u003ccode\u003e66c8a52\u003c/code\u003e\u003c/a\u003e Bump version: 7.0.0 → 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f7076624784332594aa4cb3585d4757d295db15e\"\u003e\u003ccode\u003ef707662\u003c/code\u003e\u003c/a\u003e Make the examples use pypy 3.11.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/6049a7847872e3139e6c82e93787123df5dc8672\"\u003e\u003ccode\u003e6049a78\u003c/code\u003e\u003c/a\u003e Make context test use the old ctracer (seems the new sysmon tracer behaves di...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/8ebf20bbbc73478b3f8fd36d30237d9ea083f06b\"\u003e\u003ccode\u003e8ebf20b\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/861d30e60d571f97259c6b718b71c819d5dbc3b9\"\u003e\u003ccode\u003e861d30e\u003c/code\u003e\u003c/a\u003e Remove the backup context manager  - shouldn't be needed since coverage 5.0, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/fd4c956014035527f0c3c8d7faef3f8cfdadac7f\"\u003e\u003ccode\u003efd4c956\u003c/code\u003e\u003c/a\u003e Pass the precision on the nulled total (seems that there's some caching goion...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/78c9c4ecb005faf4962fd86ff7bf9c9cce9554d6\"\u003e\u003ccode\u003e78c9c4e\u003c/code\u003e\u003c/a\u003e Only run the 3.9 on older deps.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/4849a922e8be725c662a3d9175da571ace6545dc\"\u003e\u003ccode\u003e4849a92\u003c/code\u003e\u003c/a\u003e Punctuation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/197c35e2f37031fd1927715307ab6eed7cb3d2b7\"\u003e\u003ccode\u003e197c35e\u003c/code\u003e\u003c/a\u003e Update changelog and hopefully I don't forget to publish release again :))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/14dc1c92d44108384e39803888635fdbfc578b7f\"\u003e\u003ccode\u003e14dc1c9\u003c/code\u003e\u003c/a\u003e Update examples to use 3.11 and make the adhoc layout example look a bit more...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hypothesis` from 6.151.9 to 6.152.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/HypothesisWorks/hypothesis/releases\"\u003ehypothesis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eHypothesis for Python - version 6.152.4\u003c/h2\u003e\n\u003cp\u003eThis patch fixes a rare internal error during \u0026quot;Phase.explain\u0026quot;\nintroduced in version 6.149.0 for certain strategies (issue \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4708\"\u003e#4708\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-152-4\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.152.3\u003c/h2\u003e\n\u003cp\u003eThe \u0026quot;hypothesis-urandom\u0026quot; backend now reads from \u0026quot;/dev/urandom\u0026quot; with\nbuffering disabled, which improves the control of those hooking\n\u0026quot;/dev/urandom\u0026quot; to change or read Hypothesis's random decisions.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-152-3\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.152.2\u003c/h2\u003e\n\u003cp\u003eThis release further improves printing of generated values, building\non the changes in  version 6.151.11.\u003c/p\u003e\n\u003cp\u003ePrinciple changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIn many cases where we would have printed a complex expression\nproducing a value, we now print the repr (or a pretty-printed\nversion of it).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdditionally, in some cases where we would print a complex\nexpression that involved a lambda, we are now able to simplify that\nexpression into a more readable one.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-152-2\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.152.1\u003c/h2\u003e\n\u003cp\u003eImprove some internal type hints.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-152-1\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.152.0\u003c/h2\u003e\n\u003cp\u003eHypothesis generally recommends that the \u0026quot;.hypothesis\u0026quot; directory not\nbe checked into version control. As a result, Hypothesis now\nautomatically creates a \u0026quot;.gitignore\u0026quot; with \u0026quot;*\u0026quot; in the \u0026quot;.hypothesis\u0026quot;\ndirectory, which excludes it from being tracked by git.\u003c/p\u003e\n\u003cp\u003eIf you do want to check \u0026quot;.hypothesis\u0026quot; into git, you can remove the\n\u0026quot;.gitignore\u0026quot; file. Hypothesis will not re-create it unless the entire\n\u0026quot;.hypothesis\u0026quot; directory is removed.\u003c/p\u003e\n\u003cp\u003e\u003cem\u003e\u003ca href=\"https://hypothesis.readthedocs.io/en/latest/changelog.html#v6-152-0\"\u003eThe canonical version of these notes (with links) is on readthedocs.\u003c/a\u003e\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eHypothesis for Python - version 6.151.14\u003c/h2\u003e\n\u003cp\u003eThis patch fixes our \u0026quot;from_regex()\u0026quot; type annotations so that\n\u0026quot;from_regex(..., alphabet=None)\u0026quot; is accepted.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/84f92dcf29229e37f822ba3ba5eea4212d2abf35\"\u003e\u003ccode\u003e84f92dc\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.152.4 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/c6814df503fd6afe4bf03831020572c6be44976b\"\u003e\u003ccode\u003ec6814df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4717\"\u003e#4717\u003c/a\u003e from HypothesisWorks/DRMacIver/issue4708\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/82e9446a6d7a22318a9cca8612bb35a1f404e9e1\"\u003e\u003ccode\u003e82e9446\u003c/code\u003e\u003c/a\u003e Address PR review feedback\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/c77d7e746f3b82ba513f8a22a1ae3bed0ecb52d8\"\u003e\u003ccode\u003ec77d7e7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4719\"\u003e#4719\u003c/a\u003e from Liam-DeVoe/fix-mobile-word-wrapping\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/609de04108945b1ee711a514c3bfa520f75b71e9\"\u003e\u003ccode\u003e609de04\u003c/code\u003e\u003c/a\u003e Bump hypothesis-python version to 6.152.3 and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/902f1baddcbc0059eee61b3518a07489935e28ef\"\u003e\u003ccode\u003e902f1ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4720\"\u003e#4720\u003c/a\u003e from Liam-DeVoe/urandom-disable-buffering\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/da81118e4cf06651c63ade29892fe45562a4afbc\"\u003e\u003ccode\u003eda81118\u003c/code\u003e\u003c/a\u003e claude: open /dev/urandom with buffering=0 in URandomProvider\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/4d6a7f0a37f47190694b91ba1072f069a093959f\"\u003e\u003ccode\u003e4d6a7f0\u003c/code\u003e\u003c/a\u003e fix footnote overflow on mobile\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/80fada332e4a5cd19e22ac6be9f7dcfea71d9b68\"\u003e\u003ccode\u003e80fada3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/HypothesisWorks/hypothesis/issues/4714\"\u003e#4714\u003c/a\u003e from HypothesisWorks/DRMacIver/uv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HypothesisWorks/hypothesis/commit/4b554b04eec7d8ce685ec126720b562a91e04d09\"\u003e\u003ccode\u003e4b554b0\u003c/code\u003e\u003c/a\u003e Fix AssertionError in Shrinker.explain() for unstable span labels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/HypothesisWorks/hypothesis/compare/hypothesis-python-6.151.9...hypothesis-python-6.152.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.6 to 0.15.12\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.12\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:ignore\u003c/code\u003e logical-line suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23404\"\u003e#23404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert preview changes to displayed diagnostic severity in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24789\"\u003e#24789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003etask-branch-as-short-circuit\u003c/code\u003e (\u003ccode\u003eAIR004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23579\"\u003e#23579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix \u003ccode\u003ebreak\u003c/code\u003e/\u003ccode\u003econtinue\u003c/code\u003e handling in \u003ccode\u003eloop-iterator-mutation\u003c/code\u003e (\u003ccode\u003eB909\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24440\"\u003e#24440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2701\u003c/code\u003e for type parameter scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24576\"\u003e#24576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Suggest \u003ccode\u003e.array\u003c/code\u003e as well in \u003ccode\u003ePD011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24805\"\u003e#24805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect default Unix permissions for cache files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24794\"\u003e#24794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR0124\u003c/code\u003e description not to claim self-comparison always returns the same value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24749\"\u003e#24749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Expand docs on reusable \u003ccode\u003eTypeVar\u003c/code\u003es and scoping (\u003ccode\u003eUP046\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24153\"\u003e#24153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rules table accessibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24711\"\u003e#24711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avasis-ai\"\u003e\u003ccode\u003e@​avasis-ai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShipItAndPray\"\u003e\u003ccode\u003e@​ShipItAndPray\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.12\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.12/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.12\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:ignore\u003c/code\u003e logical-line suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23404\"\u003e#23404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert preview changes to displayed diagnostic severity in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24789\"\u003e#24789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003etask-branch-as-short-circuit\u003c/code\u003e (\u003ccode\u003eAIR004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23579\"\u003e#23579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix \u003ccode\u003ebreak\u003c/code\u003e/\u003ccode\u003econtinue\u003c/code\u003e handling in \u003ccode\u003eloop-iterator-mutation\u003c/code\u003e (\u003ccode\u003eB909\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24440\"\u003e#24440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2701\u003c/code\u003e for type parameter scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24576\"\u003e#24576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Suggest \u003ccode\u003e.array\u003c/code\u003e as well in \u003ccode\u003ePD011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24805\"\u003e#24805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect default Unix permissions for cache files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24794\"\u003e#24794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR0124\u003c/code\u003e description not to claim self-comparison always returns the same value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24749\"\u003e#24749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Expand docs on reusable \u003ccode\u003eTypeVar\u003c/code\u003es and scoping (\u003ccode\u003eUP046\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24153\"\u003e#24153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rules table accessibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24711\"\u003e#24711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avasis-ai\"\u003e\u003ccode\u003e@​avasis-ai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShipItAndPray\"\u003e\u003ccode\u003e@​ShipItAndPray\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/66f93cf7ed4d36325f35a452e4afa28268fbcd28\"\u003e\u003ccode\u003e66f93cf\u003c/code\u003e\u003c/a\u003e Bump 0.15.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24815\"\u003e#24815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/476a4d02e8e3b6c157ac39979d8b698a1b6baa91\"\u003e\u003ccode\u003e476a4d0\u003c/code\u003e\u003c/a\u003e [ty] Complete support for more detailed diagnostics on possibly unbound error...\u003c/li\u003e\n\u003cli\u003e\u003ca hr...\n\n_Description has been truncated_","html_url":"https://github.com/nikmosi/twitch-sub-bot/pull/140","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/nikmosi%2Ftwitch-sub-bot/issues/140","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/140/packages"}},{"old_version":"4.48.3","new_version":"4.49.0","update_type":"minor","path":null,"pr_created_at":"2026-04-27T01:22:03.000Z","version_change":"4.48.3 → 4.49.0","issue":{"uuid":"4332537561","node_id":"PR_kwDORMFN3c7Vy9Sk","number":136,"state":"closed","title":"chore(deps): Bump the python-minor-patch group across 1 directory with 38 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-05-11T01:21:38.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-27T01:22:03.000Z","updated_at":"2026-05-11T01:21:40.000Z","time_to_close":1209575,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"python-minor-patch","update_count":38,"packages":[{"name":"fastapi","old_version":"0.135.1","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.42.0","new_version":"0.46.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"python-multipart","old_version":"0.0.22","new_version":"0.0.27","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"sqlalchemy","old_version":"2.0.48","new_version":"2.0.49","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.13.1","new_version":"2.14.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"redis","old_version":"7.3.0","new_version":"7.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"meilisearch","old_version":"0.40.0","new_version":"0.41.0","repository_url":"https://github.com/meilisearch/meilisearch-python"},{"name":"supabase","old_version":"2.28.2","new_version":"2.29.0","repository_url":"https://github.com/supabase/supabase-py"},{"name":"postgrest","old_version":"2.28.2","new_version":"2.29.0","repository_url":"https://github.com/supabase/supabase-py"},{"name":"storage3","old_version":"2.28.2","new_version":"2.29.0","repository_url":"https://github.com/supabase/supabase-py"},{"name":"anthropic","old_version":"0.85.0","new_version":"0.97.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"openai","old_version":"2.28.0","new_version":"2.33.0","repository_url":"https://github.com/openai/openai-python"},{"name":"claude-agent-sdk","old_version":"0.1.48","new_version":"0.1.72","repository_url":"https://github.com/anthropics/claude-agent-sdk-python"},{"name":"dependency-injector","old_version":"4.48.3","new_version":"4.49.0","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"orjson","old_version":"3.11.7","new_version":"3.11.8","repository_url":"https://github.com/ijl/orjson"},{"name":"ua-parser","old_version":"1.0.1","new_version":"1.0.2","repository_url":"https://github.com/ua-parser/uap-python"},{"name":"anyio","old_version":"4.12.1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"certifi","old_version":"2026.2.25","new_version":"2026.4.22","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.6","new_version":"3.4.7","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.1","new_version":"8.3.3","repository_url":"https://github.com/pallets/click"},{"name":"docstring-parser","old_version":"0.17.0","new_version":"0.18.0","repository_url":"https://github.com/rr-/docstring_parser"},{"name":"fsspec","old_version":"2026.2.0","new_version":"2026.4.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"greenlet","old_version":"3.3.2","new_version":"3.5.0","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"idna","old_version":"3.11","new_version":"3.13","repository_url":"https://github.com/kjd/idna"},{"name":"jiter","old_version":"0.13.0","new_version":"0.14.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"mako","old_version":"1.3.10","new_version":"1.3.12","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"mcp","old_version":"1.26.0","new_version":"1.27.0","repository_url":"https://github.com/modelcontextprotocol/python-sdk"},{"name":"numpy","old_version":"2.4.3","new_version":"2.4.4","repository_url":"https://github.com/numpy/numpy"},{"name":"packaging","old_version":"26.0","new_version":"26.2","repository_url":"https://github.com/pypa/packaging"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.46.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.19.2","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyroaring","old_version":"1.0.3","new_version":"1.1.0","repository_url":"https://github.com/Ezibenroc/PyRoaringBitMap"},{"name":"realtime","old_version":"2.28.2","new_version":"2.29.0","repository_url":"https://github.com/supabase/supabase-py"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"sse-starlette","old_version":"3.3.2","new_version":"3.4.1","repository_url":"https://github.com/sysid/sse-starlette"},{"name":"supabase-auth","old_version":"2.28.2","new_version":"2.29.0","repository_url":"https://github.com/supabase/supabase-py"},{"name":"supabase-functions","old_version":"2.28.2","new_version":"2.29.0","repository_url":"https://github.com/supabase/supabase-py"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 38 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.135.1` | `0.136.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.42.0` | `0.46.0` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.22` | `0.0.27` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.48` | `2.0.49` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.3` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.13.1` | `2.14.0` |\n| [redis](https://github.com/redis/redis-py) | `7.3.0` | `7.4.0` |\n| [meilisearch](https://github.com/meilisearch/meilisearch-python) | `0.40.0` | `0.41.0` |\n| [supabase](https://github.com/supabase/supabase-py) | `2.28.2` | `2.29.0` |\n| [postgrest](https://github.com/supabase/supabase-py) | `2.28.2` | `2.29.0` |\n| [storage3](https://github.com/supabase/supabase-py) | `2.28.2` | `2.29.0` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.85.0` | `0.97.0` |\n| [openai](https://github.com/openai/openai-python) | `2.28.0` | `2.33.0` |\n| [claude-agent-sdk](https://github.com/anthropics/claude-agent-sdk-python) | `0.1.48` | `0.1.72` |\n| [dependency-injector](https://github.com/ets-labs/python-dependency-injector) | `4.48.3` | `4.49.0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.7` | `3.11.8` |\n| [ua-parser](https://github.com/ua-parser/uap-python) | `1.0.1` | `1.0.2` |\n| [anyio](https://github.com/agronholm/anyio) | `4.12.1` | `4.13.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2026.2.25` | `2026.4.22` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.6` | `3.4.7` |\n| [click](https://github.com/pallets/click) | `8.3.1` | `8.3.3` |\n| [docstring-parser](https://github.com/rr-/docstring_parser) | `0.17.0` | `0.18.0` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.2.0` | `2026.4.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.3.2` | `3.5.0` |\n| [idna](https://github.com/kjd/idna) | `3.11` | `3.13` |\n| [jiter](https://github.com/pydantic/jiter) | `0.13.0` | `0.14.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.3.12` |\n| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `1.26.0` | `1.27.0` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.3` | `2.4.4` |\n| [packaging](https://github.com/pypa/packaging) | `26.0` | `26.2` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.5` | `2.46.3` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.2` | `2.20.0` |\n| [pyroaring](https://github.com/Ezibenroc/PyRoaringBitMap) | `1.0.3` | `1.1.0` |\n| [realtime](https://github.com/supabase/supabase-py) | `2.28.2` | `2.29.0` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [sse-starlette](https://github.com/sysid/sse-starlette) | `3.3.2` | `3.4.1` |\n| [supabase-auth](https://github.com/supabase/supabase-py) | `2.28.2` | `2.29.0` |\n| [supabase-functions](https://github.com/supabase/supabase-py) | `2.28.2` | `2.29.0` |\n\n\nUpdates `fastapi` from 0.135.1 to 0.136.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.136.1\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Update Pydantic v2 code to address deprecations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15101\"\u003e#15101\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Tweak translation script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15174\"\u003e#15174\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.7.1 to 9.7.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15408\"\u003e#15408\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump inline-snapshot from 0.31.1 to 0.32.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15409\"\u003e#15409\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-codspeed from 4.3.0 to 4.4.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15407\"\u003e#15407\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest-cov from 7.0.0 to 7.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15406\"\u003e#15406\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15405\"\u003e#15405\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mypy from 1.19.1 to 1.20.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15410\"\u003e#15410\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-dotenv from 1.2.1 to 1.2.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15400\"\u003e#15400\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump starlette from 0.52.1 to 1.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15397\"\u003e#15397\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygithub from 2.8.1 to 2.9.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15396\"\u003e#15396\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pyjwt from 2.12.0 to 2.12.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15393\"\u003e#15393\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump zizmor from 1.23.1 to 1.24.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15394\"\u003e#15394\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.312.3 to 0.314.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15395\"\u003e#15395\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump python-multipart from 0.0.22 to 0.0.26. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15360\"\u003e#15360\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump authlib from 1.6.9 to 1.6.11. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15373\"\u003e#15373\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump aiohttp from 3.13.3 to 3.13.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15282\"\u003e#15282\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15263\"\u003e#15263\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pymdown-extensions from 10.20.1 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15391\"\u003e#15391\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pillow from 12.1.1 to 12.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15333\"\u003e#15333\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pytest from 9.0.2 to 9.0.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15334\"\u003e#15334\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15374\"\u003e#15374\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15385\"\u003e#15385\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Zuplo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15369\"\u003e#15369\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update sponsors: remove Speakeasy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15368\"\u003e#15368\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔒️ Add zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15316\"\u003e#15316\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.136.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Support free-threaded Python 3.14t. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15149\"\u003e#15149\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15363\"\u003e#15363\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump cryptography from 46.0.5 to 46.0.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15314\"\u003e#15314\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15309\"\u003e#15309\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15293\"\u003e#15293\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.3\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e54e5a8980ffa6d7ff68ee7b25a1c46036375521\"\u003e\u003ccode\u003ee54e5a8\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9a8a5fd99902c3b80d4cc94b85e120e2b808825f\"\u003e\u003ccode\u003e9a8a5fd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7815a32f2ed177b8b786a48b3e0712c05b5c644f\"\u003e\u003ccode\u003e7815a32\u003c/code\u003e\u003c/a\u003e ⬆️ Update Pydantic v2 code to address deprecations (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15101\"\u003e#15101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ef1c927b0558d414e199a666833942a6fabb3a51\"\u003e\u003ccode\u003eef1c927\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/38039e12a86e67f2001b9b7d96c219691d6cb4af\"\u003e\u003ccode\u003e38039e1\u003c/code\u003e\u003c/a\u003e 🔨 Tweak translation script (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15174\"\u003e#15174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4fa826ce0a3b16884a04f51e5aac95d01790b599\"\u003e\u003ccode\u003e4fa826c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c39415673e621665fdb7bbdde69beba7eb1dfd12\"\u003e\u003ccode\u003ec394156\u003c/code\u003e\u003c/a\u003e ⬆ Bump mkdocs-material from 9.7.1 to 9.7.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15408\"\u003e#15408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ae230ad2f9d90a4e3f6222ff1a5d6e8da41ec0ad\"\u003e\u003ccode\u003eae230ad\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d9eb39d1a1bf2f6e6e5d3a55088f61c712cb864e\"\u003e\u003ccode\u003ed9eb39d\u003c/code\u003e\u003c/a\u003e ⬆ Bump inline-snapshot from 0.31.1 to 0.32.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15409\"\u003e#15409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4f8b5d14d324ae8e15cfae8d85adb4186d4c2175\"\u003e\u003ccode\u003e4f8b5d1\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.135.1...0.136.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.42.0 to 0.46.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.46.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2915\"\u003eKludex/uvicorn#2915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2916\"\u003eKludex/uvicorn#2916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in websockets-sansio by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2917\"\u003eKludex/uvicorn#2917\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.45.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve forwarded client ports in proxy headers middleware by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2903\"\u003eKludex/uvicorn#2903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003eos.PathLike\u003c/code\u003e for \u003ccode\u003elog_config\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2905\"\u003eKludex/uvicorn#2905\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2907\"\u003eKludex/uvicorn#2907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRaise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2906\"\u003eKludex/uvicorn#2906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert empty context for ASGI runs by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2911\"\u003eKludex/uvicorn#2911\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2912\"\u003eKludex/uvicorn#2912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e) by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2913\"\u003eKludex/uvicorn#2913\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Krishnachaitanyakc\"\u003e\u003ccode\u003e@​Krishnachaitanyakc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2870\"\u003eKludex/uvicorn#2870\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.44.0...0.45.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.44.0...0.45.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.44.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2888\"\u003eKludex/uvicorn#2888\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.43.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.46.0 (April 23, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2916\"\u003e#2916\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in \u003ccode\u003ewebsockets-sansio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2917\"\u003e#2917\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.45.0 (April 21, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2912\"\u003e#2912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003eos.PathLike\u003c/code\u003e for \u003ccode\u003elog_config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2905\"\u003e#2905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRevert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2913\"\u003e#2913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;Explicitly start ASGI run with empty context\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve forwarded client ports in proxy headers middleware (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2903\"\u003e#2903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRaise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2906\"\u003e#2906\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.44.0 (April 6, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2888\"\u003e#2888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.43.0 (April 3, 2026)\u003c/h2\u003e\n\u003cp\u003eYou can quit Uvicorn now. We heard you, \u003ca href=\"https://github.com/pamelafox\"\u003e\u003ccode\u003e@​pamelafox\u003c/code\u003e\u003c/a\u003e - all 47 of your Ctrl+C's (thanks for flagging it, and thanks to \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e for the fix 🙏). \u003ca href=\"https://x.com/pamelafox/status/2039097686155227623\"\u003eSee the tweet\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/b224045f5900b7f766743bcb16ba9fc3adea2606\"\u003e\u003ccode\u003eb224045\u003c/code\u003e\u003c/a\u003e Version 0.46.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2918\"\u003e#2918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7375b5bf66d962186d663e85615d4b4d956bf880\"\u003e\u003ccode\u003e7375b5b\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003ebytearray\u003c/code\u003e for incoming WebSocket message buffer in websockets-sansio (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d438fb16fe2d23c7bbc2ca7094645cff1f116458\"\u003e\u003ccode\u003ed438fb1\u003c/code\u003e\u003c/a\u003e Support \u003ccode\u003ews_ping_interval\u003c/code\u003e and \u003ccode\u003ews_ping_timeout\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3e6b96446653d0156434bce529a14c80764c9eda\"\u003e\u003ccode\u003e3e6b964\u003c/code\u003e\u003c/a\u003e Support \u003ccode\u003ews_max_size\u003c/code\u003e in \u003ccode\u003ewsproto\u003c/code\u003e implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2915\"\u003e#2915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/2c423bd82be169459ea254a61476de34767e0326\"\u003e\u003ccode\u003e2c423bd\u003c/code\u003e\u003c/a\u003e Version 0.45.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2914\"\u003e#2914\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7f027f8e25e47668a9c2ce8b5c21b35054c48d02\"\u003e\u003ccode\u003e7f027f8\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e on server shutdown for streaming responses\u0026quot; (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/73a80c3cc87de269ed016e584a25e585ae6f2b44\"\u003e\u003ccode\u003e73a80c3\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--reset-contextvars\u003c/code\u003e flag to isolate ASGI request context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2912\"\u003e#2912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/45c0b568d38e9bf4f2f036bc2d79eb98b0e72f72\"\u003e\u003ccode\u003e45c0b56\u003c/code\u003e\u003c/a\u003e Revert empty context for ASGI runs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/850d92656de0cb5859ee5f6ba252e19ad3d38989\"\u003e\u003ccode\u003e850d926\u003c/code\u003e\u003c/a\u003e Raise helpful \u003ccode\u003eImportError\u003c/code\u003e when PyYAML is missing for YAML log config (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2906\"\u003e#2906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/fdcacb4b83bc686ea1ba9e50ffe5b8cfe49b3e00\"\u003e\u003ccode\u003efdcacb4\u003c/code\u003e\u003c/a\u003e Accept \u003ccode\u003elog_level\u003c/code\u003e strings case-insensitively (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2907\"\u003e#2907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.42.0...0.46.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.22 to 0.0.27\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.27\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePass parse offsets via constructors by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/268\"\u003eKludex/python-multipart#268\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd multipart header limits by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/267\"\u003eKludex/python-multipart#267\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.26\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before first multipart boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003eKludex/python-multipart#262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003eKludex/python-multipart#259\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply Apache-2.0 properly by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003eKludex/python-multipart#247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003eKludex/python-multipart#252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003eKludex/python-multipart#230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003eKludex/python-multipart#254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove custom FormParser classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003eKludex/python-multipart#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003eKludex/python-multipart#258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd MIME content type info to File by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003eKludex/python-multipart#143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003eKludex/python-multipart#244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003eKludex/python-multipart#196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e by \u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/blob/main/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.27 (2026-04-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd multipart header limits \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/267\"\u003e#267\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePass parse offsets via constructors \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/268\"\u003e#268\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.26 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before the first multipart boundary more efficiently \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003e#262\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing multipart boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003e#259\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.25 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd MIME content type info to \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003e#143\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003e#258\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRemove custom \u003ccode\u003eFormParser\u003c/code\u003e classes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003e#257\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003e#254\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003e#230\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003e#252\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eApply Apache-2.0 properly \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003e#247\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.24 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003e#244\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.23 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003e#196\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003e#229\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003e#227\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6d1d6892a6b01b25da6f3e7b097e8e06c57fb250\"\u003e\u003ccode\u003e6d1d689\u003c/code\u003e\u003c/a\u003e Version 0.0.27 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/272\"\u003e#272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/0b10220b1555af068a2bc8b198022b1ae238200f\"\u003e\u003ccode\u003e0b10220\u003c/code\u003e\u003c/a\u003e Run CI on main branch pull requests (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/271\"\u003e#271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/3e64f5f8caba0e5d391b0c1ad0f1c2edf9e8f911\"\u003e\u003ccode\u003e3e64f5f\u003c/code\u003e\u003c/a\u003e Add multipart header limits (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/eb109cc4eb8174f2a7efc1ba894b1bf6425c0b14\"\u003e\u003ccode\u003eeb109cc\u003c/code\u003e\u003c/a\u003e Pass parse offsets via constructors (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/78e29abb9a339598975beee093a770ec3033f76d\"\u003e\u003ccode\u003e78e29ab\u003c/code\u003e\u003c/a\u003e Bump pytest from 9.0.2 to 9.0.3 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/266\"\u003e#266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/b2ddd0982bdf0fe852e4f3baa12122d2827af46c\"\u003e\u003ccode\u003eb2ddd09\u003c/code\u003e\u003c/a\u003e fuzz: Enhance fuzzing capabilities with new chunked and boundary tests (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/28f47859b4a40c2e11e02dc514b2e9743ceedd2e\"\u003e\u003ccode\u003e28f4785\u003c/code\u003e\u003c/a\u003e Version 0.0.26 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d4452a78bbde94995dd3c0d1b4aff3610a5c472f\"\u003e\u003ccode\u003ed4452a7\u003c/code\u003e\u003c/a\u003e Silently discard epilogue data after the closing boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/259\"\u003e#259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6a7b76dd2653d99d8e5981d7ff09a4a047750b37\"\u003e\u003ccode\u003e6a7b76d\u003c/code\u003e\u003c/a\u003e Skip preamble before first multipart boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/4addb60350fc843f77a1502f14247db91930b3bf\"\u003e\u003ccode\u003e4addb60\u003c/code\u003e\u003c/a\u003e Version 0.0.25 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.27\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.48 to 2.0.49\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.49\u003c/h1\u003e\n\u003cp\u003eReleased: April 3, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where \u003ccode\u003e_orm.Session.get()\u003c/code\u003e would bypass the identity map\nand emit unnecessary SQL when \u003ccode\u003ewith_for_update=False\u003c/code\u003e was passed,\nrather than treating it equivalently to the default of \u003ccode\u003eNone\u003c/code\u003e.\nPull request courtesy of Joshua Swanson.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13176\"\u003e#13176\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where chained \u003ccode\u003e_orm.joinedload()\u003c/code\u003e options would not be\napplied correctly when the final relationship in the chain is declared on a\nbase mapper and accessed through a subclass mapper in a\n\u003ccode\u003e_orm.with_polymorphic()\u003c/code\u003e query. The path registry now correctly\ncomputes the natural path when a property declared on a base class is\naccessed through a path containing a subclass mapper, ensuring the loader\noption can be located during query compilation.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13193\"\u003e#13193\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using \u003ccode\u003e_orm.Load.options()\u003c/code\u003e to apply a chained loader\noption such as \u003ccode\u003e_orm.joinedload()\u003c/code\u003e or \u003ccode\u003e_orm.selectinload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot generate the necessary clauses for the polymorphic subclasses. The\npolymorphic loading strategy is now correctly propagated when using a call\nsuch as \u003ccode\u003ejoinedload(A.b).options(joinedload(B.c.of_type(poly)))\u003c/code\u003e to match\nthe behavior of direct chaining e.g.\n\u003ccode\u003ejoinedload(A.b).joinedload(B.c.of_type(poly))\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13202\"\u003e#13202\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using chained loader options such as\n\u003ccode\u003e_orm.selectinload()\u003c/code\u003e after \u003ccode\u003e_orm.joinedload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot properly apply the chained loader option. The loader option is now\ncorrectly applied when using a call such as\n\u003ccode\u003ejoinedload(A.b.of_type(poly)).selectinload(poly.SubClass.c)\u003c/code\u003e to eagerly\nload related objects.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13209\"\u003e#13209\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etyping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[typing] [bug]\u003c/strong\u003e Fixed a typing issue where the typed members of :data:\u003ccode\u003e.func\u003c/code\u003e would return\nthe appropriate class of the same name, however this creates an issue for\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/9e9a11132c980c4ec84ff6d2df06d4c1a55ca8f3\"\u003e\u003ccode\u003e9e9a111\u003c/code\u003e\u003c/a\u003e Fix backported test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1ec8c6aa0cae1c78409c6f31af738a24e16c7124\"\u003e\u003ccode\u003e1ec8c6a\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/fb4f2044436e9fa4ff9745479ce263016a99c4d6\"\u003e\u003ccode\u003efb4f204\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.13.1 to 2.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.14.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix parsing env vars into Optional Strict types by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/792\"\u003epydantic/pydantic-settings#792\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError with mutually recursive models in CLI by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/794\"\u003epydantic/pydantic-settings#794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix env_file from model_config ignored in CliApp.run() (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/795\"\u003e#795\u003c/a\u003e) by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/796\"\u003epydantic/pydantic-settings#796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/798\"\u003epydantic/pydantic-settings#798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Dependabot configuration by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/801\"\u003epydantic/pydantic-settings#801\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump samuelcolvin/check-python-version from 4.1 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/802\"\u003epydantic/pydantic-settings#802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 4 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/803\"\u003epydantic/pydantic-settings#803\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/804\"\u003epydantic/pydantic-settings#804\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv from 5 to 7 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/805\"\u003epydantic/pydantic-settings#805\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/806\"\u003epydantic/pydantic-settings#806\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIgnore chardet and group GitHub Actions in Dependabot by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/808\"\u003epydantic/pydantic-settings#808\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 4 to 8 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/809\"\u003epydantic/pydantic-settings#809\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 2 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/810\"\u003epydantic/pydantic-settings#810\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport reading .env files from FIFOs (e.g. 1Password Environments) by \u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/776\"\u003epydantic/pydantic-settings#776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AliasChoices ignored when changing provider priority by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/813\"\u003epydantic/pydantic-settings#813\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: resolve KeyError in run_subcommand for underscore field names by \u003ca href=\"https://github.com/bradykieffer\"\u003e\u003ccode\u003e@​bradykieffer\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/799\"\u003epydantic/pydantic-settings#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/814\"\u003epydantic/pydantic-settings#814\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eLiteral[numeric Enum]\u003c/code\u003e coercion for CLI and env vars by \u003ca href=\"https://github.com/m9810223\"\u003e\u003ccode\u003e@​m9810223\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/811\"\u003epydantic/pydantic-settings#811\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix nested discriminated unions not discovered by env/CLI providers by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/816\"\u003epydantic/pydantic-settings#816\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/820\"\u003epydantic/pydantic-settings#820\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI ensure env nested max split internally. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/821\"\u003epydantic/pydantic-settings#821\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/824\"\u003epydantic/pydantic-settings#824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate \u003ccode\u003eboto3-stubs\u003c/code\u003e to \u003ccode\u003etypes-boto3\u003c/code\u003e by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/831\"\u003epydantic/pydantic-settings#831\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI not recognizing field name with validate_by_name and AliasChoices by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/826\"\u003epydantic/pydantic-settings#826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow customisation of the dotevn setting source to filter variables by \u003ca href=\"https://github.com/CaselIT\"\u003e\u003ccode\u003e@​CaselIT\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/832\"\u003epydantic/pydantic-settings#832\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/833\"\u003epydantic/pydantic-settings#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce yamlfmt by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/836\"\u003epydantic/pydantic-settings#836\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump boto3 from 1.42.82 to 1.42.83 in the python-packages group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/837\"\u003epydantic/pydantic-settings#837\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntroduce zizmor by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/838\"\u003epydantic/pydantic-settings#838\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CliPositionalArg[list[CustomType]] crash for custom types by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/839\"\u003epydantic/pydantic-settings#839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd note about Mypy plugin for \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/842\"\u003epydantic/pydantic-settings#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ecli_ignore_unknown_args=True\u003c/code\u003e not working on subcommands by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/844\"\u003epydantic/pydantic-settings#844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the python-packages group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/847\"\u003epydantic/pydantic-settings#847\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI descriptions lost under \u003ccode\u003epython -OO\u003c/code\u003e by falling back to \u003ccode\u003ejson_schema_extra\u003c/code\u003e by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/843\"\u003epydantic/pydantic-settings#843\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.14.0 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/848\"\u003epydantic/pydantic-settings#848\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/802\"\u003epydantic/pydantic-settings#802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JacobHayes\"\u003e\u003ccode\u003e@​JacobHayes\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/776\"\u003epydantic/pydantic-settings#776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bradykieffer\"\u003e\u003ccode\u003e@​bradykieffer\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/799\"\u003epydantic/pydantic-settings#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/CaselIT\"\u003e\u003ccode\u003e@​CaselIT\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/832\"\u003epydantic/pydantic-settings#832\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/8916beeecc6d0510e3d0532a0ed839937400ddc3\"\u003e\u003ccode\u003e8916bee\u003c/code\u003e\u003c/a\u003e Prepare release 2.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/848\"\u003e#848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/39e551c0910c85505b608ff85a103b2c9f7396c5\"\u003e\u003ccode\u003e39e551c\u003c/code\u003e\u003c/a\u003e Fix CLI descriptions lost under \u003ccode\u003epython -OO\u003c/code\u003e by falling back to `json_schema_...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/9ed7f48ea2c90f436a03b01f721fe6656c869b14\"\u003e\u003ccode\u003e9ed7f48\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 4 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/847\"\u003e#847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/617c690fb16c95eb0fb98fc88c0d6d82b9af4fa9\"\u003e\u003ccode\u003e617c690\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003ecli_ignore_unknown_args=True\u003c/code\u003e not working on subcommands (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/844\"\u003e#844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/577c05f7e8ac25904da2381db51ed4ddd4b3e4fe\"\u003e\u003ccode\u003e577c05f\u003c/code\u003e\u003c/a\u003e Add note about Mypy plugin for \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/842\"\u003e#842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/2355bc54e9d442ca7916f02de28d0c936e75441c\"\u003e\u003ccode\u003e2355bc5\u003c/code\u003e\u003c/a\u003e Fix CliPositionalArg[list[CustomType]] crash for custom types (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/839\"\u003e#839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/16bd6fd230d6280d52db6ce2a0ffef8f908cc89d\"\u003e\u003ccode\u003e16bd6fd\u003c/code\u003e\u003c/a\u003e Introduce zizmor (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/838\"\u003e#838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/df8b239fe09ba712767bdf378bc90627df375f04\"\u003e\u003ccode\u003edf8b239\u003c/code\u003e\u003c/a\u003e Bump boto3 from 1.42.82 to 1.42.83 in the python-packages group (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/837\"\u003e#837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/c5401a27999cd6c0e93925deb0660cd51013c8b1\"\u003e\u003ccode\u003ec5401a2\u003c/code\u003e\u003c/a\u003e Introduce yamlfmt (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/836\"\u003e#836\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/953e28e6cfe9a9e536375d771a4ffd48535a4ab2\"\u003e\u003ccode\u003e953e28e\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 3 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/833\"\u003e#833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.13.1...v2.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 7.3.0 to 7.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError in cluster metrics recording when connection is None or ClusterNode object instance is used to extract the connection info (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3999\"\u003e#3999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords might leak in plain text logs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3998\"\u003e#3998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cp\u003e-Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpose basic Otel classes and functions to be importable through redis.observability to match the examples in the readthedocs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3996\"\u003e#3996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/b72f24ad6a2226d46aed770e18094a86117d2217\"\u003e\u003ccode\u003eb72f24a\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/0a4e0afe36504c3fb6df1e38683ea946febac9d3\"\u003e\u003ccode\u003e0a4e0af\u003c/code\u003e\u003c/a\u003e Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/15492c9156d3ab8dce05360977480510cf24fbf9\"\u003e\u003ccode\u003e15492c9\u003c/code\u003e\u003c/a\u003e Refactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/cd964ac96649df872a051835e9a52e05a5090607\"\u003e\u003ccode\u003ecd964ac\u003c/code\u003e\u003c/a\u003e Expose basic Otel classes and funtions to be importable through redis.observa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/46ab74d02ed9b15176f67edb817de83524f8145a\"\u003e\u003ccode\u003e46ab74d\u003c/code\u003e\u003c/a\u003e Fixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/26482dbaae38abdb1966d9b1c803331e2dab2053\"\u003e\u003ccode\u003e26482db\u003c/code\u003e\u003c/a\u003e Fix AttributeError in cluster metrics recording when connection is None or Cl...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/redis-py/compare/v7.3.0...v7.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `meilisearch` from 0.40.0 to 0.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/meilisearch/meilisearch-python/releases\"\u003emeilisearch's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.41.0 🐍\u003c/h2\u003e\n\u003ch2\u003e🚀 Enhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for export api (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1171\"\u003e#1171\u003c/a\u003e) \u003ca href=\"https://github.com/jawad-khan\"\u003e\u003ccode\u003e@​jawad-khan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd method to list index fields (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1199\"\u003e#1199\u003c/a\u003e) \u003ca href=\"https://github.com/awais786\"\u003e\u003ccode\u003e@​awais786\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e⚙️ Maintenance/misc\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd AI usage disclosure guidelines to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1196\"\u003e#1196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(ci): use setup-python version for pipenv virtualenv (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1195\"\u003e#1195\u003c/a\u003e) \u003ca href=\"https://github.com/VedantMadane\"\u003e\u003ccode\u003e@​VedantMadane\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed pipenv compatibility issue (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1194\"\u003e#1194\u003c/a\u003e) \u003ca href=\"https://github.com/jawad-khan\"\u003e\u003ccode\u003e@​jawad-khan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update tests for v1.36.0 (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1210\"\u003e#1210\u003c/a\u003e) \u003ca href=\"https://github.com/Strift\"\u003e\u003ccode\u003e@​Strift\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add async usage section linking to meilisearch-python-sdk (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1212\"\u003e#1212\u003c/a\u003e) \u003ca href=\"https://github.com/vibeyclaw\"\u003e\u003ccode\u003e@​vibeyclaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace localhost:7700 with MEILISEARCH_URL (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1213\"\u003e#1213\u003c/a\u003e) \u003ca href=\"https://github.com/Strift\"\u003e\u003ccode\u003e@​Strift\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded missing code samples (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1200\"\u003e#1200\u003c/a\u003e) \u003ca href=\"https://github.com/aznszn\"\u003e\u003ccode\u003e@​aznszn\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused code samples (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1216\"\u003e#1216\u003c/a\u003e) \u003ca href=\"https://github.com/curquiza\"\u003e\u003ccode\u003e@​curquiza\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused code samples (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1217\"\u003e#1217\u003c/a\u003e) \u003ca href=\"https://github.com/curquiza\"\u003e\u003ccode\u003e@​curquiza\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump wrapt from 2.0.1 to 2.1.1 (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1215\"\u003e#1215\u003c/a\u003e) @\u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(docs): add sphinx dependencies to Pipfile dev-packages (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1214\"\u003e#1214\u003c/a\u003e) \u003ca href=\"https://github.com/vibeyclaw\"\u003e\u003ccode\u003e@​vibeyclaw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Added tests and docstrings for showPerformanceDetails (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1206\"\u003e#1206\u003c/a\u003e) \u003ca href=\"https://github.com/jawad-khan\"\u003e\u003ccode\u003e@​jawad-khan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: refactor pipenv installation steps across all workflow files (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1219\"\u003e#1219\u003c/a\u003e) \u003ca href=\"https://github.com/DhavalGojiya\"\u003e\u003ccode\u003e@​DhavalGojiya\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix outdated Pipfile.lock and pipenv install inconsistencies across CI jobs (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1223\"\u003e#1223\u003c/a\u003e) \u003ca href=\"https://github.com/DhavalGojiya\"\u003e\u003ccode\u003e@​DhavalGojiya\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused code samples (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1229\"\u003e#1229\u003c/a\u003e) \u003ca href=\"https://github.com/curquiza\"\u003e\u003ccode\u003e@​curquiza\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pytest from 8.4.1 to 8.4.2 (\u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1151\"\u003e#1151\u003c/a\u003e) @\u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks again to \u003ca href=\"https://github.com/DhavalGojiya\"\u003e\u003ccode\u003e@​DhavalGojiya\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Strift\"\u003e\u003ccode\u003e@​Strift\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/VedantMadane\"\u003e\u003ccode\u003e@​VedantMadane\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/awais786\"\u003e\u003ccode\u003e@​awais786\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/aznszn\"\u003e\u003ccode\u003e@​aznszn\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/curquiza\"\u003e\u003ccode\u003e@​curquiza\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot], \u003ca href=\"https://github.com/jawad-khan\"\u003e\u003ccode\u003e@​jawad-khan\u003c/code\u003e\u003c/a\u003e,  \u003ca href=\"https://github.com/sanders41\"\u003e\u003ccode\u003e@​sanders41\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/vibeyclaw\"\u003e\u003ccode\u003e@​vibeyclaw\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e! 🎉\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/meilisearch/meilisearch-python/commit/bc78e1268a7099e70522b98ffdf1f9e5cd98a7ef\"\u003e\u003ccode\u003ebc78e12\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/meilisearch/meilisearch-python/issues/1151\"\u003e#1151\u003c/a\u003e from meilisearch/dependabot/pip/pytest-8.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/meilisearch/meilisearch-python/commit/dbbe82e710a8fb771d0ca326833d2433ea983564\"...\n\n_Description has been truncated_","html_url":"https://github.com/pilotspace/pilot-space/pull/136","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pilotspace%2Fpilot-space/issues/136","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/136/packages"}},{"old_version":"4.48.3","new_version":"4.49.0","update_type":"minor","path":null,"pr_created_at":"2026-04-20T16:00:47.000Z","version_change":"4.48.3 → 4.49.0","issue":{"uuid":"4297012153","node_id":"PR_kwDOQGXyZ87UA8Pi","number":17,"state":"closed","title":"chore(deps): bump the python-packages group across 1 directory with 9 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-27T16:59:30.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-20T16:00:47.000Z","updated_at":"2026-04-27T16:59:33.000Z","time_to_close":608323,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-packages","update_count":9,"packages":[{"name":"attrs","old_version":"25.4.0","new_version":"26.1.0","repository_url":"https://github.com/python-attrs/attrs"},{"name":"django","old_version":"5.2.10","new_version":"5.2.13","repository_url":"https://github.com/django/django"},{"name":"djangorestframework","old_version":"3.16.1","new_version":"3.17.1","repository_url":"https://github.com/encode/django-rest-framework"},{"name":"dependency-injector","old_version":"4.48.3","new_version":"4.49.0","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"gunicorn","old_version":"23.0.0","new_version":"25.3.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"mypy","old_version":"1.19.1","new_version":"1.20.1","repository_url":"https://github.com/python/mypy"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"django-stubs","old_version":"6.0.1","new_version":"6.0.3","repository_url":"https://github.com/typeddjango/django-stubs"},{"name":"packaging","old_version":"26.0","new_version":"26.1","repository_url":"https://github.com/pypa/packaging"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-packages group with 9 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [attrs](https://github.com/python-attrs/attrs) | `25.4.0` | `26.1.0` |\n| [django](https://github.com/django/django) | `5.2.10` | `5.2.13` |\n| [djangorestframework](https://github.com/encode/django-rest-framework) | `3.16.1` | `3.17.1` |\n| [dependency-injector](https://github.com/ets-labs/python-dependency-injector) | `4.48.3` | `4.49.0` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `25.3.0` |\n| [mypy](https://github.com/python/mypy) | `1.19.1` | `1.20.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [django-stubs](https://github.com/typeddjango/django-stubs) | `6.0.1` | `6.0.3` |\n| [packaging](https://github.com/pypa/packaging) | `26.0` | `26.1` |\n\n\nUpdates `attrs` from 25.4.0 to 26.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-attrs/attrs/releases\"\u003eattrs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eThe main outward change here only affects people using field transformers, but it should be a nice quality of life improvement!\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFull changelog below!\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eSpecial Thanks\u003c/h2\u003e\n\u003cp\u003eThis release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If \u003cem\u003eyou\u003c/em\u003e would like to join them, go to \u003ca href=\"https://github.com/sponsors/hynek\"\u003ehttps://github.com/sponsors/hynek\u003c/a\u003e and check out the sweet perks!\u003c/p\u003e\n\u003ch3\u003eAbove and Beyond\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://www.variomedia.de/\"\u003eVariomedia AG\u003c/a\u003e (@\u003ca href=\"https://github.com/variomedia\"\u003evariomedia\u003c/a\u003e), \u003ca href=\"https://www.tidelift.com/\"\u003eTidelift\u003c/a\u003e (@\u003ca href=\"https://github.com/tidelift\"\u003etidelift\u003c/a\u003e), \u003ca href=\"https://kraken.tech\"\u003eKraken Tech\u003c/a\u003e (@\u003ca href=\"https://github.com/kraken-tech\"\u003ekraken-tech\u003c/a\u003e), \u003ca href=\"https://privacy-solutions.org\"\u003ePrivacy Solutions GmbH\u003c/a\u003e (@\u003ca href=\"https://github.com/privacy-solutions\"\u003eprivacy-solutions\u003c/a\u003e), \u003ca href=\"http://filepreviews.io/\"\u003eFilePreviews\u003c/a\u003e (@\u003ca href=\"https://github.com/filepreviews\"\u003efilepreviews\u003c/a\u003e), \u003ca href=\"https://ecosyste.ms\"\u003eEcosystems\u003c/a\u003e (@\u003ca href=\"https://github.com/ecosyste-ms\"\u003eecosyste-ms\u003c/a\u003e), \u003ca href=\"https://www.lambdatest.com\"\u003eTestMu AI Open Source Office (Formerly LambdaTest)\u003c/a\u003e (@\u003ca href=\"https://github.com/LambdaTest-Inc\"\u003eLambdaTest-Inc\u003c/a\u003e), \u003ca href=\"https://doist.com/\"\u003eDoist\u003c/a\u003e (@\u003ca href=\"https://github.com/Doist\"\u003eDoist\u003c/a\u003e), Daniel Fortunov (@\u003ca href=\"https://github.com/asqui\"\u003easqui\u003c/a\u003e), and Kevin P. Fleming (@\u003ca href=\"https://github.com/kpfleming\"\u003ekpfleming\u003c/a\u003e).\u003c/p\u003e\n\u003ch3\u003eMaintenance Sustainers\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://buttondown.com\"\u003eButtondown\u003c/a\u003e (@\u003ca href=\"https://github.com/buttondown\"\u003ebuttondown\u003c/a\u003e), \u003ca href=\"https://christopher.xyz\"\u003eChristopher Dignam\u003c/a\u003e (@\u003ca href=\"https://github.com/chdsbd\"\u003echdsbd\u003c/a\u003e), Magnus Watn (@\u003ca href=\"https://github.com/magnuswatn\"\u003emagnuswatn\u003c/a\u003e), \u003ca href=\"https://cra.mr\"\u003eDavid Cramer\u003c/a\u003e (@\u003ca href=\"https://github.com/dcramer\"\u003edcramer\u003c/a\u003e), \u003ca href=\"https://rivolaks.com\"\u003eRivo Laks\u003c/a\u003e (@\u003ca href=\"https://github.com/rivol\"\u003erivol\u003c/a\u003e), \u003ca href=\"https://polar.sh\"\u003ePolar\u003c/a\u003e (@\u003ca href=\"https://github.com/polarsource\"\u003epolarsource\u003c/a\u003e), \u003ca href=\"https://miketheman.dev\"\u003eMike Fiedler\u003c/a\u003e (@\u003ca href=\"https://github.com/miketheman\"\u003emiketheman\u003c/a\u003e), Duncan Hill (@\u003ca href=\"https://github.com/cricalix\"\u003ecricalix\u003c/a\u003e), Colin Marquardt (@\u003ca href=\"https://github.com/cmarqu\"\u003ecmarqu\u003c/a\u003e), \u003ca href=\"https://blog.journeythatcounts.nl\"\u003ePieter Swinkels\u003c/a\u003e (@\u003ca href=\"https://github.com/swinkels\"\u003eswinkels\u003c/a\u003e), Nick Libertini (@\u003ca href=\"https://github.com/libertininick\"\u003elibertininick\u003c/a\u003e), \u003ca href=\"https://bmdphd.info/\"\u003eBrian M. Dennis\u003c/a\u003e (@\u003ca href=\"https://github.com/crossjam\"\u003ecrossjam\u003c/a\u003e), Celebrity News AG (@\u003ca href=\"https://github.com/celebritynewsag\"\u003ecelebritynewsag\u003c/a\u003e), \u003ca href=\"https://westervelt.com\"\u003eThe Westervelt Company\u003c/a\u003e (@\u003ca href=\"https://github.com/westerveltco\"\u003ewesterveltco\u003c/a\u003e), \u003ca href=\"https://slafs.net\"\u003eSławomir Ehlert\u003c/a\u003e (@\u003ca href=\"https://github.com/slafs\"\u003eslafs\u003c/a\u003e), Mostafa Khalil (@\u003ca href=\"https://github.com/khadrawy\"\u003ekhadrawy\u003c/a\u003e), \u003ca href=\"https://fmularczyk.pl\"\u003eFilip Mularczyk\u003c/a\u003e (@\u003ca href=\"https://github.com/mukiblejlok\"\u003emukiblejlok\u003c/a\u003e), Thomas Klinger (@\u003ca href=\"https://github.com/thmsklngr\"\u003ethmsklngr\u003c/a\u003e), \u003ca href=\"https://poehlmann.io\"\u003eAndreas Poehlmann\u003c/a\u003e (@\u003ca href=\"https://github.com/ap--\"\u003eap--\u003c/a\u003e), \u003ca href=\"https://atbigelow.com\"\u003eAugust Trapper Bigelow\u003c/a\u003e (@\u003ca href=\"https://github.com/atbigelow\"\u003eatbigelow\u003c/a\u003e), \u003ca href=\"https://noumenal.es/\"\u003eCarlton Gibson\u003c/a\u003e (@\u003ca href=\"https://github.com/carltongibson\"\u003ecarltongibson\u003c/a\u003e), and \u003ca href=\"https://roboflow.com\"\u003eRoboflow\u003c/a\u003e (@\u003ca href=\"https://github.com/roboflow\"\u003eroboflow\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eFull Changelog\u003c/h2\u003e\n\u003ch3\u003eBackwards-incompatible Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eField aliases are now resolved \u003cem\u003ebefore\u003c/em\u003e calling \u003ccode\u003efield_transformer\u003c/code\u003e, so transformers receive fully populated \u003ccode\u003eAttribute\u003c/code\u003e objects with usable \u003ccode\u003ealias\u003c/code\u003e values instead of \u003ccode\u003eNone\u003c/code\u003e. The new \u003ccode\u003eAttribute.alias_is_default\u003c/code\u003e flag indicates whether the alias was auto-generated (\u003ccode\u003eTrue\u003c/code\u003e) or explicitly set by the user (\u003ccode\u003eFalse\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1509\"\u003e#1509\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix type annotations for \u003ccode\u003eattrs.validators.optional()\u003c/code\u003e, so it no longer rejects tuples with more than one validator. \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1496\"\u003e#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eattrs.validators.disabled()\u003c/code\u003e contextmanager can now be nested. \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1513\"\u003e#1513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFrozen classes can set \u003ccode\u003eon_setattr=attrs.setters.NO_OP\u003c/code\u003e in addition to \u003ccode\u003eNone\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1515\"\u003e#1515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIt's now possible to pass \u003cem\u003eattrs\u003c/em\u003e \u003cstrong\u003einstances\u003c/strong\u003e in addition to \u003cem\u003eattrs\u003c/em\u003e \u003cstrong\u003eclasses\u003c/strong\u003e to \u003ccode\u003eattrs.fields()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1529\"\u003e#1529\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eThis release contains contributions from \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/DavidCEllis\"\u003e\u003ccode\u003e@​DavidCEllis\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/finite-state-machine\"\u003e\u003ccode\u003e@​finite-state-machine\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/hynek\"\u003e\u003ccode\u003e@​hynek\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/vstinner\"\u003e\u003ccode\u003e@​vstinner\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eArtifact Attestations\u003c/h2\u003e\n\u003cp\u003eYou can verify this release's \u003ca href=\"https://docs.github.com/en/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds\"\u003eartifact attestions\u003c/a\u003e using \u003ca href=\"https://cli.github.com\"\u003eGitHub's CLI tool\u003c/a\u003e by downloading the sdist and wheel from \u003ca href=\"https://pypi.org/project/attrs\"\u003ePyPI\u003c/a\u003e and running:\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003e$ gh attestation verify --owner python-attrs attrs-26.1.0.tar.gz\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-attrs/attrs/blob/main/CHANGELOG.md\"\u003eattrs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/python-attrs/attrs/tree/26.1.0\"\u003e26.1.0\u003c/a\u003e - 2026-03-19\u003c/h2\u003e\n\u003ch3\u003eBackwards-incompatible Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eField aliases are now resolved \u003cem\u003ebefore\u003c/em\u003e calling \u003ccode\u003efield_transformer\u003c/code\u003e, so transformers receive fully populated \u003ccode\u003eAttribute\u003c/code\u003e objects with usable \u003ccode\u003ealias\u003c/code\u003e values instead of \u003ccode\u003eNone\u003c/code\u003e.\nThe new \u003ccode\u003eAttribute.alias_is_default\u003c/code\u003e flag indicates whether the alias was auto-generated (\u003ccode\u003eTrue\u003c/code\u003e) or explicitly set by the user (\u003ccode\u003eFalse\u003c/code\u003e).\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1509\"\u003e#1509\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix type annotations for \u003ccode\u003eattrs.validators.optional()\u003c/code\u003e, so it no longer rejects tuples with more than one validator.\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1496\"\u003e#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eattrs.validators.disabled()\u003c/code\u003e contextmanager can now be nested.\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1513\"\u003e#1513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFrozen classes can set \u003ccode\u003eon_setattr=attrs.setters.NO_OP\u003c/code\u003e in addition to \u003ccode\u003eNone\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1515\"\u003e#1515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIt's now possible to pass \u003cem\u003eattrs\u003c/em\u003e \u003cstrong\u003einstances\u003c/strong\u003e in addition to \u003cem\u003eattrs\u003c/em\u003e \u003cstrong\u003eclasses\u003c/strong\u003e to \u003ccode\u003eattrs.fields()\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1529\"\u003e#1529\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/7bfc49e9b22d5ba25b6e429524c3d49fee27cb36\"\u003e\u003ccode\u003e7bfc49e\u003c/code\u003e\u003c/a\u003e Prepare 26.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/31e02869da10824b492c378c1dc87ccc720ee5ad\"\u003e\u003ccode\u003e31e0286\u003c/code\u003e\u003c/a\u003e Update test_validators.py for Python 3.15a7 (\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1530\"\u003e#1530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/48b8611c27779811d161200e17de8da24aae7feb\"\u003e\u003ccode\u003e48b8611\u003c/code\u003e\u003c/a\u003e Add instance support to attrs.fields() (\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1529\"\u003e#1529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/3a68d4913221abc6f8ad3be50937f7ae49300a98\"\u003e\u003ccode\u003e3a68d49\u003c/code\u003e\u003c/a\u003e dev: document missing git tags failure mode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/a572c3a4c558a8b9b48cf989fcd956ab1a279439\"\u003e\u003ccode\u003ea572c3a\u003c/code\u003e\u003c/a\u003e Allow field(on_setattr=NO_OP) on frozen classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/af9c510912ce604a94896cc35c27368d5baf6ae6\"\u003e\u003ccode\u003eaf9c510\u003c/code\u003e\u003c/a\u003e Fix validators.disabled() to save/restore state on nesting (\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1513\"\u003e#1513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/ab7f8b2f4c0f747d5b1575247ce35e5adaad182e\"\u003e\u003ccode\u003eab7f8b2\u003c/code\u003e\u003c/a\u003e update dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/ce89f5d11feb0805da9ed10bb165238cc959f1bb\"\u003e\u003ccode\u003ece89f5d\u003c/code\u003e\u003c/a\u003e Fix message passing in frozen errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/eccd966d80aff5196efc959316961cfa780439f9\"\u003e\u003ccode\u003eeccd966\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eoptional\u003c/code\u003e validator to accept tuples of len \u0026gt; 1 (\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1496\"\u003e#1496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/e92fe52dfe1eb07167e6473724c5a8ada978add0\"\u003e\u003ccode\u003ee92fe52\u003c/code\u003e\u003c/a\u003e policies: tighten screws (\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1528\"\u003e#1528\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-attrs/attrs/compare/25.4.0...26.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django` from 5.2.10 to 5.2.13\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/7d831a9eeb88a6bf484af7b56fe29596bdbf09a6\"\u003e\u003ccode\u003e7d831a9\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.13 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/49e1e2b548999a35a025f9682598946bda9e9921\"\u003e\u003ccode\u003e49e1e2b\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2026-33034 -- Enforced DATA_UPLOAD_MAX_MEMORY_SIZE on body ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/0b467893bdde69a2d23034338e76021a1e4f4322\"\u003e\u003ccode\u003e0b46789\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2026-33033 -- Mitigated potential DoS in MultiPartParser.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/397c22048244db2cd4bb78f570e6c72a3967bf36\"\u003e\u003ccode\u003e397c220\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2026-4292 -- Disallowed instance creation via ModelAdmin.li...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/60ffa957c427e10a2eb0fc80d1674a8a8ccc30b0\"\u003e\u003ccode\u003e60ffa95\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2026-4277 -- Checked add permissions in GenericInlineModelA...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/1cc2a7612f97c109b92415fc11ba9bd0501852e0\"\u003e\u003ccode\u003e1cc2a76\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2026-3902 -- Ignored headers with underscores in ASGIRequest.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/2a8a76a002774e3f6bc10188594593e0104ceb66\"\u003e\u003ccode\u003e2a8a76a\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.13 and 4.2.30.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/90924f5276de80a74ffbc51126ed81595dd2157a\"\u003e\u003ccode\u003e90924f5\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped black to 26.3.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/0ee44c674cf61efbca2056c40f3e4f2335aaeee6\"\u003e\u003ccode\u003e0ee44c6\u003c/code\u003e\u003c/a\u003e [5.2.x] Applied Black's 2026 stable style.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/89b4d944f7e331e267aa1030e295f29355b78172\"\u003e\u003ccode\u003e89b4d94\u003c/code\u003e\u003c/a\u003e [5.2.x] Combined scripts confirm_release.sh and test_new_version.sh into veri...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.2.10...5.2.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangorestframework` from 3.16.1 to 3.17.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/encode/django-rest-framework/releases\"\u003edjangorestframework's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.17.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eHTMLFormRenderer\u003c/code\u003e with empty \u003ccode\u003edatetime\u003c/code\u003e values by \u003ca href=\"https://github.com/p-r-a-v-i-n\"\u003e\u003ccode\u003e@​p-r-a-v-i-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9928\"\u003eencode/django-rest-framework#9928\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/django-rest-framework/compare/3.17.0...3.17.1\"\u003ehttps://github.com/encode/django-rest-framework/compare/3.17.0...3.17.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.17.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9781\"\u003eencode/django-rest-framework#9781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop deprecated coreapi support by \u003ca href=\"https://github.com/browniebroke\"\u003e\u003ccode\u003e@​browniebroke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9895\"\u003eencode/django-rest-framework#9895\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd ability to specify output format for \u003ccode\u003eDurationField\u003c/code\u003e by \u003ca href=\"https://github.com/sevdog\"\u003e\u003ccode\u003e@​sevdog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/8532\"\u003eencode/django-rest-framework#8532\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing decorators: \u003ccode\u003e@versioning_class()\u003c/code\u003e, \u003ccode\u003e@content_negotiation_class()\u003c/code\u003e, \u003ccode\u003e@metadata_class()\u003c/code\u003e for function-based views by \u003ca href=\"https://github.com/qqii\"\u003e\u003ccode\u003e@​qqii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9719\"\u003eencode/django-rest-framework#9719\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9780\"\u003eencode/django-rest-framework#9780\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eviolation_error_code\u003c/code\u003e and \u003ccode\u003eviolation_error_message\u003c/code\u003e from \u003ccode\u003eUniqueConstraint\u003c/code\u003e in \u003ccode\u003eUniqueTogetherValidator\u003c/code\u003e by \u003ca href=\"https://github.com/s-aleshin\"\u003e\u003ccode\u003e@​s-aleshin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9766\"\u003eencode/django-rest-framework#9766\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eipaddress\u003c/code\u003e objects in \u003ccode\u003eJSONEncoder\u003c/code\u003e by \u003ca href=\"https://github.com/corenting\"\u003e\u003ccode\u003e@​corenting\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9087\"\u003eencode/django-rest-framework#9087\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd optional support to serialize \u003ccode\u003eBigInteger\u003c/code\u003e to string by \u003ca href=\"https://github.com/HoodyH\"\u003e\u003ccode\u003e@​HoodyH\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9775\"\u003eencode/django-rest-framework#9775\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django 6.0 support by \u003ca href=\"https://github.com/MehrazRumman\"\u003e\u003ccode\u003e@​MehrazRumman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9819\"\u003eencode/django-rest-framework#9819\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent small risk of \u003ccode\u003eToken\u003c/code\u003e overwrite by \u003ca href=\"https://github.com/mahdirahimi1999\"\u003e\u003ccode\u003e@​mahdirahimi1999\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9754\"\u003eencode/django-rest-framework#9754\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eUniqueTogetherValidator\u003c/code\u003e validation when condition references a read-only field by \u003ca href=\"https://github.com/ticosax\"\u003e\u003ccode\u003e@​ticosax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9764\"\u003eencode/django-rest-framework#9764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix validation on many to many field when \u003ccode\u003edefault=None\u003c/code\u003e by \u003ca href=\"https://github.com/Genarito\"\u003e\u003ccode\u003e@​Genarito\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9790\"\u003eencode/django-rest-framework#9790\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix invalid SPDX license expression in \u003ccode\u003e__init__.py\u003c/code\u003e by \u003ca href=\"https://github.com/TheFunctionalGuy\"\u003e\u003ccode\u003e@​TheFunctionalGuy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9799\"\u003eencode/django-rest-framework#9799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eHTMLFormRenderer\u003c/code\u003e to ensure a valid \u003ccode\u003edatetime-local\u003c/code\u003e format by \u003ca href=\"https://github.com/mgaligniana\"\u003e\u003ccode\u003e@​mgaligniana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9365\"\u003eencode/django-rest-framework#9365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix mutable default arguments in OrderingFilter methods by \u003ca href=\"https://github.com/killerdevildog\"\u003e\u003ccode\u003e@​killerdevildog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9742\"\u003eencode/django-rest-framework#9742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate TokenAdmin to respect USERNAME_FIELD of the user model by \u003ca href=\"https://github.com/m000\"\u003e\u003ccode\u003e@​m000\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9836\"\u003eencode/django-rest-framework#9836\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve ordering in \u003ccode\u003eMultipleChoiceField\u003c/code\u003e by \u003ca href=\"https://github.com/fbozhang\"\u003e\u003ccode\u003e@​fbozhang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9735\"\u003eencode/django-rest-framework#9735\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate French translation by \u003ca href=\"https://github.com/SebCorbin\"\u003e\u003ccode\u003e@​SebCorbin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9770\"\u003eencode/django-rest-framework#9770\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Brazilian Portuguese translations by \u003ca href=\"https://github.com/JVPinheiroReis\"\u003e\u003ccode\u003e@​JVPinheiroReis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9828\"\u003eencode/django-rest-framework#9828\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix and improve French translations by \u003ca href=\"https://github.com/deronnax\"\u003e\u003ccode\u003e@​deronnax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9896\"\u003eencode/django-rest-framework#9896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing Russian translation by \u003ca href=\"https://github.com/minorytanaka\"\u003e\u003ccode\u003e@​minorytanaka\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9903\"\u003eencode/django-rest-framework#9903\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMigrate packaging to \u003ccode\u003epyproject.toml\u003c/code\u003e by \u003ca href=\"https://github.com/deronnax\"\u003e\u003ccode\u003e@​deronnax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9056\"\u003eencode/django-rest-framework#9056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMove package data rules from \u003ccode\u003eMANIFEST.in\u003c/code\u003e to \u003ccode\u003epyproject.toml\u003c/code\u003e by \u003ca href=\"https://github.com/p-r-a-v-i-n\"\u003e\u003ccode\u003e@​p-r-a-v-i-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9825\"\u003eencode/django-rest-framework#9825\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet up release workflow with trusted publisher by \u003ca href=\"https://github.com/browniebroke\"\u003e\u003ccode\u003e@​browniebroke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9852\"\u003eencode/django-rest-framework#9852\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor token generation to use the \u003ccode\u003esecrets\u003c/code\u003e module by \u003ca href=\"https://github.com/mahdirahimi1999\"\u003e\u003ccode\u003e@​mahdirahimi1999\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9760\"\u003eencode/django-rest-framework#9760\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd validation for decorator out-of-order with \u003ccode\u003e@api_view\u003c/code\u003e by \u003ca href=\"https://github.com/kernelshard\"\u003e\u003ccode\u003e@​kernelshard\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9821\"\u003eencode/django-rest-framework#9821\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSwitch to mkdocs material theme for documentation by \u003ca href=\"https://github.com/browniebroke\"\u003e\u003ccode\u003e@​browniebroke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9849\"\u003eencode/django-rest-framework#9849\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/khaledsukkar2\"\u003e\u003ccode\u003e@​khaledsukkar2\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9717\"\u003eencode/django-rest-framework#9717\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/22e231cf2f77b4cfe929de875d958b93916b1a8b\"\u003e\u003ccode\u003e22e231c\u003c/code\u003e\u003c/a\u003e Prepare bug fix release 3.17.1 (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9931\"\u003e#9931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/8e99b53db7b122417580ec2993ac6776b4d858d5\"\u003e\u003ccode\u003e8e99b53\u003c/code\u003e\u003c/a\u003e Add condition to skip pushed tags from forks (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9924\"\u003e#9924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/c0407dee6ef8a5603c2d5d34373d724be7b98188\"\u003e\u003ccode\u003ec0407de\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eHTMLFormRenderer\u003c/code\u003e with empty \u003ccode\u003edatetime\u003c/code\u003e values (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9928\"\u003e#9928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/30d58a75eeef7097f97cdc9f171d2ec741b36d30\"\u003e\u003ccode\u003e30d58a7\u003c/code\u003e\u003c/a\u003e Fix the book sizing in the documentation (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9926\"\u003e#9926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/6f03b79c057c470524b12e9ac46bc2bb384570e0\"\u003e\u003ccode\u003e6f03b79\u003c/code\u003e\u003c/a\u003e Tweak order of changes in release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/021ab5664b085594876032cf062c1220bc1ca03c\"\u003e\u003ccode\u003e021ab56\u003c/code\u003e\u003c/a\u003e Bump version and update release notes for 3.17.0 (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9921\"\u003e#9921\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/19ebad70ae560e3f83c0e30af6be7c7df3b5aeec\"\u003e\u003ccode\u003e19ebad7\u003c/code\u003e\u003c/a\u003e Bump mkdocs-material[imaging] from 9.7.4 to 9.7.5 (\u003ca href=\"https://redirect.github.com/encode/django-rest-framework/issues/9923\"\u003e#9923\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/f222c55d8a498c9770f2795c6cd34fedffaf043c\"\u003e\u003ccode\u003ef222c55\u003c/code\u003e\u003c/a\u003e Correct requires-python key in pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/7e7de6fceee3ad2e20b0dd93b119b6b00eadd797\"\u003e\u003ccode\u003e7e7de6f\u003c/code\u003e\u003c/a\u003e Remove code fences from release checklist\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/encode/django-rest-framework/commit/c599d309490fe59ae385954ad544a64b58abffd2\"\u003e\u003ccode\u003ec599d30\u003c/code\u003e\u003c/a\u003e Update release process\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/encode/django-rest-framework/compare/3.16.1...3.17.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dependency-injector` from 4.48.3 to 4.49.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.49.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.14 support\u003c/li\u003e\n\u003cli\u003eFix Pydantic v2 deprecation warning triggering on settings class import (fixes \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix grammar in Declarative Container documentation by \u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing warn_unresolved parameter to WiringConfiguration in containers.pyi by \u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd keep_cache argument to Container.wire typings by \u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for some type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/943\"\u003eets-labs/python-dependency-injector#943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for remaining type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/953\"\u003eets-labs/python-dependency-injector#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd provided()\u003c!-- raw HTML omitted --\u003e.call *args, **kwargs arguments \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/945\"\u003e#945\u003c/a\u003e by \u003ca href=\"https://github.com/pavalso\"\u003e\u003ccode\u003e@​pavalso\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/946\"\u003eets-labs/python-dependency-injector#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd context local resource by \u003ca href=\"https://github.com/elina-israyelyan\"\u003e\u003ccode\u003e@​elina-israyelyan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/931\"\u003eets-labs/python-dependency-injector#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI/CD to \u003ccode\u003eactions/checkout@v6\u003c/code\u003e, \u003ccode\u003eactions/setup-python@v6\u003c/code\u003e, \u003ccode\u003eactions/download-artifact@v8\u003c/code\u003e, \u003ccode\u003eactions/upload-artifact@v7\u003c/code\u003e and \u003ccode\u003epypa/cibuildwheel@v3.4.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdd dependabot config for GitHub Actions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pavalso\"\u003e\u003ccode\u003e@​pavalso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/946\"\u003eets-labs/python-dependency-injector#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elina-israyelyan\"\u003e\u003ccode\u003e@​elina-israyelyan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/931\"\u003eets-labs/python-dependency-injector#931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5f7aa1c337c77e782e1e927eb4b1e41a60912604\"\u003e\u003ccode\u003e5f7aa1c\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5863d99bd5e9b2d22c15f3815b23973317a453ee\"\u003e\u003ccode\u003e5863d99\u003c/code\u003e\u003c/a\u003e Add .github/dependabot.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/000c670c7e655cc7db423a76c6b877d185f706ce\"\u003e\u003ccode\u003e000c670\u003c/code\u003e\u003c/a\u003e Upgrade GHA actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/931084070a5304a26a925961375a5afcc3c3a38b\"\u003e\u003ccode\u003e9310840\u003c/code\u003e\u003c/a\u003e Fix iscoroutinefunction import for older Pythons\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/05a5e7d8701a1df8cb88ad55d187ba88cd6ffbe8\"\u003e\u003ccode\u003e05a5e7d\u003c/code\u003e\u003c/a\u003e Fix get_annotations import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/58700d9dbd3420a559330666edfb477418997ff9\"\u003e\u003ccode\u003e58700d9\u003c/code\u003e\u003c/a\u003e Use from import statements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/0e25331738716d5bfa5562d42617deb6ad65d23c\"\u003e\u003ccode\u003e0e25331\u003c/code\u003e\u003c/a\u003e Do not build nogil wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1696986aa7698120a7e2aab2355d93e178fc36f9\"\u003e\u003ccode\u003e1696986\u003c/code\u003e\u003c/a\u003e Python 3.14 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/525935137e81355657e44b454c0f7b19b69fdc7b\"\u003e\u003ccode\u003e5259351\u003c/code\u003e\u003c/a\u003e Add context local resource (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/931\"\u003e#931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/76d5932b7340719eac2b737bd444daacc7bb0682\"\u003e\u003ccode\u003e76d5932\u003c/code\u003e\u003c/a\u003e Add provided()\u0026lt;func\u0026gt;.call *args, **kwargs arguments (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/946\"\u003e#946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 23.0.0 to 25.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eGunicorn 25.3.0\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eHTTP/2 ASGI Body Duplication\u003c/strong\u003e: Fix request body being received twice in HTTP/2\nASGI requests, causing JSON parsing errors with \u0026quot;Extra data\u0026quot; messages\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3558\"\u003e#3558\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eASGI Chunked EOF Handling\u003c/strong\u003e: Add \u003ccode\u003efinish()\u003c/code\u003e method to callback parser to handle\nchunked encoding edge case where connection closes before final CRLF after zero-chunk\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eHTTP/2 Documentation\u003c/strong\u003e: Fix \u003ccode\u003ehttp_protocols\u003c/code\u003e examples to use comma-separated string\ninstead of list syntax (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3561\"\u003e#3561\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eChunked Encoding\u003c/strong\u003e: Reject chunk extensions containing bare CR bytes per RFC 9112\n(\u003ca href=\"https://github.com/benoitc/gunicorn/discussions/3556\"\u003e#3556\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eRequest Line Limit\u003c/strong\u003e: Fix \u003ccode\u003e--limit-request-line 0\u003c/code\u003e to mean unlimited as documented,\ninstead of using default maximum. Works with both Python and fast C parser.\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3563\"\u003e#3563\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Parser Header Validation\u003c/strong\u003e: Add security checks per RFC 9110/9112:\n\u003cul\u003e\n\u003cli\u003eReject duplicate Content-Length headers\u003c/li\u003e\n\u003cli\u003eReject requests with both Content-Length and Transfer-Encoding\u003c/li\u003e\n\u003cli\u003eReject chunked transfer encoding in HTTP/1.0\u003c/li\u003e\n\u003cli\u003eReject stacked chunked encoding\u003c/li\u003e\n\u003cli\u003eValidate Transfer-Encoding values\u003c/li\u003e\n\u003cli\u003eStrict chunk size validation\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFast HTTP Parser\u003c/strong\u003e: Update to gunicorn_h1c \u0026gt;= 0.6.3 for \u003ccode\u003easgi_headers\u003c/code\u003e property\nand \u003ccode\u003eInvalidChunkExtension\u003c/code\u003e validation for bare CR rejection\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eASGI PROXY Protocol\u003c/strong\u003e: Add PROXY protocol v1/v2 support to callback parser\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eDocker Images\u003c/strong\u003e: Update to Python 3.14\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eGunicorn 25.2.0\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFast HTTP Parser (gunicorn_h1c 0.4.1)\u003c/strong\u003e: Integrate new exception types and limit parameters from gunicorn_h1c 0.4.1 for both WSGI and ASGI workers\n\u003cul\u003e\n\u003cli\u003eRequires gunicorn_h1c \u0026gt;= 0.4.1 for \u003ccode\u003ehttp_parser='fast'\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFalls back to Python parser in \u003ccode\u003eauto\u003c/code\u003e mode if version not met\u003c/li\u003e\n\u003cli\u003eProper HTTP status codes for limit errors (414, 431)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003euWSGI Async Workers\u003c/strong\u003e: Fix \u003ccode\u003eInvalidUWSGIHeader: incomplete header\u003c/code\u003e error when using gevent or gthread workers with uwsgi protocol behind nginx. (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3552\"\u003e#3552\u003c/a\u003e, [PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3554\"\u003e#3554\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3554\"\u003ebenoitc/gunicorn#3554\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/9bce72cfc3985aba7e0c47bf3c00fa681b2847e4\"\u003e\u003ccode\u003e9bce72c\u003c/code\u003e\u003c/a\u003e Update changelog with missing 25.3.0 changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/2a15fdb93ab136e5776692d620852f481c89d610\"\u003e\u003ccode\u003e2a15fdb\u003c/code\u003e\u003c/a\u003e Fix pylint isinstance-second-argument-not-valid-type warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/8d08aaa2cbd38fdfa2ca6fb94094c47b9c16730a\"\u003e\u003ccode\u003e8d08aaa\u003c/code\u003e\u003c/a\u003e Fix --limit-request-line 0 to mean unlimited\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/d40a37454736e40916eb51e35895f1c22c0cd34a\"\u003e\u003ccode\u003ed40a374\u003c/code\u003e\u003c/a\u003e Fix pytest-asyncio configuration and treq_asgi hex escapes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/da8bd4850ac0f2d0df215390dad88392eb538d74\"\u003e\u003ccode\u003eda8bd48\u003c/code\u003e\u003c/a\u003e Remove unused AsyncRequest class\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/b00f125755ec3f509a3e82dc5568d9f2d8bddba7\"\u003e\u003ccode\u003eb00f125\u003c/code\u003e\u003c/a\u003e Integrate gunicorn_h1c 0.6.3 with InvalidChunkExtension support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/bdb2ebd5a4913fff1e92800f3763e4a879526d3e\"\u003e\u003ccode\u003ebdb2ebd\u003c/code\u003e\u003c/a\u003e Reject chunk extensions with bare CR bytes (RFC 9112)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/7057fc9f89f0ce4d9ac01a12ea2f39768fb32be6\"\u003e\u003ccode\u003e7057fc9\u003c/code\u003e\u003c/a\u003e Fix http_protocols documentation to use string syntax\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/d43acb8fe0910b6669c163e2f4a439e464eab012\"\u003e\u003ccode\u003ed43acb8\u003c/code\u003e\u003c/a\u003e Update to gunicorn_h1c \u0026gt;= 0.6.2 for asgi_headers support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/cbd27e82a238cb1326336c6aa4b8ae058e2c9ff9\"\u003e\u003ccode\u003ecbd27e8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3559\"\u003e#3559\u003c/a\u003e from benleembruggen/fix/http2-asgi-body-duplication\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/23.0.0...25.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.19.1 to 1.20.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.20.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways disable sync in SQLite cache (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21184\"\u003e21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTemporarily skip few base64 tests (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21193\"\u003e21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u003ccode\u003edict.__or__\u003c/code\u003e typeshed change (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21186\"\u003e21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing for match case with variadic tuples (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21192\"\u003e21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing \u003ccode\u003etype[T]\u003c/code\u003e in type calls (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21174\"\u003e21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression for catching empty tuple in except (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21153\"\u003e21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix reachability for frozenset and dict view narrowing (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21151\"\u003e21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing with chained comparison (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21150\"\u003e21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing to unreachable at module level (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21144\"\u003e21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow dangerous identity comparisons to \u003ccode\u003eAny\u003c/code\u003e typed variables (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21142\"\u003e21142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--warn-unused-config\u003c/code\u003e should not be a strict flag (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21139\"\u003e21139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eAaron Wieczorek\u003c/li\u003e\n\u003cli\u003eAdam Turner\u003c/li\u003e\n\u003cli\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003easce\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrent Westbrook\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChris Burroughs\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eColin Watson\u003c/li\u003e\n\u003cli\u003eDonghoon Nam\u003c/li\u003e\n\u003cli\u003eE. M. Bray\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eGeorge Ogden\u003c/li\u003e\n\u003cli\u003egetzze\u003c/li\u003e\n\u003cli\u003egrayjk\u003c/li\u003e\n\u003cli\u003eGregor Riepl\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilliard\u003c/li\u003e\n\u003cli\u003eJames Le Cuirot\u003c/li\u003e\n\u003cli\u003eJeremy Nimmer\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eKai (Kazuya Ito)\u003c/li\u003e\n\u003cli\u003ekaushal trivedi\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eLukas Geiger\u003c/li\u003e\n\u003cli\u003eŁukasz Langa\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael R. Crusoe\u003c/li\u003e\n\u003cli\u003emichaelm-openai\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c60e8bfcb5910974b577e443725c475e0485d269\"\u003e\u003ccode\u003ec60e8bf\u003c/code\u003e\u003c/a\u003e Bump version to 1.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/842e4927738264949e969df0c2ee285a13594d06\"\u003e\u003ccode\u003e842e492\u003c/code\u003e\u003c/a\u003e Always disable sync in SQLite cache (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21184\"\u003e#21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/e82a046356b242441fcd55c8cf922c7904ef311a\"\u003e\u003ccode\u003ee82a046\u003c/code\u003e\u003c/a\u003e Temporarily skip few base64 tests (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21193\"\u003e#21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f7fa418b6504e20c1277947e03a6db2f6d03e13e\"\u003e\u003ccode\u003ef7fa418\u003c/code\u003e\u003c/a\u003e Revert dict.\u003cstrong\u003eor\u003c/strong\u003e typeshed change (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21186\"\u003e#21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a2e8ee1afd5bbda26ad301496685295b1a7997a3\"\u003e\u003ccode\u003ea2e8ee1\u003c/code\u003e\u003c/a\u003e Fix narrowing for match case with variadic tuples (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21192\"\u003e#21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/521f88f510c2065132909928815f08502097ceea\"\u003e\u003ccode\u003e521f88f\u003c/code\u003e\u003c/a\u003e Avoid narrowing type[T] in type calls (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21174\"\u003e#21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4876e9186b927fe4777609fc9932752dcfb7047\"\u003e\u003ccode\u003ea4876e9\u003c/code\u003e\u003c/a\u003e Fix regression for catching empty tuple in except (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21153\"\u003e#21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/6fccffcac0c8c24034d4f2b262ca7e5564ba9375\"\u003e\u003ccode\u003e6fccffc\u003c/code\u003e\u003c/a\u003e Fix reachability for frozenset and dict view narrowing (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21151\"\u003e#21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/de50419dc84a66f0e8606308023f81a44dee54f3\"\u003e\u003ccode\u003ede50419\u003c/code\u003e\u003c/a\u003e Fix narrowing with chained comparison (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21150\"\u003e#21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/eafcf18ff1d83923c0f749cf3056962df63ed693\"\u003e\u003ccode\u003eeafcf18\u003c/code\u003e\u003c/a\u003e Avoid narrowing to unreachable at module level (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21144\"\u003e#21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.19.1...v1.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.2 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-stubs` from 6.0.1 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/59e66661e1e2e62501d4bb76b62c6acfc11cfaa1\"\u003e\u003ccode\u003e59e6666\u003c/code\u003e\u003c/a\u003e Version 6.0.3 release (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3319\"\u003e#3319\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/e6049b483a50540456ede6f454b9343eae634a1f\"\u003e\u003ccode\u003ee6049b4\u003c/code\u003e\u003c/a\u003e Fix attname column (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3318\"\u003e#3318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/1ac68b440b14cc3ac913462addb6fd8c46b20460\"\u003e\u003ccode\u003e1ac68b4\u003c/code\u003e\u003c/a\u003e Update mypy to 1.20.1 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3316\"\u003e#3316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/134e3915da2d248d8ca0ebc438591b893fcd6fc8\"\u003e\u003ccode\u003e134e391\u003c/code\u003e\u003c/a\u003e Update dependency ty to v0.0.30 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3315\"\u003e#3315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/f6653b98157975d02b7b93a027f0b74834b280c4\"\u003e\u003ccode\u003ef6653b9\u003c/code\u003e\u003c/a\u003e Make Func generic over output_field (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3311\"\u003e#3311\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/56a4d5290861f32edfd222076669d6dd4642d9b7\"\u003e\u003ccode\u003e56a4d52\u003c/code\u003e\u003c/a\u003e Update dependency pyrefly to v0.61.0 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3312\"\u003e#3312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/6dd79432cc6979519f8006bc7e7384d6eedcdb7e\"\u003e\u003ccode\u003e6dd7943\u003c/code\u003e\u003c/a\u003e Type-check (a)get_or_create and (a)update_or_create kwargs (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3309\"\u003e#3309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/af3e8a819804e24f047393f6e89717cce34f3744\"\u003e\u003ccode\u003eaf3e8a8\u003c/code\u003e\u003c/a\u003e Update actions/cache digest to 27d5ce7 (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3301\"\u003e#3301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/d97823e76ba4d61fd709f9f782c6656f021a4834\"\u003e\u003ccode\u003ed97823e\u003c/code\u003e\u003c/a\u003e Bump pytest-mypy-plugin (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3299\"\u003e#3299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/django-stubs/commit/649ff18b31a5a35db271021bdf475613e6f2630a\"\u003e\u003ccode\u003e649ff18\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/typeddjango/django-stubs/issues/3303\"\u003e#3303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/typeddjango/django-stubs/compare/6.0.1...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 26.0 to 26.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cdel\u003ePEP 783: add handling for Emscripten wheel tags by \u003ca href=\"https://github.com/hoodmane\"\u003e\u003ccode\u003e@​hoodmane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/804\"\u003epypa/packaging#804\u003c/a\u003e\u003c/del\u003e (old name used in implementation, will be fixed in next release)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1099\"\u003epypa/packaging#1099\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package by \u003ca href=\"https://github.com/sirosen\"\u003e\u003ccode\u003e@​sirosen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1065\"\u003epypa/packaging#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/944\"\u003epypa/packaging#944\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1071\"\u003epypa/packaging#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1119\"\u003epypa/packaging#1119\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1110\"\u003epypa/packaging#1110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1068\"\u003epypa/packaging#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1146\"\u003epypa/packaging#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1078\"\u003epypa/packaging#1078\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1150\"\u003epypa/packaging#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026lt;V.postN\u003c/code\u003e to match spec by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1140\"\u003epypa/packaging#1140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNarrow exclusion of post-releases for \u003ccode\u003e\u0026gt;V\u003c/code\u003e to match spec by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1141\"\u003epypa/packaging#1141\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eformat_full_version\u003c/code\u003e to \u003ccode\u003e_format_full_version\u003c/code\u003e to make it visibly private by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1125\"\u003epypa/packaging#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestrict local version to ASCII by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1102\"\u003epypa/packaging#1102\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePylock (PEP 751) updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd pylock \u003ccode\u003eselect\u003c/code\u003e function by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1092\"\u003epypa/packaging#1092\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument pylock \u003ccode\u003eselect()\u003c/code\u003e method and \u003ccode\u003ePylockSelectError\u003c/code\u003e by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1153\"\u003epypa/packaging#1153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003efilename\u003c/code\u003e property to \u003ccode\u003ePackageSdist\u003c/code\u003e and \u003ccode\u003ePackageWheel\u003c/code\u003e, more validation by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1095\"\u003epypa/packaging#1095\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGive preference to path over url by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1128\"\u003epypa/packaging#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate name/version consistency in file names by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1114\"\u003epypa/packaging#1114\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e\u0026gt;\u003c/code\u003e comparison for versions with dev+local segments by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1097\"\u003epypa/packaging#1097\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrect self-comparison for \u003ccode\u003eInfinityType\u003c/code\u003e and \u003ccode\u003eNegativeInfinityType\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1093\"\u003epypa/packaging#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCanonicalize when deduplicating specifiers in \u003ccode\u003eSpecifierSet\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1109\"\u003epypa/packaging#1109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix charset error message formatting by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1121\"\u003epypa/packaging#1121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle the \u003ccode\u003ekey\u003c/code\u003e parameter in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e when specifiers are empty and prerelease is \u003ccode\u003eFalse\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1096\"\u003epypa/packaging#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStandardize inner components of \u003ccode\u003erepr\u003c/code\u003e output by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1090\"\u003epypa/packaging#1090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003e===\u003c/code\u003e uses original string, not normalized, when available by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1124\"\u003epypa/packaging#1124\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePropagate int-max-str-digits \u003ccode\u003eValueError\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1155\"\u003epypa/packaging#1155\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fast path for parsing simple versions (digits and dots only) by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1082\"\u003epypa/packaging#1082\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fast path for \u003ccode\u003eVersion\u003c/code\u003e to \u003ccode\u003eVersion\u003c/code\u003e comparison by skipping \u003ccode\u003e_key\u003c/code\u003e property by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1083\"\u003epypa/packaging#1083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eVersion\u003c/code\u003e hash value in dedicated slot by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1118\"\u003epypa/packaging#1118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOverhaul \u003ccode\u003e_cmpkey\u003c/code\u003e to remove use of custom objects by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1116\"\u003epypa/packaging#1116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip \u003ccode\u003e__replace__\u003c/code\u003e in Specifier comparison if not needed by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1081\"\u003epypa/packaging#1081\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifierSet\u003c/code\u003e use \u003ccode\u003etuple\u003c/code\u003e instead of \u003ccode\u003efrozenset\u003c/code\u003e for \u003ccode\u003e_specs\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1108\"\u003epypa/packaging#1108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeed up complex \u003ccode\u003eSpecifierSet\u003c/code\u003e filtering by implementing cost-based ordering by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1105\"\u003epypa/packaging#1105\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.1 - 2026-04-14\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFeatures:\n\u003cul\u003e\n\u003cli\u003ePEP 783: add handling for Emscripten wheel tags in (:pull:\u003ccode\u003e804\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 803: add handling for the \u003ccode\u003eabi3.abi3t\u003c/code\u003e free-threading tag in (:pull:\u003ccode\u003e1099\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 723: add \u003ccode\u003epackaging.dependency_groups\u003c/code\u003e module, based on the \u003ccode\u003edependency-groups\u003c/code\u003e package in (:pull:\u003ccode\u003e1065\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.direct_url\u003c/code\u003e module in (:pull:\u003ccode\u003e944\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the \u003ccode\u003epackaging.errors\u003c/code\u003e module in (:pull:\u003ccode\u003e1071\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eSpecifierSet.is_unsatisfiable\u003c/code\u003e using ranges (new internals that will be expanded in future versions) in (:pull:\u003ccode\u003e1119\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ecreate_compatible_tags_selector\u003c/code\u003e to select compatible tags in (:pull:\u003ccode\u003e1110\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a \u003ccode\u003ekey\u003c/code\u003e argument to \u003ccode\u003eSpecifierSet.filter()\u003c/code\u003e in (:pull:\u003ccode\u003e1068\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e\u0026amp;amp;\u003c/code\u003e and \u003ccode\u003e|\u003c/code\u003e for \u003ccode\u003eMarker\u003c/code\u003e's in (:pull:\u003ccode\u003e1146\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize \u003ccode\u003eVersion.__replace__\u003c/code\u003e and add \u003ccode\u003eVersion.from_parts\u003c/code\u003e in (:pull:\u003ccode\u003e1078\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd an option to validate compressed tag set sort order in \u003ccode\u003eparse_wheel_filename\u003c/code\u003e in (:pull:\u003ccode\u003e1150\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eNarrow exclusion of pre-releases for \u003ccode\u003e\u0026amp;lt;V.postN\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1140\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNarrow exclusion of post-releases for \u003ccode\u003e\u0026amp;gt;V\u003c/code\u003e to match spec in (:pull:\u003ccode\u003e1141\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003eformat_full_version\u003c/code\u003e to \u003ccode\u003e_format_full_version\u003c/code\u003e to make it visibly private in (:pull:\u003ccode\u003e1125\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict local version to ASCII in (:pull:\u003ccode\u003e1102\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePylock (PEP 751) updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd pylock \u003ccode\u003eselect\u003c/code\u003e function in (:pull:\u003ccode\u003e1092\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDocument pylock \u003ccode\u003eselect()\u003c/code\u003e method and \u003ccode\u003ePylockSelectError\u003c/code\u003e in (:pull:\u003ccode\u003e1153\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003efilename\u003c/code\u003e property to \u003ccode\u003ePackageSdist\u003c/code\u003e and \u003ccode\u003ePackageWheel\u003c/code\u003e, more validation in (:pull:\u003ccode\u003e1095\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eGive preference to path over url in (:pull:\u003ccode\u003e1128\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eValidate name/version consistency in file names in (:pull:\u003ccode\u003e1114\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e\u0026amp;gt;\u003c/code\u003e comparison for versions with dev+local segments in (:pull:\u003ccode\u003e1097\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix incorrect self-comparison for \u003ccode\u003eInfinityType\u003c/code\u003e and \u003ccode\u003eNegativeInfinityType\u003c/code\u003e in (:pull:\u003ccode\u003e1093\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCanonicalize when deduplicating specifiers in \u003ccode\u003eSpecifierSet\u003c/code\u003e in (:pull:\u003ccode\u003e1109\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix charset error message formatting in (:pull:\u003ccode\u003e1121\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eHandle the \u003ccode\u003ekey\u003c/code\u003e parameter in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e when specifiers are empty and prerelease is \u003ccode\u003eFalse\u003c/code\u003e in (:pull:\u003ccode\u003e1096\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eStandardize inner components of \u003ccode\u003erepr\u003c/code\u003e output in (:pull:\u003ccode\u003e1090\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003e===\u003c/code\u003e uses original string, not normalized, when available in (:pull:\u003ccode\u003e1124\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate int-max-str-digits \u003ccode\u003eValueError\u003c/code\u003e in (:pull:\u003ccode\u003e1155\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fast path for parsing simple versions (digits and dots only) in (:pull:\u003ccode\u003e1082\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd fast path for \u003ccode\u003eVersion\u003c/code\u003e to \u003ccode\u003eVersion\u003c/code\u003e comparison by skipping \u003ccode\u003e_key\u003c/code\u003e property in (:pull:\u003ccode\u003e1083\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eVersion\u003c/code\u003e hash value in dedicated slot in (:pull:\u003ccode\u003e1118\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOverhaul \u003ccode\u003e_cmpkey\u003c/code\u003e to remove use of custom objects in (:pull:\u003ccode\u003e1116\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSkip \u003ccode\u003e__replace__\u003c/code\u003e in Specifier comparison if not needed in (:pull:\u003ccode\u003e1081\u003c/code\u003e)\u003cbr /\u003e\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/c1a88a3e035e8bfe47dbc957f4a2493e8a7b4f3c\"\u003e\u003ccode\u003ec1a88a3\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/702c25ecc297054f9597acda987a75dd6833acf5\"\u003e\u003ccode\u003e702c25e\u003c/code\u003e\u003c/a\u003e docs: update changelog for 26.1 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1156\"\u003e#1156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3f4f5d46808f51709aba8341d4121f20752b3235\"\u003e\u003ccode\u003e3f4f5d4\u003c/code\u003e\u003c/a\u003e Implement \u003ccode\u003eis_unsatisfiable\u003c/code\u003e on \u003ccode\u003eSpecifierSet\u003c/code\u003e using ranges (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1119\"\u003e#1119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/06c6555f44f0f7b84459c876375c5b1d52ee7fef\"\u003e\u003ccode\u003e06c6555\u003c/code\u003e\u003c/a\u003e Propagate int-max-str-digits ValueError (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1155\"\u003e#1155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/905c90c1eb8c77dede11899194ca4b0f5eaf188d\"\u003e\u003ccode\u003e905c90c\u003c/code\u003e\u003c/a\u003e feat: option to validate compressed tag set sort order in `parse_wheel_filena...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/af0026cff97a8f28d165d6ac4afb58b2cdc8ffc5\"\u003e\u003ccode\u003eaf0026c\u003c/code\u003e\u003c/a\u003e docs(pylock): document select() method and PylockSelectError (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/1153\"\u003e#1153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/668da8662a112036e4850b68980790cb2d10dae9\"\u003e\u003ccode\u003e668da86\u003c/code\u003e\u003c/a\u003e Rename format_full_version to _format_full_version to make it visibly private...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/f294d529e2634798a98fd9cee6708307a5c1792c\"\u003e\u003ccode\u003ef294d52\u003c/code\u003e\u003c...\n\n_Description has been truncated_","html_url":"https://github.com/masterivanic/Bank-service/pull/17","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/masterivanic%2FBank-service/issues/17","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/17/packages"}},{"old_version":"4.48.3","new_version":"4.49.0","update_type":"minor","path":null,"pr_created_at":"2026-04-20T01:20:03.000Z","version_change":"4.48.3 → 4.49.0","issue":{"uuid":"4292559575","node_id":"PR_kwDORMFN3c7TyjfF","number":134,"state":"closed","title":"chore(deps): bump the python-minor-patch group across 1 directory with 35 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-27T01:18:27.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-20T01:20:03.000Z","updated_at":"2026-04-27T01:18:29.000Z","time_to_close":604704,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-minor-patch","update_count":35,"packages":[{"name":"fastapi","old_version":"0.135.1","new_version":"0.136.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.42.0","new_version":"0.44.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"python-multipart","old_version":"0.0.22","new_version":"0.0.26","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"sqlalchemy","old_version":"2.0.48","new_version":"2.0.49","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.2","repository_url":"https://github.com/pydantic/pydantic"},{"name":"redis","old_version":"7.3.0","new_version":"7.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"supabase","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"postgrest","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"storage3","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"anthropic","old_version":"0.85.0","new_version":"0.96.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"openai","old_version":"2.28.0","new_version":"2.32.0","repository_url":"https://github.com/openai/openai-python"},{"name":"claude-agent-sdk","old_version":"0.1.48","new_version":"0.1.63","repository_url":"https://github.com/anthropics/claude-agent-sdk-python"},{"name":"dependency-injector","old_version":"4.48.3","new_version":"4.49.0","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"orjson","old_version":"3.11.7","new_version":"3.11.8","repository_url":"https://github.com/ijl/orjson"},{"name":"cryptography","old_version":"46.0.5","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"ua-parser","old_version":"1.0.1","new_version":"1.0.2","repository_url":"https://github.com/ua-parser/uap-python"},{"name":"anyio","old_version":"4.12.1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"charset-normalizer","old_version":"3.4.6","new_version":"3.4.7","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.1","new_version":"8.3.2","repository_url":"https://github.com/pallets/click"},{"name":"docstring-parser","old_version":"0.17.0","new_version":"0.18.0","repository_url":"https://github.com/rr-/docstring_parser"},{"name":"fsspec","old_version":"2026.2.0","new_version":"2026.3.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"greenlet","old_version":"3.3.2","new_version":"3.4.0","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"jiter","old_version":"0.13.0","new_version":"0.14.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"mako","old_version":"1.3.10","new_version":"1.3.11","repository_url":"https://github.com/sqlalchemy/mako"},{"name":"mcp","old_version":"1.26.0","new_version":"1.27.0","repository_url":"https://github.com/modelcontextprotocol/python-sdk"},{"name":"numpy","old_version":"2.4.3","new_version":"2.4.4","repository_url":"https://github.com/numpy/numpy"},{"name":"packaging","old_version":"26.0","new_version":"26.1","repository_url":"https://github.com/pypa/packaging"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.46.2","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pygments","old_version":"2.19.2","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyroaring","old_version":"1.0.3","new_version":"1.0.4","repository_url":"https://github.com/Ezibenroc/PyRoaringBitMap"},{"name":"realtime","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"sse-starlette","old_version":"3.3.2","new_version":"3.3.4","repository_url":"https://github.com/sysid/sse-starlette"},{"name":"supabase-auth","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"supabase-functions","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 35 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.135.1` | `0.136.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.42.0` | `0.44.0` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.22` | `0.0.26` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.48` | `2.0.49` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.2` |\n| [redis](https://github.com/redis/redis-py) | `7.3.0` | `7.4.0` |\n| [supabase](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [postgrest](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [storage3](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.85.0` | `0.96.0` |\n| [openai](https://github.com/openai/openai-python) | `2.28.0` | `2.32.0` |\n| [claude-agent-sdk](https://github.com/anthropics/claude-agent-sdk-python) | `0.1.48` | `0.1.63` |\n| [dependency-injector](https://github.com/ets-labs/python-dependency-injector) | `4.48.3` | `4.49.0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.7` | `3.11.8` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.5` | `46.0.7` |\n| [ua-parser](https://github.com/ua-parser/uap-python) | `1.0.1` | `1.0.2` |\n| [anyio](https://github.com/agronholm/anyio) | `4.12.1` | `4.13.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.6` | `3.4.7` |\n| [click](https://github.com/pallets/click) | `8.3.1` | `8.3.2` |\n| [docstring-parser](https://github.com/rr-/docstring_parser) | `0.17.0` | `0.18.0` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.2.0` | `2026.3.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.3.2` | `3.4.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.13.0` | `0.14.0` |\n| [mako](https://github.com/sqlalchemy/mako) | `1.3.10` | `1.3.11` |\n| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `1.26.0` | `1.27.0` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.3` | `2.4.4` |\n| [packaging](https://github.com/pypa/packaging) | `26.0` | `26.1` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.5` | `2.46.2` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.2` | `2.20.0` |\n| [pyroaring](https://github.com/Ezibenroc/PyRoaringBitMap) | `1.0.3` | `1.0.4` |\n| [realtime](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [sse-starlette](https://github.com/sysid/sse-starlette) | `3.3.2` | `3.3.4` |\n| [supabase-auth](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [supabase-functions](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n\n\nUpdates `fastapi` from 0.135.1 to 0.136.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.136.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Support free-threaded Python 3.14t. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15149\"\u003e#15149\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15363\"\u003e#15363\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump cryptography from 46.0.5 to 46.0.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15314\"\u003e#15314\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15309\"\u003e#15309\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15293\"\u003e#15293\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.3\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for \u003ccode\u003e@app.vibe()\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15280\"\u003e#15280\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eNew docs: \u003ca href=\"https://fastapi.tiangolo.com/advanced/vibe/\"\u003eVibe Coding\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✏️ Fix typo for \u003ccode\u003eclient_secret\u003c/code\u003e in OAuth2 form docstrings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14946\"\u003e#14946\u003c/a\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👥 Update FastAPI People - Experts. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15279\"\u003e#15279\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump orjson from 3.11.7 to 3.11.8. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15276\"\u003e#15276\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.0 to 0.15.8. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15277\"\u003e#15277\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI GitHub topic repositories. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15274\"\u003e#15274\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastmcp from 2.14.5 to 3.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15267\"\u003e#15267\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI People - Contributors and Translators. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15270\"\u003e#15270\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump requests from 2.32.5 to 2.33.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15228\"\u003e#15228\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Add ty check to \u003ccode\u003elint.sh\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15136\"\u003e#15136\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.2\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Increase lower bound to \u003ccode\u003epydantic \u0026gt;=2.9.0.\u003c/code\u003e and fix the test suite. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15139\"\u003e#15139\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add missing last release notes dates. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15202\"\u003e#15202\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update docs for contributors and team members regarding translation PRs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15200\"\u003e#15200\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Fix code blocks in reference docs overflowing table width. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15094\"\u003e#15094\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix duplicated words in docstrings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15116\"\u003e#15116\u003c/a\u003e by \u003ca href=\"https://github.com/AhsanSheraz\"\u003e\u003ccode\u003e@​AhsanSheraz\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add docs for \u003ccode\u003epyproject.toml\u003c/code\u003e with \u003ccode\u003eentrypoint\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15075\"\u003e#15075\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update links in docs to no longer use the classes external-link and internal-link. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15061\"\u003e#15061\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/708606c982cf35718cb2214c0bb9261cf548f042\"\u003e\u003ccode\u003e708606c\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/13be6a3a0f12d3f36c286196ef555dd51dc09edb\"\u003e\u003ccode\u003e13be6a3\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b264878d71b2dc0e9e0f90ef15459d4302a7f9c\"\u003e\u003ccode\u003e4b26487\u003c/code\u003e\u003c/a\u003e ⬆️ Support free-threaded Python 3.14t (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15149\"\u003e#15149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/f796c346a8537876de43729ff1ca1409d4648893\"\u003e\u003ccode\u003ef796c34\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.135.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/09d1d1cb7073b3c7bd1f58fcf6faefa9b2c29de4\"\u003e\u003ccode\u003e09d1d1c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ae4e45c5cc20a1e1503fbcab2369821d188feb09\"\u003e\u003ccode\u003eae4e45c\u003c/code\u003e\u003c/a\u003e 🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15363\"\u003e#15363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9653034b8d459607a4b7f761e6c23a6f287fa5fa\"\u003e\u003ccode\u003e9653034\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6f9a102faf071dbfa812a3af88d7d309d2ded4a6\"\u003e\u003ccode\u003e6f9a102\u003c/code\u003e\u003c/a\u003e ⬆ Bump cryptography from 46.0.5 to 46.0.7 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15314\"\u003e#15314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/eba8942c81dbf990d25fbae34e6601bdbc21e74b\"\u003e\u003ccode\u003eeba8942\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/77d080caf850b8af5c0f467389edf03c057c7697\"\u003e\u003ccode\u003e77d080c\u003c/code\u003e\u003c/a\u003e ⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15309\"\u003e#15309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.135.1...0.136.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.42.0 to 0.44.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.44.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2888\"\u003eKludex/uvicorn#2888\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.43.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.44.0 (April 6, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2888\"\u003e#2888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.43.0 (April 3, 2026)\u003c/h2\u003e\n\u003cp\u003eYou can quit Uvicorn now. We heard you, \u003ca href=\"https://github.com/pamelafox\"\u003e\u003ccode\u003e@​pamelafox\u003c/code\u003e\u003c/a\u003e - all 47 of your Ctrl+C's (thanks for flagging it, and thanks to \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e for the fix 🙏). \u003ca href=\"https://x.com/pamelafox/status/2039097686155227623\"\u003eSee the tweet\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/edb54c43c0321c0b41eee1473f3f4cf145e8927f\"\u003e\u003ccode\u003eedb54c4\u003c/code\u003e\u003c/a\u003e Version 0.44.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2890\"\u003e#2890\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/029be08867fe899cde6fd31a3ba75fffca7bd9ae\"\u003e\u003ccode\u003e029be08\u003c/code\u003e\u003c/a\u003e Implement websocket keepalive pings for websockets-sansio (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2888\"\u003e#2888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/8d397c73191b49c6d5280098d7c09dbe474e00bf\"\u003e\u003ccode\u003e8d397c7\u003c/code\u003e\u003c/a\u003e Version 0.43.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2885\"\u003e#2885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/587042d68ff6c813ec0d8cfafaa820ebe7229d23\"\u003e\u003ccode\u003e587042d\u003c/code\u003e\u003c/a\u003e 🐛 Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for s...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/c9a75fb67b2e969253a41ef4ad447e013eee879e\"\u003e\u003ccode\u003ec9a75fb\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2878\"\u003e#2878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/84fd578224e36766efb056585cb6cc5171270089\"\u003e\u003ccode\u003e84fd578\u003c/code\u003e\u003c/a\u003e chore(deps): bump pygments from 2.19.2 to 2.20.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2877\"\u003e#2877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/cd52d34b55d898180a65cfc01a6a88aac54c65c3\"\u003e\u003ccode\u003ecd52d34\u003c/code\u003e\u003c/a\u003e Use native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5211880320b2e99a532eb121808039404da234ab\"\u003e\u003ccode\u003e5211880\u003c/code\u003e\u003c/a\u003e Drop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/1cb8e747e2817ee46a4c0d44139e46b3b1f8fab6\"\u003e\u003ccode\u003e1cb8e74\u003c/code\u003e\u003c/a\u003e Add websocket 500 fallback header test (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2874\"\u003e#2874\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/28efbb24bd590f1f943cbc2bf84f197268a8c6d8\"\u003e\u003ccode\u003e28efbb2\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump cryptography from 46.0.5 to 46.0.6 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2873\"\u003e#2873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.42.0...0.44.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.22 to 0.0.26\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.26\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before first multipart boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003eKludex/python-multipart#262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003eKludex/python-multipart#259\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply Apache-2.0 properly by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003eKludex/python-multipart#247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003eKludex/python-multipart#252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003eKludex/python-multipart#230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003eKludex/python-multipart#254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove custom FormParser classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003eKludex/python-multipart#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003eKludex/python-multipart#258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd MIME content type info to File by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003eKludex/python-multipart#143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003eKludex/python-multipart#244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003eKludex/python-multipart#196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e by \u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.26 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before the first multipart boundary more efficiently \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003e#262\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing multipart boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003e#259\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.25 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd MIME content type info to \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003e#143\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003e#258\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRemove custom \u003ccode\u003eFormParser\u003c/code\u003e classes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003e#257\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003e#254\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003e#230\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003e#252\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eApply Apache-2.0 properly \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003e#247\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.24 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003e#244\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.23 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003e#196\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003e#229\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003e#227\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/28f47859b4a40c2e11e02dc514b2e9743ceedd2e\"\u003e\u003ccode\u003e28f4785\u003c/code\u003e\u003c/a\u003e Version 0.0.26 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d4452a78bbde94995dd3c0d1b4aff3610a5c472f\"\u003e\u003ccode\u003ed4452a7\u003c/code\u003e\u003c/a\u003e Silently discard epilogue data after the closing boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/259\"\u003e#259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6a7b76dd2653d99d8e5981d7ff09a4a047750b37\"\u003e\u003ccode\u003e6a7b76d\u003c/code\u003e\u003c/a\u003e Skip preamble before first multipart boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/4addb60350fc843f77a1502f14247db91930b3bf\"\u003e\u003ccode\u003e4addb60\u003c/code\u003e\u003c/a\u003e Version 0.0.25 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d3a4698e0dc16cbd85f98076b2ebf9b696cd3604\"\u003e\u003ccode\u003ed3a4698\u003c/code\u003e\u003c/a\u003e Add MIME content type info to File (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/143\"\u003e#143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/9a1ecbd074801fcd3911266f3f4442181d10ab92\"\u003e\u003ccode\u003e9a1ecbd\u003c/code\u003e\u003c/a\u003e Handle CTE values case-insensitively (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/258\"\u003e#258\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/ef2a0b94f95676ea6a7b77d2252b09f5797cb8ed\"\u003e\u003ccode\u003eef2a0b9\u003c/code\u003e\u003c/a\u003e Remove custom FormParser classes (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/257\"\u003e#257\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/3a757d7cf209e654eb17cf7b7af868eed469f680\"\u003e\u003ccode\u003e3a757d7\u003c/code\u003e\u003c/a\u003e Ignore local Claude state (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/255\"\u003e#255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/55e739617db7c40e2cd04c5ad8c7acf2ed0a1d19\"\u003e\u003ccode\u003e55e7396\u003c/code\u003e\u003c/a\u003e fuzz: Add cifuzz (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/186\"\u003e#186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d6d1d111e7de9ce3d3f8623fe5f5e4201c0a5fd1\"\u003e\u003ccode\u003ed6d1d11\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/249\"\u003e#249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.26\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.48 to 2.0.49\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.49\u003c/h1\u003e\n\u003cp\u003eReleased: April 3, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where \u003ccode\u003e_orm.Session.get()\u003c/code\u003e would bypass the identity map\nand emit unnecessary SQL when \u003ccode\u003ewith_for_update=False\u003c/code\u003e was passed,\nrather than treating it equivalently to the default of \u003ccode\u003eNone\u003c/code\u003e.\nPull request courtesy of Joshua Swanson.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13176\"\u003e#13176\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where chained \u003ccode\u003e_orm.joinedload()\u003c/code\u003e options would not be\napplied correctly when the final relationship in the chain is declared on a\nbase mapper and accessed through a subclass mapper in a\n\u003ccode\u003e_orm.with_polymorphic()\u003c/code\u003e query. The path registry now correctly\ncomputes the natural path when a property declared on a base class is\naccessed through a path containing a subclass mapper, ensuring the loader\noption can be located during query compilation.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13193\"\u003e#13193\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using \u003ccode\u003e_orm.Load.options()\u003c/code\u003e to apply a chained loader\noption such as \u003ccode\u003e_orm.joinedload()\u003c/code\u003e or \u003ccode\u003e_orm.selectinload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot generate the necessary clauses for the polymorphic subclasses. The\npolymorphic loading strategy is now correctly propagated when using a call\nsuch as \u003ccode\u003ejoinedload(A.b).options(joinedload(B.c.of_type(poly)))\u003c/code\u003e to match\nthe behavior of direct chaining e.g.\n\u003ccode\u003ejoinedload(A.b).joinedload(B.c.of_type(poly))\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13202\"\u003e#13202\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using chained loader options such as\n\u003ccode\u003e_orm.selectinload()\u003c/code\u003e after \u003ccode\u003e_orm.joinedload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot properly apply the chained loader option. The loader option is now\ncorrectly applied when using a call such as\n\u003ccode\u003ejoinedload(A.b.of_type(poly)).selectinload(poly.SubClass.c)\u003c/code\u003e to eagerly\nload related objects.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13209\"\u003e#13209\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etyping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[typing] [bug]\u003c/strong\u003e Fixed a typing issue where the typed members of :data:\u003ccode\u003e.func\u003c/code\u003e would return\nthe appropriate class of the same name, however this creates an issue for\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13062\"\u003e#13062\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.0\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0b3 2026-03-31\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.13.2/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13062\"\u003e#13062\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/17a35e371bdff348c0690651d324c91fc7c9ff9e\"\u003e\u003ccode\u003e17a35e3\u003c/code\u003e\u003c/a\u003e Update jiter to v0.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13064\"\u003e#13064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/feea402b23fa23774669908c4e08a61ba1e4238e\"\u003e\u003ccode\u003efeea402\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003esimulation\u003c/code\u003e mode in Codspeed CI (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13063\"\u003e#13063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/671c9b0d4d3f9b2f1b95ca32ac85cb69e824e0bc\"\u003e\u003ccode\u003e671c9b0\u003c/code\u003e\u003c/a\u003e Add basic benchmarks for model equality (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13061\"\u003e#13061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 7.3.0 to 7.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError in cluster metrics recording when connection is None or ClusterNode object instance is used to extract the connection info (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3999\"\u003e#3999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords might leak in plain text logs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3998\"\u003e#3998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cp\u003e-Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpose basic Otel classes and functions to be importable through redis.observability to match the examples in the readthedocs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3996\"\u003e#3996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/b72f24ad6a2226d46aed770e18094a86117d2217\"\u003e\u003ccode\u003eb72f24a\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/0a4e0afe36504c3fb6df1e38683ea946febac9d3\"\u003e\u003ccode\u003e0a4e0af\u003c/code\u003e\u003c/a\u003e Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/15492c9156d3ab8dce05360977480510cf24fbf9\"\u003e\u003ccode\u003e15492c9\u003c/code\u003e\u003c/a\u003e Refactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/cd964ac96649df872a051835e9a52e05a5090607\"\u003e\u003ccode\u003ecd964ac\u003c/code\u003e\u003c/a\u003e Expose basic Otel classes and funtions to be importable through redis.observa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/46ab74d02ed9b15176f67edb817de83524f8145a\"\u003e\u003ccode\u003e46ab74d\u003c/code\u003e\u003c/a\u003e Fixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/26482dbaae38abdb1966d9b1c803331e2dab2053\"\u003e\u003ccode\u003e26482db\u003c/code\u003e\u003c/a\u003e Fix AttributeError in cluster metrics recording when connection is None or Cl...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/redis-py/compare/v7.3.0...v7.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `supabase` from 2.28.2 to 2.28.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003esupabase's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.28.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md\"\u003esupabase's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/deac3232f6bdd242f60b46c7a8922e010524ca53\"\u003e\u003ccode\u003edeac323\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.3 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003e\u003ccode\u003ec7f8f13\u003c/code\u003e\u003c/a\u003e fix(postgrest): fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `postgrest` from 2.28.2 to 2.28.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003epostgrest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.28.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md\"\u003epostgrest's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/deac3232f6bdd242f60b46c7a8922e010524ca53\"\u003e\u003ccode\u003edeac323\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.3 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003e\u003ccode\u003ec7f8f13\u003c/code\u003e\u003c/a\u003e fix(postgrest): fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `storage3` from 2.28.2 to 2.28.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003estorage3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.28.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md\"\u003estorage3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/deac3232f6bdd242f60b46c7a8922e010524ca53\"\u003e\u003ccode\u003edeac323\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.3 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003e\u003ccode\u003ec7f8f13\u003c/code\u003e\u003c/a\u003e fix(postgrest): fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anthropic` from 0.85.0 to 0.96.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/releases\"\u003eanthropic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.96.0\u003c/h2\u003e\n\u003ch2\u003e0.96.0 (2026-04-16)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.95.0...v0.96.0\"\u003ev0.95.0...v0.96.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add claude-opus-4-7, token budgets and user_profiles (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0aa2a0d4388a39984134d1dfc2bcbd6b206f7184\"\u003e0aa2a0d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e remove release-doctor workflow (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1d9add35d0bd4c71f2bca3b0d494d1d0a348817a\"\u003e1d9add3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.95.0\u003c/h2\u003e\n\u003ch2\u003e0.95.0 (2026-04-14)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.1...v0.95.0\"\u003ev0.94.1...v0.95.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e mark Sonnet and Opus 4 as deprecated (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0c1e7736394585dd021b53c1f87383c4fae29a6b\"\u003e0c1e773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebedrock:\u003c/strong\u003e use auth header for mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1644\"\u003e#1644\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3b93090e121861462f21a7621484cda66c139997\"\u003e3b93090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.94.1\u003c/h2\u003e\n\u003ch2\u003e0.94.1 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.0...v0.94.1\"\u003ev0.94.0...v0.94.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e add missing events (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c6a06d80b7e87bc034bd6ade950c735da02a0be3\"\u003ec6a06d8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.94.0\u003c/h2\u003e\n\u003ch2\u003e0.94.0 (2026-04-10)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.93.0...v0.94.0\"\u003ev0.93.0...v0.94.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evertex eu region (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1658\"\u003e#1658\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b7e157d85f50b2900ddf896e8e80882dd7311bfd\"\u003eb7e157d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/837b25bb6262186a5bae92aa70eb73c3cf8c90af\"\u003e837b25b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/blob/main/CHANGELOG.md\"\u003eanthropic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.96.0 (2026-04-16)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.95.0...v0.96.0\"\u003ev0.95.0...v0.96.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add claude-opus-4-7, token budgets and user_profiles (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0aa2a0d4388a39984134d1dfc2bcbd6b206f7184\"\u003e0aa2a0d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e remove release-doctor workflow (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1d9add35d0bd4c71f2bca3b0d494d1d0a348817a\"\u003e1d9add3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.95.0 (2026-04-14)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.1...v0.95.0\"\u003ev0.94.1...v0.95.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e mark Sonnet and Opus 4 as deprecated (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0c1e7736394585dd021b53c1f87383c4fae29a6b\"\u003e0c1e773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebedrock:\u003c/strong\u003e use auth header for mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1644\"\u003e#1644\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3b93090e121861462f21a7621484cda66c139997\"\u003e3b93090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.94.1 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.0...v0.94.1\"\u003ev0.94.0...v0.94.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e add missing events (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c6a06d80b7e87bc034bd6ade950c735da02a0be3\"\u003ec6a06d8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.94.0 (2026-04-10)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.93.0...v0.94.0\"\u003ev0.93.0...v0.94.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evertex eu region (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1658\"\u003e#1658\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b7e157d85f50b2900ddf896e8e80882dd7311bfd\"\u003eb7e157d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/837b25bb6262186a5bae92aa70eb73c3cf8c90af\"\u003e837b25b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimprove examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/48089fdb788500d00718b9d4ae24cd34e5e91beb\"\u003e48089fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0f3c28b973026d135f91f38c4ad82ae2b1131522\"\u003e0f3c28b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.93.0 (2026-04-09)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/78de297e71bacbe6acf4d3b420edcaad90ce1045\"\u003e\u003ccode\u003e78de297\u003c/code\u003e\u003c/a\u003e release: 0.96.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/dc0c79294528932c8fb4b27d6c0c24a0198d2c0a\"\u003e\u003ccode\u003edc0c792\u003c/code\u003e\u003c/a\u003e feat(api): add claude-opus-4-7, token budgets and user_profiles\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/71eff1fee942056bf54219e9953615be143f67ec\"\u003e\u003ccode\u003e71eff1f\u003c/code\u003e\u003c/a\u003e chore(ci): remove release-doctor workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1056685678c8e52cb2492e43b75d695ab91a4b51\"\u003e\u003ccode\u003e1056685\u003c/code\u003e\u003c/a\u003e release: 0.95.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/9741185561f6ebf289051a9eec136cf4ce7846a6\"\u003e\u003ccode\u003e9741185\u003c/code\u003e\u003c/a\u003e feat(bedrock): use auth header for mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1644\"\u003e#1644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/ef22dbbd4a2005fd4e1b8e24cfb562c35c688313\"\u003e\u003ccode\u003eef22dbb\u003c/code\u003e\u003c/a\u003e feat(api): mark Sonnet and Opus 4 as deprecated\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/6d9b98672387c1f4f1f4a8fc02ea6d0e45a8362b\"\u003e\u003ccode\u003e6d9b986\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/47c48a9eee1b6b34b7b87569c4481d3d89c5bc33\"\u003e\u003ccode\u003e47c48a9\u003c/code\u003e\u003c/a\u003e release: 0.94.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/49bab64536c113302653510ed6a639b34ade1af2\"\u003e\u003ccode\u003e49bab64\u003c/code\u003e\u003c/a\u003e fix(streaming): add missing events\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7b03b0fc0b103eaba7732fc5ae54fc86c963839a\"\u003e\u003ccode\u003e7b03b0f\u003c/code\u003e\u003c/a\u003e release: 0.94.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.85.0...v0.96.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.28.0 to 2.32.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.32.0\u003c/h2\u003e\n\u003ch2\u003e2.32.0 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.31.0...v2.32.0\"\u003ev2.31.0...v2.32.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add detail to InputFileContent (\u003ca href=\"https://github.com/openai/openai-python/commit/60de21d1fcfbcadea0d9b8d884c73c9dc49d14ff\"\u003e60de21d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add OAuthErrorCode type (\u003ca href=\"https://github.com/openai/openai-python/commit/0c8d2c3b44242c9139dc554896ea489b56e236b8\"\u003e0c8d2c3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add event handler implementation for websockets (\u003ca href=\"https://github.com/openai/openai-python/commit/0280d0568f706684ecbf0aabf3575cdcb7fd22d5\"\u003e0280d05\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e allow enqueuing to websockets even when not connected (\u003ca href=\"https://github.com/openai/openai-python/commit/67aa20e69bc0e4a3b7694327c808606bfa24a966\"\u003e67aa20e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e support reconnection in websockets (\u003ca href=\"https://github.com/openai/openai-python/commit/eb72a953ea9dc5beec3eef537be6eb32292c3f65\"\u003eeb72a95\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/openai/openai-python/commit/c0c2ecd0f6b64fa5fafda6134bb06995b143a2cf\"\u003ec0c2ecd\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimprove examples (\u003ca href=\"https://github.com/openai/openai-python/commit/84712fa0f094b53151a0fe6ac85aa98018b2a7e2\"\u003e84712fa\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.31.0\u003c/h2\u003e\n\u003ch2\u003e2.31.0 (2026-04-08)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.30.0...v2.31.0\"\u003ev2.30.0...v2.31.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add phase field to conversations message (\u003ca href=\"https://github.com/openai/openai-python/commit/3e5834efb39b24e019a29dc54d890c67d18cbb54\"\u003e3e5834e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add web_search_call.results to ResponseIncludable type (\u003ca href=\"https://github.com/openai/openai-python/commit/ffd8741dd38609a5af0159ceb800d8ddba7925f8\"\u003effd8741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add support for short-lived tokens (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/1608\"\u003e#1608\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/22fe7228d4990c197cd721b3ad7931ad05cca5dd\"\u003e22fe722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e support sending raw data over websockets (\u003ca href=\"https://github.com/openai/openai-python/commit/f1bc52ef641dfca6fdf2a5b00ce3b09bff2552f5\"\u003ef1bc52e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e implement indices array format for query and form serialization (\u003ca href=\"https://github.com/openai/openai-python/commit/49194cfa711328216ff131d6f65c9298822a7c51\"\u003e49194cf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e preserve hardcoded query params when merging with user params (\u003ca href=\"https://github.com/openai/openai-python/commit/92e109c3d9569a942e1919e75977dc13fa015f9a\"\u003e92e109c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e remove web_search_call.results from ResponseIncludable (\u003ca href=\"https://github.com/openai/openai-python/commit/d3cc40165cd86015833d15167cc7712b4102f932\"\u003ed3cc401\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.20.1 (\u003ca href=\"https://github.com/openai/openai-python/commit/d60e2eea7f6916540cd4ba901dceb07051119da4\"\u003ed60e2ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.20.2 (\u003ca href=\"https://github.com/openai/openai-python/commit/6508d474332d4e82d9615c0a9a77379f9b5e4412\"\u003e6508d47\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.0 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.31.0...v2.32.0\"\u003ev2.31.0...v2.32.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add detail to InputFileContent (\u003ca href=\"https://github.com/openai/openai-python/commit/60de21d1fcfbcadea0d9b8d884c73c9dc49d14ff\"\u003e60de21d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add OAuthErrorCode type (\u003ca href=\"https://github.com/openai/openai-python/commit/0c8d2c3b44242c9139dc554896ea489b56e236b8\"\u003e0c8d2c3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add event handler implementation for websockets (\u003ca href=\"https://github.com/openai/openai-python/commit/0280d0568f706684ecbf0aabf3575cdcb7fd22d5\"\u003e0280d05\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e allow enqueuing to websockets even when not connected (\u003ca href=\"https://github.com/openai/openai-python/commit/67aa20e69bc0e4a3b7694327c808606bfa24a966\"\u003e67aa20e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e support reconnection in websockets (\u003ca href=\"https://github.com/openai/openai-python/commit/eb72a953ea9dc5beec3eef537be6eb32292c3f65\"\u003eeb72a95\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/openai/openai-python/commit/c0c2ecd0f6b64fa5fafda6134bb06995b143a2cf\"\u003ec0c2ecd\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimprove examples (\u003ca href=\"https://github.com/openai/openai-python/commit/84712fa0f094b53151a0fe6ac85aa98018b2a7e2\"\u003e84712fa\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.31.0 (2026-04-08)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.30.0...v2.31.0\"\u003ev2.30.0...v2.31.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add phase field to conversations message (\u003ca href=\"https://github.com/openai/openai-python/commit/3e5834efb39b24e019a29dc54d890c67d18cbb54\"\u003e3e5834e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add web_search_call.results to ResponseIncludable type (\u003ca href=\"https://github.com/openai/openai-python/commit/ffd8741dd38609a5af0159ceb800d8ddba7925f8\"\u003effd8741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add support for short-lived tokens (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/1608\"\u003e#1608\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/22fe7228d4990c197cd721b3ad7931ad05cca5dd\"\u003e22fe722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e support sending raw data over websockets (\u003ca href=\"https://github.com/openai/openai-python/commit/f1bc52ef641dfca6fdf2a5b00ce3b09bff2552f5\"\u003ef1bc52e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e implement indices array format for query and form serialization (\u003ca href=\"https://github.com/openai/openai-python/commit/49194cfa711328216ff131d6f65c9298822a7c51\"\u003e49194cf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e preserve hardcoded query params when merging with user params (\u003ca href=\"https://github.com/openai/openai-python/commit/92e109c3d9569a942e1919e75977dc13fa015f9a\"\u003e92e109c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e remove web_search_call.results from ResponseIncludable (\u003ca href=\"https://github.com/openai/openai-python/commit/d3cc40165cd86015833d15167cc7712b4102f932\"\u003ed3cc401\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.20.1 (\u003ca href=\"https://github.com/openai/openai-python/commit/d60e2eea7f6916540cd4ba901dceb07051119da4\"\u003ed60e2ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.20.2 (\u003ca href=\"https://github.com/openai/openai-python/commit/6508d474332d4e82d9615c0a9a77379f9b5e4412\"\u003e6508d47\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update file parameter descriptions in vector_stores files and file_batches (\u003ca href=\"https://github.com/openai/openai-python/commit/a9e7ebd505b9ae90514339aa63c6f1984a08cf6b\"\u003ea9e7ebd\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/e507a4ebeea4c3f93cd48986014a3e2ca79230c2\"\u003e\u003ccode\u003ee507a4e\u003c/code\u003e\u003c/a\u003e release: 2.32.0 (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3074\"\u003e#3074\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/750354ed65565b31d0547bf00f4f3180ac1bfeef\"\u003e\u003ccode\u003e750354e\u003c/code\u003e\u003c/a\u003e release: 2.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/5be95364a5a82746cb7b1c77df10dfaf138496bb\"\u003e\u003ccode\u003e5be9536\u003c/code\u003e\u003c/a\u003e feat(client): add support for short-lived tokens (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/1608\"\u003e#1608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/f1fd4fae0329ee3df2f1bb25d93f51311782ad1a\"\u003e\u003ccode\u003ef1fd4fa\u003c/code\u003e\u003c/a\u003e feat(client): support sending raw data over websockets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/73ea2f75ba57a1db964518b33b790b1e1251b8d5\"\u003e\u003ccode\u003e73ea2f7\u003c/code\u003e\u003c/a\u003e fix(client): preserve hardcoded query params when merging with user params\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/454b2575d59a086f279d99dc791058acee2f14c0\"\u003e\u003ccode\u003e454b257\u003c/code\u003e\u003c/a\u003e feat(api): add web_search_call.results to ResponseIncludable type\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/de2c7b1d087f41f33ada85a7460f32e55331778a\"\u003e\u003ccode\u003ede2c7b1\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/6efca95a76f6ca9cb91fdf536c6c9ebcef075541\"\u003e\u003ccode\u003e6efca95\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2076d85f9226113e4ba360a7f456091988092dbf\"\u003e\u003ccode\u003e2076d85\u003c/code\u003e\u003c/a\u003e feat(api): add phase field to conversations message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/c0c59afa39a82f73063a52f624a9a4a2a6bf3313\"\u003e\u003ccode\u003ec0c59af\u003c/code\u003e\u003c/a\u003e fix(types): remove web_search_call.results from ResponseIncludable\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.28.0...v2.32.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `claude-agent-sdk` from 0.1.48 to 0.1.63\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/releases\"\u003eclaude-agent-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.1.63\u003c/h2\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.114\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003ePyPI:\u003c/strong\u003e \u003ca href=\"https://pypi.org/project/claude-agent-sdk/0.1.63/\"\u003ehttps://pypi.org/project/claude-agent-sdk/0.1.63/\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install claude-agent-sdk==0.1.63\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.1.62\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eTop-level \u003ccode\u003eskills\u003c/code\u003e option\u003c/strong\u003e: Added \u003ccode\u003eskills\u003c/code\u003e parameter to \u003ccode\u003eClaudeAgentOptions\u003c/code\u003e for enabling skills on the main session without manually configuring \u003ccode\u003eallowed_tools\u003c/code\u003e and \u003ccode\u003esetting_sources\u003c/code\u003e. Supports \u003ccode\u003e\u0026quot;all\u0026quot;\u003c/code\u003e for every discovered skill, a list of named skills, or \u003ccode\u003e[]\u003c/code\u003e to suppress all skills (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/804\"\u003e#804\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.113\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003ePyPI:\u003c/strong\u003e \u003ca href=\"https://pypi.org/project/claude-agent-sdk/0.1.62/\"\u003ehttps://pypi.org/project/claude-agent-sdk/0.1.62/\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install claude-agent-sdk==0.1.62\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.1.61\u003c/h2\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003c...\n\n_Description has been truncated_","html_url":"https://github.com/pilotspace/pilot-space/pull/134","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pilotspace%2Fpilot-space/issues/134","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/134/packages"}},{"old_version":"4.48.3","new_version":"4.49.0","update_type":"minor","path":null,"pr_created_at":"2026-04-17T08:16:56.000Z","version_change":"4.48.3 → 4.49.0","issue":{"uuid":"4281164486","node_id":"PR_kwDOPYkt3s7TPU3P","number":542,"state":"closed","title":"build(deps): bump the all-python-deps group across 1 directory with 19 updates","user":"dependabot[bot]","labels":[],"assignees":["scottfrasso"],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-21T08:16:53.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-17T08:16:56.000Z","updated_at":"2026-04-21T08:16:55.000Z","time_to_close":345597,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"all-python-deps","update_count":19,"packages":[{"name":"rich","old_version":"14.3.3","new_version":"15.0.0","repository_url":"https://github.com/Textualize/rich"},{"name":"logfire","old_version":"4.29.0","new_version":"4.32.1","repository_url":"https://github.com/pydantic/logfire"},{"name":"posthog","old_version":"7.9.12","new_version":"7.12.0","repository_url":"https://github.com/posthog/posthog-python"},{"name":"textual","old_version":"8.1.1","new_version":"8.2.3","repository_url":"https://github.com/Textualize/textual"},{"name":"real-ladybug","old_version":"0.15.1","new_version":"0.15.3","repository_url":"https://github.com/lbugdb/lbug"},{"name":"tree-sitter-rust","old_version":"0.24.0","new_version":"0.24.2","repository_url":"https://github.com/tree-sitter/tree-sitter-rust"},{"name":"openai","old_version":"2.29.0","new_version":"2.32.0","repository_url":"https://github.com/openai/openai-python"},{"name":"anthropic","old_version":"0.85.0","new_version":"0.96.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"genai-prices","old_version":"0.0.55","new_version":"0.0.56","repository_url":"https://github.com/pydantic/genai-prices"},{"name":"dependency-injector","old_version":"4.48.3","new_version":"4.49.0","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"claude-agent-sdk","old_version":"0.1.48","new_version":"0.1.61","repository_url":"https://github.com/anthropics/claude-agent-sdk-python"},{"name":"lefthook","old_version":"2.1.4","new_version":"2.1.6","repository_url":"https://github.com/evilmartians/lefthook"},{"name":"mypy","old_version":"1.19.1","new_version":"1.20.1","repository_url":"https://github.com/python/mypy"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"ruff","old_version":"0.15.6","new_version":"0.15.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"types-aiofiles","old_version":"25.1.0.20251011","new_version":"25.1.0.20260409","repository_url":"https://github.com/python/typeshed"},{"name":"types-psutil","old_version":"7.2.2.20260130","new_version":"7.2.2.20260408","repository_url":"https://github.com/python/typeshed"},{"name":"types-pyyaml","old_version":"6.0.12.20250915","new_version":"6.0.12.20260408","repository_url":"https://github.com/python/typeshed"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-python-deps group with 19 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [rich](https://github.com/Textualize/rich) | `14.3.3` | `15.0.0` |\n| [logfire](https://github.com/pydantic/logfire) | `4.29.0` | `4.32.1` |\n| [posthog](https://github.com/posthog/posthog-python) | `7.9.12` | `7.12.0` |\n| [textual](https://github.com/Textualize/textual) | `8.1.1` | `8.2.3` |\n| [real-ladybug](https://github.com/lbugdb/lbug) | `0.15.1` | `0.15.3` |\n| [tree-sitter-rust](https://github.com/tree-sitter/tree-sitter-rust) | `0.24.0` | `0.24.2` |\n| [openai](https://github.com/openai/openai-python) | `2.29.0` | `2.32.0` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.85.0` | `0.96.0` |\n| [genai-prices](https://github.com/pydantic/genai-prices) | `0.0.55` | `0.0.56` |\n| [dependency-injector](https://github.com/ets-labs/python-dependency-injector) | `4.48.3` | `4.49.0` |\n| [claude-agent-sdk](https://github.com/anthropics/claude-agent-sdk-python) | `0.1.48` | `0.1.61` |\n| [lefthook](https://github.com/evilmartians/lefthook) | `2.1.4` | `2.1.6` |\n| [mypy](https://github.com/python/mypy) | `1.19.1` | `1.20.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.6` | `0.15.11` |\n| [types-aiofiles](https://github.com/python/typeshed) | `25.1.0.20251011` | `25.1.0.20260409` |\n| [types-psutil](https://github.com/python/typeshed) | `7.2.2.20260130` | `7.2.2.20260408` |\n| [types-pyyaml](https://github.com/python/typeshed) | `6.0.12.20250915` | `6.0.12.20260408` |\n\n\nUpdates `rich` from 14.3.3 to 15.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/rich/releases\"\u003erich's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eThe So Long 3.8 Release\u003c/h2\u003e\n\u003cp\u003eA few fixes. The major version bump is to honor the passing of 3.8 support which reached its EOL in October 7, 2024\u003c/p\u003e\n\u003ch2\u003e[15.0.0] - 2026-04-12\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBreaking change: Dropped support for Python3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed empty print ignoring the \u003ccode\u003eend\u003c/code\u003e parameter \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4075\"\u003eTextualize/rich#4075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eText.from_ansi\u003c/code\u003e removing newlines \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4076\"\u003eTextualize/rich#4076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eFileProxy.isatty\u003c/code\u003e not proxying \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4077\"\u003eTextualize/rich#4077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed inline code in Markdown tables cells \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4079\"\u003eTextualize/rich#4079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe Faster Startup Release\u003c/h2\u003e\n\u003cp\u003eNo new features in this release, but there should be improved startup time for Rich apps, and potentially improved runtime if you have a lot of links.\u003c/p\u003e\n\u003ch2\u003e[14.3.4] - 2026-04-11\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved import time with lazy loading \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4070\"\u003eTextualize/rich#4070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged link id generation to avoid random number generation at runtime \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3845\"\u003eTextualize/rich#3845\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/rich/blob/master/CHANGELOG.md\"\u003erich's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[15.0.0] - 2026-04-12\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBreaking change: Dropped support for Python3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed empty print ignoring the \u003ccode\u003eend\u003c/code\u003e parameter \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4075\"\u003eTextualize/rich#4075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eText.from_ansi\u003c/code\u003e removing newlines \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4076\"\u003eTextualize/rich#4076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eFileProxy.isatty\u003c/code\u003e not proxying \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4077\"\u003eTextualize/rich#4077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed inline code in Markdown tables cells \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4079\"\u003eTextualize/rich#4079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[14.3.4] - 2026-04-11\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved import time with lazy loading \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4070\"\u003eTextualize/rich#4070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged link id generation to avoid random number generation at runtime \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3845\"\u003eTextualize/rich#3845\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/6ac483cbea39cab124dfd3483bba70ffafb71050\"\u003e\u003ccode\u003e6ac483c\u003c/code\u003e\u003c/a\u003e correction\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/458a9109c8b7da81c17b2270ea8a88f3e8c0465a\"\u003e\u003ccode\u003e458a910\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/4080\"\u003e#4080\u003c/a\u003e from Textualize/bump1500\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/82e06e0d9985fd8cce456dc3977e0d2d9e84b4d8\"\u003e\u003ccode\u003e82e06e0\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/d6556bc44881b9904f29f5d9d69a0812b30675d1\"\u003e\u003ccode\u003ed6556bc\u003c/code\u003e\u003c/a\u003e bump to 15.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/ffe2edc5968eac19d5493c2d7b27965031a692e9\"\u003e\u003ccode\u003effe2edc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/4079\"\u003e#4079\u003c/a\u003e from Textualize/inline-table-code\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/cf3b5a16f7a76b2e8c4921d3314021bb72a6c5c1\"\u003e\u003ccode\u003ecf3b5a1\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/77f0edbdef71f2a895cd0ab1481e9a1fc79d42e6\"\u003e\u003ccode\u003e77f0edb\u003c/code\u003e\u003c/a\u003e remove comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/7ef2d05ca8aa3cb405dab2fdf3282e69cf8089e3\"\u003e\u003ccode\u003e7ef2d05\u003c/code\u003e\u003c/a\u003e fix inline code in table cells\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/19c67b9a3479841e9133bea94607c89ee931d3fc\"\u003e\u003ccode\u003e19c67b9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/4077\"\u003e#4077\u003c/a\u003e from Textualize/isattry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/494b795031782c694297d2db78bd04fb8c82f590\"\u003e\u003ccode\u003e494b795\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Textualize/rich/compare/v14.3.3...v15.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `logfire` from 4.29.0 to 4.32.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/logfire/releases\"\u003elogfire's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.32.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport OpenTelemetry SDK 1.40.0 by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1861\"\u003e#1861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo row→column transformation client-side in query client by \u003ca href=\"https://github.com/adriangb\"\u003e\u003ccode\u003e@​adriangb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1862\"\u003e#1862\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark various genai attributes as safe from scrubbing by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1863\"\u003e#1863\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.32.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epush_dataset\u003c/code\u003e helpers to the experimental API client by \u003ca href=\"https://github.com/dmontagu\"\u003e\u003ccode\u003e@​dmontagu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1848\"\u003e#1848\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.31.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Show token badges for OpenAI streaming logs by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1857\"\u003e#1857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: OTel warning during tail sampling buffer replay by \u003ca href=\"https://github.com/cyberksh\"\u003e\u003ccode\u003e@​cyberksh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1632\"\u003e#1632\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.31.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCapture token usage and cost attributes in OpenAI streaming logs by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1846\"\u003e#1846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCapture token usage and cost attributes in Anthropic streaming logs by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1850\"\u003e#1850\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCapture \u003ccode\u003eoperation.cost\u003c/code\u003e for OpenAI embeddings by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1843\"\u003e#1843\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCapture \u003ccode\u003egen_ai.usage.raw\u003c/code\u003e for Anthropic by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1847\"\u003e#1847\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: strip \u003ccode\u003ecf-connecting-ip\u003c/code\u003e header in \u003ccode\u003eforward_export_request\u003c/code\u003e by \u003ca href=\"https://github.com/BreytMN\"\u003e\u003ccode\u003e@​BreytMN\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1824\"\u003e#1824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle patching of \u003ccode\u003esys.stdout\u003c/code\u003e better by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1840\"\u003e#1840\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.31.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elogfire.instrument_claude_agent_sdk()\u003c/code\u003e by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1799\"\u003e#1799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add \u003ccode\u003elogfire.url_from_eval(report)\u003c/code\u003e method by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1694\"\u003e#1694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: include cached tokens in \u003ccode\u003egen_ai.usage.input_tokens\u003c/code\u003e for Anthropic by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1812\"\u003e#1812\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle bare MCP request types for fastmcp 3.x compatibility by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1813\"\u003e#1813\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.30.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elogfire auth logout\u003c/code\u003e command by \u003ca href=\"https://github.com/ai-man-codes\"\u003e\u003ccode\u003e@​ai-man-codes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1781\"\u003e#1781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove Rich link styling from project URL output by \u003ca href=\"https://github.com/ameenalkhaldi\"\u003e\u003ccode\u003e@​ameenalkhaldi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1784\"\u003e#1784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix push_config() to push labels and versions by \u003ca href=\"https://github.com/dmontagu\"\u003e\u003ccode\u003e@​dmontagu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1785\"\u003e#1785\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMerge \u003ccode\u003eexport_dataset\u003c/code\u003e into \u003ccode\u003eget_dataset\u003c/code\u003e with \u003ccode\u003einclude_cases\u003c/code\u003e parameter by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1792\"\u003e#1792\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/logfire/blob/main/CHANGELOG.md\"\u003elogfire's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v4.32.1] (2026-04-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport OpenTelemetry SDK 1.40.0 by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1861\"\u003e#1861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo row→column transformation client-side in query client by \u003ca href=\"https://github.com/adriangb\"\u003e\u003ccode\u003e@​adriangb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1862\"\u003e#1862\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark various genai attributes as safe from scrubbing by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1863\"\u003e#1863\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[v4.32.0] (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epush_dataset\u003c/code\u003e helpers to the experimental API client by \u003ca href=\"https://github.com/dmontagu\"\u003e\u003ccode\u003e@​dmontagu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1848\"\u003e#1848\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[v4.31.2] (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Show token badges for OpenAI streaming logs by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1857\"\u003e#1857\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: OTel warning during tail sampling buffer replay by \u003ca href=\"https://github.com/cyberksh\"\u003e\u003ccode\u003e@​cyberksh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1632\"\u003e#1632\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[v4.31.1] (2026-04-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCapture token usage and cost attributes in OpenAI streaming logs by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1846\"\u003e#1846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCapture token usage and cost attributes in Anthropic streaming logs by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1850\"\u003e#1850\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCapture \u003ccode\u003eoperation.cost\u003c/code\u003e for OpenAI embeddings by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1843\"\u003e#1843\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCapture \u003ccode\u003egen_ai.usage.raw\u003c/code\u003e for Anthropic by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1847\"\u003e#1847\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: strip \u003ccode\u003ecf-connecting-ip\u003c/code\u003e header in \u003ccode\u003eforward_export_request\u003c/code\u003e by \u003ca href=\"https://github.com/BreytMN\"\u003e\u003ccode\u003e@​BreytMN\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1824\"\u003e#1824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle patching of \u003ccode\u003esys.stdout\u003c/code\u003e better by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1840\"\u003e#1840\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[v4.31.0] (2026-03-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elogfire.instrument_claude_agent_sdk()\u003c/code\u003e by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1799\"\u003e#1799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add \u003ccode\u003elogfire.url_from_eval(report)\u003c/code\u003e method by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1694\"\u003e#1694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: include cached tokens in \u003ccode\u003egen_ai.usage.input_tokens\u003c/code\u003e for Anthropic by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1812\"\u003e#1812\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle bare MCP request types for fastmcp 3.x compatibility by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1813\"\u003e#1813\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[v4.30.0] (2026-03-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elogfire auth logout\u003c/code\u003e command by \u003ca href=\"https://github.com/ai-man-codes\"\u003e\u003ccode\u003e@​ai-man-codes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1781\"\u003e#1781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove Rich link styling from project URL output by \u003ca href=\"https://github.com/ameenalkhaldi\"\u003e\u003ccode\u003e@​ameenalkhaldi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1784\"\u003e#1784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix push_config() to push labels and versions by \u003ca href=\"https://github.com/dmontagu\"\u003e\u003ccode\u003e@​dmontagu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1785\"\u003e#1785\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMerge \u003ccode\u003eexport_dataset\u003c/code\u003e into \u003ccode\u003eget_dataset\u003c/code\u003e with \u003ccode\u003einclude_cases\u003c/code\u003e parameter by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1792\"\u003e#1792\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/c50a1c8e655ab17455f418964dde759323e7f19a\"\u003e\u003ccode\u003ec50a1c8\u003c/code\u003e\u003c/a\u003e Release v4.32.1 (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1864\"\u003e#1864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/1cce8df671a2cf9d4e63a33031fca49e516a5c46\"\u003e\u003ccode\u003e1cce8df\u003c/code\u003e\u003c/a\u003e Mark various genai attributes as safe from scrubbing (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1863\"\u003e#1863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/97b8aeff3ad1eb97eab534cdab76ede88b28c1af\"\u003e\u003ccode\u003e97b8aef\u003c/code\u003e\u003c/a\u003e Do row→column transformation client-side in query client (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1862\"\u003e#1862\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/b64a41d7703508f4d469b9c77cda9475787f34ed\"\u003e\u003ccode\u003eb64a41d\u003c/code\u003e\u003c/a\u003e Support OpenTelemetry SDK 1.40.0 (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1861\"\u003e#1861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/644e5ad487c17a72167b8abd7ee4551714b29e88\"\u003e\u003ccode\u003e644e5ad\u003c/code\u003e\u003c/a\u003e Release v4.32.0 (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1859\"\u003e#1859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/b68c83840e0d02e250814ae34559c51f25fc0844\"\u003e\u003ccode\u003eb68c838\u003c/code\u003e\u003c/a\u003e Add push_dataset helpers to the experimental API client (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1848\"\u003e#1848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/c3fa8f1d9c01003f9e2758ab5cd8be7df13062eb\"\u003e\u003ccode\u003ec3fa8f1\u003c/code\u003e\u003c/a\u003e Release v4.31.2 (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1858\"\u003e#1858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/7460a5e43bdcffa9a72decdd19aaf549c57d719e\"\u003e\u003ccode\u003e7460a5e\u003c/code\u003e\u003c/a\u003e fix: add gen_ai.system to OpenAI streaming logs (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1857\"\u003e#1857\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/13a96f4e53364b15b55f197511d3b445e589a6ee\"\u003e\u003ccode\u003e13a96f4\u003c/code\u003e\u003c/a\u003e refactor: gateway shutdown date (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1855\"\u003e#1855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/cada147782a1da4c28701474308a6ef22cbcbf1b\"\u003e\u003ccode\u003ecada147\u003c/code\u003e\u003c/a\u003e remove note about not supporting grpc ingest (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1853\"\u003e#1853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/logfire/compare/v4.29.0...v4.32.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `posthog` from 7.9.12 to 7.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/posthog/posthog-python/releases\"\u003eposthog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.12.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: merge master into main by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/513\"\u003ePostHog/posthog-python#513\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PostHog/posthog-python/compare/v7.11.2...v7.12.0\"\u003ehttps://github.com/PostHog/posthog-python/compare/v7.11.2...v7.12.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.11.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: add GitHub community health files by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/505\"\u003ePostHog/posthog-python#505\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump pyasn1 from 0.6.1 to 0.6.3 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/465\"\u003ePostHog/posthog-python#465\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump litellm from 1.82.6 to 1.83.0 in /examples/example-ai-dspy by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/487\"\u003ePostHog/posthog-python#487\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(deps): bump requests from 2.32.5 to 2.33.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/473\"\u003ePostHog/posthog-python#473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update branch references to main by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/506\"\u003ePostHog/posthog-python#506\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update endpoint for flags local eval by \u003ca href=\"https://github.com/patricio-posthog\"\u003e\u003ccode\u003e@​patricio-posthog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/509\"\u003ePostHog/posthog-python#509\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/465\"\u003ePostHog/posthog-python#465\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PostHog/posthog-python/compare/v7.11.1...v7.11.2\"\u003ehttps://github.com/PostHog/posthog-python/compare/v7.11.1...v7.11.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.11.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003echore: add stale workflow for issues and PRs by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/502\"\u003ePostHog/posthog-python#502\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(compliance): declare capabilities in health endpoint by \u003ca href=\"https://github.com/andehen\"\u003e\u003ccode\u003e@​andehen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/501\"\u003ePostHog/posthog-python#501\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add os_distro information to events by \u003ca href=\"https://github.com/parinporecha\"\u003e\u003ccode\u003e@​parinporecha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/467\"\u003ePostHog/posthog-python#467\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PostHog/posthog-python/compare/v7.11.0...v7.11.1\"\u003ehttps://github.com/PostHog/posthog-python/compare/v7.11.0...v7.11.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(llma): graceful fallback in claude_agent_sdk wrapper by \u003ca href=\"https://github.com/andrewm4894\"\u003e\u003ccode\u003e@​andrewm4894\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/495\"\u003ePostHog/posthog-python#495\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(llma): add $ai_stop_reason extraction for all providers by \u003ca href=\"https://github.com/carlos-marchal-ph\"\u003e\u003ccode\u003e@​carlos-marchal-ph\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/499\"\u003ePostHog/posthog-python#499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add Gemini embed_content tracking by \u003ca href=\"https://github.com/carlos-marchal-ph\"\u003e\u003ccode\u003e@​carlos-marchal-ph\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/498\"\u003ePostHog/posthog-python#498\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PostHog/posthog-python/compare/v7.10.3...v7.11.0\"\u003ehttps://github.com/PostHog/posthog-python/compare/v7.10.3...v7.11.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.10.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: pass before_send through module-level setup by \u003ca href=\"https://github.com/sipa-echo-zaoa\"\u003e\u003ccode\u003e@​sipa-echo-zaoa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/472\"\u003ePostHog/posthog-python#472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: add sampo changeset for before_send module-level setup fix (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/472\"\u003e#472\u003c/a\u003e) by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/489\"\u003ePostHog/posthog-python#489\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sipa-echo-zaoa\"\u003e\u003ccode\u003e@​sipa-echo-zaoa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/472\"\u003ePostHog/posthog-python#472\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PostHog/posthog-python/compare/v7.10.2...v7.10.3\"\u003ehttps://github.com/PostHog/posthog-python/compare/v7.10.2...v7.10.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev7.10.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PostHog/posthog-python/blob/main/CHANGELOG.md\"\u003eposthog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.12.0 — 2026-04-16\u003c/h2\u003e\n\u003ch3\u003eMinor changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/220d9e88877dee7eabd34fed68c2a4a65e6526a7\"\u003e220d9e8\u003c/a\u003e \u003ccode\u003ePrompts.get()\u003c/code\u003e now accepts \u003ccode\u003ewith_metadata=True\u003c/code\u003e and returns a \u003ccode\u003ePromptResult\u003c/code\u003e dataclass containing \u003ccode\u003esource\u003c/code\u003e (\u003ccode\u003eapi\u003c/code\u003e, \u003ccode\u003ecache\u003c/code\u003e, \u003ccode\u003estale_cache\u003c/code\u003e, or \u003ccode\u003ecode_fallback\u003c/code\u003e), \u003ccode\u003ename\u003c/code\u003e, and \u003ccode\u003eversion\u003c/code\u003e alongside the prompt text. The previous plain-string return is deprecated and will be removed in a future major version. — Thanks \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.11.2 — 2026-04-15\u003c/h2\u003e\n\u003ch3\u003ePatch changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/f5a95b454ae7fd8bf46381b1c624df827903260d\"\u003ef5a95b4\u003c/a\u003e feat(flags): switch local evaluation polling from \u003ccode\u003e/api/feature_flag/local_evaluation\u003c/code\u003e to \u003ccode\u003e/flags/definitions\u003c/code\u003e — Thanks \u003ca href=\"https://github.com/patricio-posthog\"\u003e\u003ccode\u003e@​patricio-posthog\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.11.1 — 2026-04-14\u003c/h2\u003e\n\u003ch3\u003ePatch changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/c3f097f72f5ef6c1ecd25ade7d3ba08e57765eaf\"\u003ec3f097f\u003c/a\u003e feat: Add os_distro information to events — Thanks \u003ca href=\"https://github.com/parinporecha\"\u003e\u003ccode\u003e@​parinporecha\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.11.0 — 2026-04-10\u003c/h2\u003e\n\u003ch3\u003eMinor changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/b921fe33a9115fbf5f5171b80e1deabffd3e66ca\"\u003eb921fe3\u003c/a\u003e Add Gemini \u003ccode\u003eembed_content\u003c/code\u003e tracking support for both sync and async clients — Thanks \u003ca href=\"https://github.com/carlos-marchal-ph\"\u003e\u003ccode\u003e@​carlos-marchal-ph\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/44b92a844a2d8170e5b2247e509279f4654c4ef6\"\u003e44b92a8\u003c/a\u003e feat(ai): add $ai_stop_reason extraction for all providers — Thanks \u003ca href=\"https://github.com/carlos-marchal-ph\"\u003e\u003ccode\u003e@​carlos-marchal-ph\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/7c5cad8fcf818c9b8b4f074876718b937f2f8072\"\u003e7c5cad8\u003c/a\u003e fix: graceful fallback in claude_agent_sdk query wrapper when PostHog is not configured — Thanks \u003ca href=\"https://github.com/andrewm4894\"\u003e\u003ccode\u003e@​andrewm4894\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.10.3 — 2026-04-08\u003c/h2\u003e\n\u003ch3\u003ePatch changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/e22e893b236bf6af1cb8f6c18712727d24fe5c7e\"\u003ee22e893\u003c/a\u003e fix: pass the module-level \u003ccode\u003eposthog.before_send\u003c/code\u003e callback into the lazily initialized default client — Thanks \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.10.2 — 2026-04-08\u003c/h2\u003e\n\u003ch3\u003ePatch changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/bae355cd787f4c1a119fd2b396ba444b1a218b6a\"\u003ebae355c\u003c/a\u003e feat(flags): make local evaluation endpoint configurable via \u003ccode\u003ePOSTHOG_LOCAL_EVALUATION_ENDPOINT\u003c/code\u003e env var with fallback to default endpoint — Thanks \u003ca href=\"https://github.com/patricio-posthog\"\u003e\u003ccode\u003e@​patricio-posthog\u003c/code\u003e\u003c/a\u003e for your first contribution 🎉!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.10.1 — 2026-04-08\u003c/h2\u003e\n\u003ch3\u003ePatch changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/a5052b089b106af5a2fa5236fcf1f4f84943f899\"\u003ea5052b0\u003c/a\u003e fix: Django middleware accidentally passed capture_exceptions as positional arg, setting fresh=True and resetting context state — Thanks \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.10.0 — 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eMinor changes\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/825bf1a09aa0d858df2f0f405ddd98776efefdf3\"\u003e\u003ccode\u003e825bf1a\u003c/code\u003e\u003c/a\u003e chore: Release v7.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/220d9e88877dee7eabd34fed68c2a4a65e6526a7\"\u003e\u003ccode\u003e220d9e8\u003c/code\u003e\u003c/a\u003e chore: merge master into main (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/513\"\u003e#513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/82f599347701b0b04106eb24e5e91f886ffe725b\"\u003e\u003ccode\u003e82f5993\u003c/code\u003e\u003c/a\u003e chore: Release v7.11.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/f5a95b454ae7fd8bf46381b1c624df827903260d\"\u003e\u003ccode\u003ef5a95b4\u003c/code\u003e\u003c/a\u003e chore: update endpoint for flags local eval (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/509\"\u003e#509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/055f8fd271a10b6bcafefb5ffc5db46cfb02a77a\"\u003e\u003ccode\u003e055f8fd\u003c/code\u003e\u003c/a\u003e chore: update branch references to main (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/506\"\u003e#506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/5f815482dbcb51a02d9029330cbebe04da2ca1ca\"\u003e\u003ccode\u003e5f81548\u003c/code\u003e\u003c/a\u003e chore(deps): bump requests from 2.32.5 to 2.33.0 (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/473\"\u003e#473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/bb69ddb3b80ac9964936cd53feeb39d54b5aa401\"\u003e\u003ccode\u003ebb69ddb\u003c/code\u003e\u003c/a\u003e chore(deps): bump litellm from 1.82.6 to 1.83.0 in /examples/example-ai-dspy ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/eba4a39fc292bd5a24ae1dc2fab16d475574138a\"\u003e\u003ccode\u003eeba4a39\u003c/code\u003e\u003c/a\u003e chore(deps): bump pyasn1 from 0.6.1 to 0.6.3 (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/465\"\u003e#465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/c59ca5938de4b5fd01f0412e345a0260088e849c\"\u003e\u003ccode\u003ec59ca59\u003c/code\u003e\u003c/a\u003e chore: add GitHub community health files (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/505\"\u003e#505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/33342776e543837a618944565cb596b6bdeb84ce\"\u003e\u003ccode\u003e3334277\u003c/code\u003e\u003c/a\u003e chore: Release v7.11.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/posthog/posthog-python/compare/v7.9.12...v7.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `textual` from 8.1.1 to 8.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/textual/releases\"\u003etextual's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eThe snappier resize Release\u003c/h2\u003e\n\u003ch2\u003e[8.2.3] - 2026-04-05\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce lag when resizing window, by moving resize from idle to a timer \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6471\"\u003eTextualize/textual#6471\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe Faster Resize Release\u003c/h2\u003e\n\u003cp\u003eFixed an issue where styles were being unneccesarily updated when resizing. Textual apps will now adapt to changes in the terminal size much more quickly.\u003c/p\u003e\n\u003ch2\u003e[8.2.2] - 2026-04-03\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Pointless style updates when resizing \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6464\"\u003eTextualize/textual#6464\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe Hot Select Release\u003c/h2\u003e\n\u003cp\u003eFixes a crash when a selected widget is removed while selecting\u003c/p\u003e\n\u003ch2\u003e[8.2.1] - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash when a widget disapears between selections \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6455\"\u003eTextualize/textual#6455\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe Select Release\u003c/h2\u003e\n\u003cp\u003eThis release enhances text selection, with auto-scrolling, and the ability to select across container widgets.\u003c/p\u003e\n\u003cp\u003eThis work was sponsored by Mistral AI.\u003c/p\u003e\n\u003ch2\u003e[8.2.0] - 2026-03-27\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAuto-scrolling on select \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSelecting over containers \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eApp.ENABLE_SELECT_AUTO_SCROLL\u003c/code\u003e, \u003ccode\u003eApp.SELECT_AUTO_SCROLL_LINES\u003c/code\u003e, \u003ccode\u003eApp.SELECT_AUTO_SCROLL_SPEED\u003c/code\u003e to tweak auto scrolling behavior \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/textual/blob/main/CHANGELOG.md\"\u003etextual's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[8.2.3] - 2026-04-05\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce lag when resizing window, by moving resize from idle to a timer \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6471\"\u003eTextualize/textual#6471\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.2.2] - 2026-04-03\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Pointless style updates when resizing \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6464\"\u003eTextualize/textual#6464\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.2.1] - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash when a widget disapears between selections \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6455\"\u003eTextualize/textual#6455\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.2.0] - 2026-03-27\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAuto-scrolling on select \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSelecting over containers \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eApp.ENABLE_SELECT_AUTO_SCROLL\u003c/code\u003e, \u003ccode\u003eApp.SELECT_AUTO_SCROLL_LINES\u003c/code\u003e, \u003ccode\u003eApp.SELECT_AUTO_SCROLL_SPEED\u003c/code\u003e to tweak auto scrolling behavior \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/634ca6e786885ffebe211fc73e0e8a04e030f3c3\"\u003e\u003ccode\u003e634ca6e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6473\"\u003e#6473\u003c/a\u003e from Textualize/bump823\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/ccf1978c1a715ac7d33149dcfc344765dc250037\"\u003e\u003ccode\u003eccf1978\u003c/code\u003e\u003c/a\u003e bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/5ddfbdc6bf7966b99644f2da0251c94c83a50528\"\u003e\u003ccode\u003e5ddfbdc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6462\"\u003e#6462\u003c/a\u003e from IEBqp/guide-patch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/23bf10e77bd18fa91ed2c42e3a0693b0702e097d\"\u003e\u003ccode\u003e23bf10e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6470\"\u003e#6470\u003c/a\u003e from Textualize/defensive-selection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/32f1d23330efd7a47891a5ce90edd7677664fbc1\"\u003e\u003ccode\u003e32f1d23\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6471\"\u003e#6471\u003c/a\u003e from Textualize/resize-lag\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/2bbfbb7741470e8cf95c37476047b89787afaec5\"\u003e\u003ccode\u003e2bbfbb7\u003c/code\u003e\u003c/a\u003e force initial resize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/4b6579038979a90d1f4067d8e396f0af13e80f75\"\u003e\u003ccode\u003e4b65790\u003c/code\u003e\u003c/a\u003e ignore no size changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/63fe6f0646e0f1401b990fb64f292d9646d01014\"\u003e\u003ccode\u003e63fe6f0\u003c/code\u003e\u003c/a\u003e check resize timer on idle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/ec5b43ae1cc2c49361f0d791a53dd047bce08369\"\u003e\u003ccode\u003eec5b43a\u003c/code\u003e\u003c/a\u003e also resize on idle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/12a52d9e24f1d47eb680e814527fac6ee004e573\"\u003e\u003ccode\u003e12a52d9\u003c/code\u003e\u003c/a\u003e check screen error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Textualize/textual/compare/v8.1.1...v8.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `real-ladybug` from 0.15.1 to 0.15.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/lbugdb/lbug/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tree-sitter-rust` from 0.24.0 to 0.24.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/releases\"\u003etree-sitter-rust's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.24.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNOTE:\u003c/strong\u003e Download \u003ccode\u003etree-sitter-rust.tar.gz\u003c/code\u003e for the \u003cem\u003ecomplete\u003c/em\u003e source code.\u003c/p\u003e\n\u003ch2\u003ev0.24.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNOTE:\u003c/strong\u003e Download \u003ccode\u003etree-sitter-rust.tar.gz\u003c/code\u003e for the \u003cem\u003ecomplete\u003c/em\u003e source code.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/77a3747266f4d621d0757825e6b11edcbf991ca5\"\u003e\u003ccode\u003e77a3747\u003c/code\u003e\u003c/a\u003e 0.24.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/c9f157902a6b487f0c358dc383d2d694b98fd814\"\u003e\u003ccode\u003ec9f1579\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/v0.24.x'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/b3e615de069beb04ff44f65ac52f7f03cff04438\"\u003e\u003ccode\u003eb3e615d\u003c/code\u003e\u003c/a\u003e Fix bad error recovery when parsing repeated string literals (\u003ca href=\"https://redirect.github.com/tree-sitter/tree-sitter-rust/issues/307\"\u003e#307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/4b8106750a2865e4548459d18c797c9f468c440e\"\u003e\u003ccode\u003e4b81067\u003c/code\u003e\u003c/a\u003e Disable regeneration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/6651c80dc5f033f9666365de50260d02cea05412\"\u003e\u003ccode\u003e6651c80\u003c/code\u003e\u003c/a\u003e Regenerate parser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/96e3121c41bc5f2b659f21dd5a43894c4028ddf1\"\u003e\u003ccode\u003e96e3121\u003c/code\u003e\u003c/a\u003e Remove attestations from GH release job\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/8a1ccae7aaccdc11b04dbd803453e3e9cfd9159b\"\u003e\u003ccode\u003e8a1ccae\u003c/code\u003e\u003c/a\u003e 0.24.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/ab43fdbb1640bdece8fab9927b1aa6774d942189\"\u003e\u003ccode\u003eab43fdb\u003c/code\u003e\u003c/a\u003e Parse string literals even in with unexpected prefixes (\u003ca href=\"https://redirect.github.com/tree-sitter/tree-sitter-rust/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/261b20226c04ef601adbdf185a800512a5f66291\"\u003e\u003ccode\u003e261b202\u003c/code\u003e\u003c/a\u003e Raw reference/identifier conflict (\u003ca href=\"https://redirect.github.com/tree-sitter/tree-sitter-rust/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/946595d164e77b705fa28385654f9420f59262ef\"\u003e\u003ccode\u003e946595d\u003c/code\u003e\u003c/a\u003e Include LICENSE (\u003ca href=\"https://redirect.github.com/tree-sitter/tree-sitter-rust/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/compare/v0.24.0...v0.24.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.29.0 to 2.32.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.32.0\u003c/h2\u003e\n\u003ch2\u003e2.32.0 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.31.0...v2.32.0\"\u003ev2.31.0...v2.32.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add detail to InputFileContent (\u003ca href=\"https://github.com/openai/openai-python/commit/60de21d1fcfbcadea0d9b8d884c73c9dc49d14ff\"\u003e60de21d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add OAuthErrorCode type (\u003ca href=\"https://github.com/openai/openai-python/commit/0c8d2c3b44242c9139dc554896ea489b56e236b8\"\u003e0c8d2c3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add event handler implementation for websockets (\u003ca href=\"https://github.com/openai/openai-python/commit/0280d0568f706684ecbf0aabf3575cdcb7fd22d5\"\u003e0280d05\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e allow enqueuing to websockets even when not connected (\u003ca href=\"https://github.com/openai/openai-python/commit/67aa20e69bc0e4a3b7694327c808606bfa24a966\"\u003e67aa20e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e support reconnection in websockets (\u003ca href=\"https://github.com/openai/openai-python/commit/eb72a953ea9dc5beec3eef537be6eb32292c3f65\"\u003eeb72a95\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/openai/openai-python/commit/c0c2ecd0f6b64fa5fafda6134bb06995b143a2cf\"\u003ec0c2ecd\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimprove examples (\u003ca href=\"https://github.com/openai/openai-python/commit/84712fa0f094b53151a0fe6ac85aa98018b2a7e2\"\u003e84712fa\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.31.0\u003c/h2\u003e\n\u003ch2\u003e2.31.0 (2026-04-08)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.30.0...v2.31.0\"\u003ev2.30.0...v2.31.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add phase field to conversations message (\u003ca href=\"https://github.com/openai/openai-python/commit/3e5834efb39b24e019a29dc54d890c67d18cbb54\"\u003e3e5834e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add web_search_call.results to ResponseIncludable type (\u003ca href=\"https://github.com/openai/openai-python/commit/ffd8741dd38609a5af0159ceb800d8ddba7925f8\"\u003effd8741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add support for short-lived tokens (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/1608\"\u003e#1608\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/22fe7228d4990c197cd721b3ad7931ad05cca5dd\"\u003e22fe722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e support sending raw data over websockets (\u003ca href=\"https://github.com/openai/openai-python/commit/f1bc52ef641dfca6fdf2a5b00ce3b09bff2552f5\"\u003ef1bc52e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e implement indices array format for query and form serialization (\u003ca href=\"https://github.com/openai/openai-python/commit/49194cfa711328216ff131d6f65c9298822a7c51\"\u003e49194cf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e preserve hardcoded query params when merging with user params (\u003ca href=\"https://github.com/openai/openai-python/commit/92e109c3d9569a942e1919e75977dc13fa015f9a\"\u003e92e109c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e remove web_search_call.results from ResponseIncludable (\u003ca href=\"https://github.com/openai/openai-python/commit/d3cc40165cd86015833d15167cc7712b4102f932\"\u003ed3cc401\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.20.1 (\u003ca href=\"https://github.com/openai/openai-python/commit/d60e2eea7f6916540cd4ba901dceb07051119da4\"\u003ed60e2ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.20.2 (\u003ca href=\"https://github.com/openai/openai-python/commit/6508d474332d4e82d9615c0a9a77379f9b5e4412\"\u003e6508d47\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.0 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.31.0...v2.32.0\"\u003ev2.31.0...v2.32.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add detail to InputFileContent (\u003ca href=\"https://github.com/openai/openai-python/commit/60de21d1fcfbcadea0d9b8d884c73c9dc49d14ff\"\u003e60de21d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add OAuthErrorCode type (\u003ca href=\"https://github.com/openai/openai-python/commit/0c8d2c3b44242c9139dc554896ea489b56e236b8\"\u003e0c8d2c3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add event handler implementation for websockets (\u003ca href=\"https://github.com/openai/openai-python/commit/0280d0568f706684ecbf0aabf3575cdcb7fd22d5\"\u003e0280d05\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e allow enqueuing to websockets even when not connected (\u003ca href=\"https://github.com/openai/openai-python/commit/67aa20e69bc0e4a3b7694327c808606bfa24a966\"\u003e67aa20e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e support reconnection in websockets (\u003ca href=\"https://github.com/openai/openai-python/commit/eb72a953ea9dc5beec3eef537be6eb32292c3f65\"\u003eeb72a95\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/openai/openai-python/commit/c0c2ecd0f6b64fa5fafda6134bb06995b143a2cf\"\u003ec0c2ecd\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimprove examples (\u003ca href=\"https://github.com/openai/openai-python/commit/84712fa0f094b53151a0fe6ac85aa98018b2a7e2\"\u003e84712fa\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.31.0 (2026-04-08)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.30.0...v2.31.0\"\u003ev2.30.0...v2.31.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add phase field to conversations message (\u003ca href=\"https://github.com/openai/openai-python/commit/3e5834efb39b24e019a29dc54d890c67d18cbb54\"\u003e3e5834e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add web_search_call.results to ResponseIncludable type (\u003ca href=\"https://github.com/openai/openai-python/commit/ffd8741dd38609a5af0159ceb800d8ddba7925f8\"\u003effd8741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add support for short-lived tokens (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/1608\"\u003e#1608\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/22fe7228d4990c197cd721b3ad7931ad05cca5dd\"\u003e22fe722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e support sending raw data over websockets (\u003ca href=\"https://github.com/openai/openai-python/commit/f1bc52ef641dfca6fdf2a5b00ce3b09bff2552f5\"\u003ef1bc52e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e implement indices array format for query and form serialization (\u003ca href=\"https://github.com/openai/openai-python/commit/49194cfa711328216ff131d6f65c9298822a7c51\"\u003e49194cf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e preserve hardcoded query params when merging with user params (\u003ca href=\"https://github.com/openai/openai-python/commit/92e109c3d9569a942e1919e75977dc13fa015f9a\"\u003e92e109c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e remove web_search_call.results from ResponseIncludable (\u003ca href=\"https://github.com/openai/openai-python/commit/d3cc40165cd86015833d15167cc7712b4102f932\"\u003ed3cc401\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.20.1 (\u003ca href=\"https://github.com/openai/openai-python/commit/d60e2eea7f6916540cd4ba901dceb07051119da4\"\u003ed60e2ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.20.2 (\u003ca href=\"https://github.com/openai/openai-python/commit/6508d474332d4e82d9615c0a9a77379f9b5e4412\"\u003e6508d47\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update file parameter descriptions in vector_stores files and file_batches (\u003ca href=\"https://github.com/openai/openai-python/commit/a9e7ebd505b9ae90514339aa63c6f1984a08cf6b\"\u003ea9e7ebd\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/e507a4ebeea4c3f93cd48986014a3e2ca79230c2\"\u003e\u003ccode\u003ee507a4e\u003c/code\u003e\u003c/a\u003e release: 2.32.0 (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/3074\"\u003e#3074\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/750354ed65565b31d0547bf00f4f3180ac1bfeef\"\u003e\u003ccode\u003e750354e\u003c/code\u003e\u003c/a\u003e release: 2.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/5be95364a5a82746cb7b1c77df10dfaf138496bb\"\u003e\u003ccode\u003e5be9536\u003c/code\u003e\u003c/a\u003e feat(client): add support for short-lived tokens (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/1608\"\u003e#1608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/f1fd4fae0329ee3df2f1bb25d93f51311782ad1a\"\u003e\u003ccode\u003ef1fd4fa\u003c/code\u003e\u003c/a\u003e feat(client): support sending raw data over websockets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/73ea2f75ba57a1db964518b33b790b1e1251b8d5\"\u003e\u003ccode\u003e73ea2f7\u003c/code\u003e\u003c/a\u003e fix(client): preserve hardcoded query params when merging with user params\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/454b2575d59a086f279d99dc791058acee2f14c0\"\u003e\u003ccode\u003e454b257\u003c/code\u003e\u003c/a\u003e feat(api): add web_search_call.results to ResponseIncludable type\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/de2c7b1d087f41f33ada85a7460f32e55331778a\"\u003e\u003ccode\u003ede2c7b1\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/6efca95a76f6ca9cb91fdf536c6c9ebcef075541\"\u003e\u003ccode\u003e6efca95\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2076d85f9226113e4ba360a7f456091988092dbf\"\u003e\u003ccode\u003e2076d85\u003c/code\u003e\u003c/a\u003e feat(api): add phase field to conversations message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/c0c59afa39a82f73063a52f624a9a4a2a6bf3313\"\u003e\u003ccode\u003ec0c59af\u003c/code\u003e\u003c/a\u003e fix(types): remove web_search_call.results from ResponseIncludable\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.29.0...v2.32.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anthropic` from 0.85.0 to 0.96.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/releases\"\u003eanthropic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.96.0\u003c/h2\u003e\n\u003ch2\u003e0.96.0 (2026-04-16)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.95.0...v0.96.0\"\u003ev0.95.0...v0.96.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add claude-opus-4-7, token budgets and user_profiles (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0aa2a0d4388a39984134d1dfc2bcbd6b206f7184\"\u003e0aa2a0d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e remove release-doctor workflow (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1d9add35d0bd4c71f2bca3b0d494d1d0a348817a\"\u003e1d9add3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.95.0\u003c/h2\u003e\n\u003ch2\u003e0.95.0 (2026-04-14)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.1...v0.95.0\"\u003ev0.94.1...v0.95.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e mark Sonnet and Opus 4 as deprecated (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0c1e7736394585dd021b53c1f87383c4fae29a6b\"\u003e0c1e773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebedrock:\u003c/strong\u003e use auth header for mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1644\"\u003e#1644\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3b93090e121861462f21a7621484cda66c139997\"\u003e3b93090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.94.1\u003c/h2\u003e\n\u003ch2\u003e0.94.1 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.0...v0.94.1\"\u003ev0.94.0...v0.94.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e add missing events (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c6a06d80b7e87bc034bd6ade950c735da02a0be3\"\u003ec6a06d8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.94.0\u003c/h2\u003e\n\u003ch2\u003e0.94.0 (2026-04-10)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.93.0...v0.94.0\"\u003ev0.93.0...v0.94.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evertex eu region (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1658\"\u003e#1658\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b7e157d85f50b2900ddf896e8e80882dd7311bfd\"\u003eb7e157d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/837b25bb6262186a5bae92aa70eb73c3cf8c90af\"\u003e837b25b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/blob/main/CHANGELOG.md\"\u003eanthropic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.96.0 (2026-04-16)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.95.0...v0.96.0\"\u003ev0.95.0...v0.96.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add claude-opus-4-7, token budgets and user_profiles (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0aa2a0d4388a39984134d1dfc2bcbd6b206f7184\"\u003e0aa2a0d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e remove release-doctor workflow (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1d9add35d0bd4c71f2bca3b0d494d1d0a348817a\"\u003e1d9add3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.95.0 (2026-04-14)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.1...v0.95.0\"\u003ev0.94.1...v0.95.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e mark Sonnet and Opus 4 as deprecated (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0c1e7736394585dd021b53c1f87383c4fae29a6b\"\u003e0c1e773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebedrock:\u003c/strong\u003e use auth header for mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1644\"\u003e#1644\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3b93090e121861462f21a7621484cda66c139997\"\u003e3b93090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.94.1 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.94.0...v0.94.1\"\u003ev0.94.0...v0.94.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estreaming:\u003c/strong\u003e add missing events (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c6a06d80b7e87bc034bd6ade950c735da02a0be3\"\u003ec6a06d8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.94.0 (2026-04-10)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.93.0...v0.94.0\"\u003ev0.93.0...v0.94.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evertex eu region (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1658\"\u003e#1658\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b7e157d85f50b2900ddf896e8e80882dd7311bfd\"\u003eb7e157d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/837b25bb6262186a5bae92aa70eb73c3cf8c90af\"\u003e837b25b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimprove examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/48089fdb788500d00718b9d4ae24cd34e5e91beb\"\u003e48089fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0f3c28b973026d135f91f38c4ad82ae2b1131522\"\u003e0f3c28b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.93.0 (2026-04-09)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/78de297e71bacbe6acf4d3b420edcaad90ce1045\"\u003e\u003ccode\u003e78de297\u003c/code\u003e\u003c/a\u003e release: 0.96.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/dc0c79294528932c8fb4b27d6c0c24a0198d2c0a\"\u003e\u003ccode\u003edc0c792\u003c/code\u003e\u003c/a\u003e feat(api): add claude-opus-4-7, token budgets and user_profiles\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/71eff1fee942056bf54219e9953615be143f67ec\"\u003e\u003ccode\u003e71eff1f\u003c/code\u003e\u003c/a\u003e chore(ci): remove release-doctor workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1056685678c8e52cb2492e43b75d695ab91a4b51\"\u003e\u003ccode\u003e1056685\u003c/code\u003e\u003c/a\u003e release: 0.95.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/9741185561f6ebf289051a9eec136cf4ce7846a6\"\u003e\u003ccode\u003e9741185\u003c/code\u003e\u003c/a\u003e feat(bedrock): use auth header for mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1644\"\u003e#1644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/ef22dbbd4a2005fd4e1b8e24cfb562c35c688313\"\u003e\u003ccode\u003eef22dbb\u003c/code\u003e\u003c/a\u003e feat(api): mark Sonnet and Opus 4 as deprecated\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/6d9b98672387c1f4f1f4a8fc02ea6d0e45a8362b\"\u003e\u003ccode\u003e6d9b986\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/47c48a9eee1b6b34b7b87569c4481d3d89c5bc33\"\u003e\u003ccode\u003e47c48a9\u003c/code\u003e\u003c/a\u003e release: 0.94.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/49bab64536c113302653510ed6a639b34ade1af2\"\u003e\u003ccode\u003e49bab64\u003c/code\u003e\u003c/a\u003e fix(streaming): add missing events\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7b03b0fc0b103eaba7732fc5ae54fc86c963839a\"\u003e\u003ccode\u003e7b03b0f\u003c/code\u003e\u003c/a\u003e release: 0.94.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.85.0...v0.96.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `genai-prices` from 0.0.55 to 0.0.56\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/9ebd466b6a0bb57c81c168fa9ed6f6a1e547c22a\"\u003e\u003ccode\u003e9ebd466\u003c/code\u003e\u003c/a\u003e Prep 0.0.56 release (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/318\"\u003e#318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/c5bd290dd46af2deab22af7a0aa709906e7038d1\"\u003e\u003ccode\u003ec5bd290\u003c/code\u003e\u003c/a\u003e Add OpenRouter pricing for claude-sonnet-4.6 (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/296\"\u003e#296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/ea55b972b43eb679e99795c1479ccea4a502ebe0\"\u003e\u003ccode\u003eea55b97\u003c/code\u003e\u003c/a\u003e feat: add Qwen3 Max Thinking to OpenRouter (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/5f2a7bd337696bc2a9ca41147d0a9d7c00e824aa\"\u003e\u003ccode\u003e5f2a7bd\u003c/code\u003e\u003c/a\u003e Add Qwen3 VL 235B A22B (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/a7628264248ca1ce96acb3a2abbe19de47b3efdf\"\u003e\u003ccode\u003ea762826\u003c/code\u003e\u003c/a\u003e Add openrouter qwen/qwen3.5-plus-02-15 price (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/299\"\u003e#299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/8ab5336c8fefeb664d692f2238e1181d0ba0321b\"\u003e\u003ccode\u003e8ab5336\u003c/code\u003e\u003c/a\u003e feat: moonshot ai prices file (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/87f9120fc248dddafbb2c863a29ef5488a5164fc\"\u003e\u003ccode\u003e87f9120\u003c/code\u003e\u003c/a\u003e feat: add Gemini 3.1 Flash Image Preview pricing (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/303\"\u003e#303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/016961828b5ecb1e38932a5675fe9afa2668a135\"\u003e\u003ccode\u003e0169618\u003c/code\u003e\u003c/a\u003e Adding api-flavor for xAI native SDK (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/307\"\u003e#307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/ee468266850d8b6ebed856f9b175e37044437a44\"\u003e\u003ccode\u003eee46826\u003c/code\u003e\u003c/a\u003e feat: add GPT-5.4 mini and nano snapshot aliases (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/9205f145985ca898daa5bcf6148f932a82cf62a1\"\u003e\u003ccode\u003e9205f14\u003c/code\u003e\u003c/a\u003e feat: add pricing for GPT 5.4 mini and nano (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/315\"\u003e#315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/genai-prices/compare/v0.0.55...v0.0.56\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dependency-injector` from 4.48.3 to 4.49.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.49.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.14 support\u003c/li\u003e\n\u003cli\u003eFix Pydantic v2 deprecation warning triggering on settings class import (fixes \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix grammar in Declarative Container documentation by \u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing warn_unresolved parameter to WiringConfiguration in containers.pyi by \u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd keep_cache argument to Container.wire typings by \u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for some type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/943\"\u003eets-labs/python-dependency-injector#943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for remaining type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/953\"\u003eets-labs/python-dependency-injector#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd provided()\u003c!-- raw HTML omitted --\u003e.call *args, **kwargs arguments \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/945\"\u003e#945\u003c/a\u003e by \u003ca href=\"https://github.com/pavalso\"\u003e\u003ccode\u003e@​pavalso\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/946\"\u003eets-labs/python-dependency-injector#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd context local resource by \u003ca href=\"https://github.com/elina-israyelyan\"\u003e\u003ccode\u003e@​elina-israyelyan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/931\"\u003eets-labs/python-dependency-injector#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI/CD to \u003ccode\u003eactions/checkout@v6\u003c/code\u003e, \u003ccode\u003eactions/setup-python@v6\u003c/code\u003e, \u003ccode\u003eactions/download-artifact@v8\u003c/code\u003e, \u003ccode\u003eactions/upload-artifact@v7\u003c/code\u003e and \u003ccode\u003epypa/cibuildwheel@v3.4.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdd dependabot config for GitHub Actions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pavalso\"\u003e\u003ccode\u003e@​pavalso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/946\"\u003eets-labs/python-dependency-injector#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elina-israyelyan\"\u003e\u003ccode\u003e@​elina-israyelyan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/931\"\u003eets-labs/python-dependency-injector#931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5f7aa1c337c77e782e1e927eb4b1e41a60912604\"\u003e\u003ccode\u003e5f7aa1c\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5863d99bd5e9b2d22c15f3815b23973317a453ee\"\u003e\u003ccode\u003e5863d99\u003c/code\u003e\u003c/a\u003e Add .github/dependabot.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/000c670c7e655cc7db423a76c6b877d185f706ce\"\u003e\u003ccode\u003e000c670\u003c/code\u003e\u003c/a\u003e Upgrade GHA actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/931084070a5304a26a925961375a5afcc3c3a38b\"\u003e\u003ccode\u003e9310840\u003c/code\u003e\u003c/a\u003e Fix iscoroutinefunction import for older Pythons\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/05a5e7d8701a1df8cb88ad55d187ba88cd6ffbe8\"\u003e\u003ccode\u003e05a5e7d\u003c/code\u003e\u003c/a\u003e Fix get_annotations import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/58700d9dbd3420a559330666edfb477418997ff9\"\u003e\u003ccode\u003e58700d9\u003c/code\u003e\u003c/a\u003e Use from import statements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/0e25331738716d5bfa5562d42617deb6ad65d23c\"\u003e\u003ccode\u003e0e25331\u003c/code\u003e\u003c/a\u003e Do not build nogil wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1696986aa7698120a7e2aab2355d93e178fc36f9\"\u003e\u003ccode\u003e1696986\u003c/code\u003e\u003c/a...\n\n_Description has been truncated_","html_url":"https://github.com/shotgun-sh/shotgun/pull/542","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/shotgun-sh%2Fshotgun/issues/542","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/542/packages"}},{"old_version":"4.48.3","new_version":"4.49.0","update_type":"minor","path":null,"pr_created_at":"2026-04-13T01:20:38.000Z","version_change":"4.48.3 → 4.49.0","issue":{"uuid":"4250619854","node_id":"PR_kwDORMFN3c7R11SD","number":131,"state":"open","title":"chore(deps): bump the python-minor-patch group across 1 directory with 31 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-13T01:20:38.000Z","updated_at":"2026-04-13T01:20:50.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-minor-patch","update_count":31,"packages":[{"name":"fastapi","old_version":"0.135.1","new_version":"0.135.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.42.0","new_version":"0.44.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"python-multipart","old_version":"0.0.22","new_version":"0.0.26","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"sqlalchemy","old_version":"2.0.48","new_version":"2.0.49","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"redis","old_version":"7.3.0","new_version":"7.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"supabase","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"postgrest","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"storage3","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"anthropic","old_version":"0.85.0","new_version":"0.94.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"openai","old_version":"2.28.0","new_version":"2.31.0","repository_url":"https://github.com/openai/openai-python"},{"name":"claude-agent-sdk","old_version":"0.1.48","new_version":"0.1.58","repository_url":"https://github.com/anthropics/claude-agent-sdk-python"},{"name":"dependency-injector","old_version":"4.48.3","new_version":"4.49.0","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"orjson","old_version":"3.11.7","new_version":"3.11.8","repository_url":"https://github.com/ijl/orjson"},{"name":"cryptography","old_version":"46.0.5","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"ua-parser","old_version":"1.0.1","new_version":"1.0.2","repository_url":"https://github.com/ua-parser/uap-python"},{"name":"anyio","old_version":"4.12.1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"charset-normalizer","old_version":"3.4.6","new_version":"3.4.7","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.1","new_version":"8.3.2","repository_url":"https://github.com/pallets/click"},{"name":"fsspec","old_version":"2026.2.0","new_version":"2026.3.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"greenlet","old_version":"3.3.2","new_version":"3.4.0","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"jiter","old_version":"0.13.0","new_version":"0.14.0","repository_url":"https://github.com/pydantic/jiter"},{"name":"mcp","old_version":"1.26.0","new_version":"1.27.0","repository_url":"https://github.com/modelcontextprotocol/python-sdk"},{"name":"numpy","old_version":"2.4.3","new_version":"2.4.4","repository_url":"https://github.com/numpy/numpy"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.45.0","repository_url":"https://github.com/pydantic/pydantic-core"},{"name":"pygments","old_version":"2.19.2","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyroaring","old_version":"1.0.3","new_version":"1.0.4","repository_url":"https://github.com/Ezibenroc/PyRoaringBitMap"},{"name":"realtime","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"sse-starlette","old_version":"3.3.2","new_version":"3.3.4","repository_url":"https://github.com/sysid/sse-starlette"},{"name":"supabase-auth","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"supabase-functions","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-patch group with 31 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.135.1` | `0.135.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.42.0` | `0.44.0` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.22` | `0.0.26` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.48` | `2.0.49` |\n| [redis](https://github.com/redis/redis-py) | `7.3.0` | `7.4.0` |\n| [supabase](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [postgrest](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [storage3](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.85.0` | `0.94.0` |\n| [openai](https://github.com/openai/openai-python) | `2.28.0` | `2.31.0` |\n| [claude-agent-sdk](https://github.com/anthropics/claude-agent-sdk-python) | `0.1.48` | `0.1.58` |\n| [dependency-injector](https://github.com/ets-labs/python-dependency-injector) | `4.48.3` | `4.49.0` |\n| [orjson](https://github.com/ijl/orjson) | `3.11.7` | `3.11.8` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.5` | `46.0.7` |\n| [ua-parser](https://github.com/ua-parser/uap-python) | `1.0.1` | `1.0.2` |\n| [anyio](https://github.com/agronholm/anyio) | `4.12.1` | `4.13.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.6` | `3.4.7` |\n| [click](https://github.com/pallets/click) | `8.3.1` | `8.3.2` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.2.0` | `2026.3.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.3.2` | `3.4.0` |\n| [jiter](https://github.com/pydantic/jiter) | `0.13.0` | `0.14.0` |\n| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `1.26.0` | `1.27.0` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.3` | `2.4.4` |\n| [pydantic-core](https://github.com/pydantic/pydantic-core) | `2.41.5` | `2.45.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.2` | `2.20.0` |\n| [pyroaring](https://github.com/Ezibenroc/PyRoaringBitMap) | `1.0.3` | `1.0.4` |\n| [realtime](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [sse-starlette](https://github.com/sysid/sse-starlette) | `3.3.2` | `3.3.4` |\n| [supabase-auth](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [supabase-functions](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n\n\nUpdates `fastapi` from 0.135.1 to 0.135.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.135.3\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for \u003ccode\u003e@app.vibe()\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15280\"\u003e#15280\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eNew docs: \u003ca href=\"https://fastapi.tiangolo.com/advanced/vibe/\"\u003eVibe Coding\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✏️ Fix typo for \u003ccode\u003eclient_secret\u003c/code\u003e in OAuth2 form docstrings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14946\"\u003e#14946\u003c/a\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👥 Update FastAPI People - Experts. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15279\"\u003e#15279\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump orjson from 3.11.7 to 3.11.8. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15276\"\u003e#15276\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.0 to 0.15.8. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15277\"\u003e#15277\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI GitHub topic repositories. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15274\"\u003e#15274\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastmcp from 2.14.5 to 3.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15267\"\u003e#15267\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI People - Contributors and Translators. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15270\"\u003e#15270\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump requests from 2.32.5 to 2.33.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15228\"\u003e#15228\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Add ty check to \u003ccode\u003elint.sh\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15136\"\u003e#15136\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.2\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Increase lower bound to \u003ccode\u003epydantic \u0026gt;=2.9.0.\u003c/code\u003e and fix the test suite. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15139\"\u003e#15139\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add missing last release notes dates. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15202\"\u003e#15202\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update docs for contributors and team members regarding translation PRs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15200\"\u003e#15200\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Fix code blocks in reference docs overflowing table width. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15094\"\u003e#15094\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix duplicated words in docstrings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15116\"\u003e#15116\u003c/a\u003e by \u003ca href=\"https://github.com/AhsanSheraz\"\u003e\u003ccode\u003e@​AhsanSheraz\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add docs for \u003ccode\u003epyproject.toml\u003c/code\u003e with \u003ccode\u003eentrypoint\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15075\"\u003e#15075\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update links in docs to no longer use the classes external-link and internal-link. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15061\"\u003e#15061\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add JS and CSS handling for automatic \u003ccode\u003etarget=_blank\u003c/code\u003e for links in docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15063\"\u003e#15063\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Update styles for internal and external links in new tab. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15058\"\u003e#15058\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝  Add documentation for the FastAPI VS Code extension. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15008\"\u003e#15008\u003c/a\u003e by \u003ca href=\"https://github.com/savannahostrowski\"\u003e\u003ccode\u003e@​savannahostrowski\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix doctrings for \u003ccode\u003emax_digits\u003c/code\u003e and \u003ccode\u003edecimal_places\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14944\"\u003e#14944\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add dates to release notes. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15001\"\u003e#15001\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15177\"\u003e#15177\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15178\"\u003e#15178\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15176\"\u003e#15176\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15175\"\u003e#15175\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15171\"\u003e#15171\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15170\"\u003e#15170\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for tr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15172\"\u003e#15172\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15168\"\u003e#15168\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1f442c454f2f74c7419f83c203e6333955399528\"\u003e\u003ccode\u003e1f442c4\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.135.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8f5d1577b471f389f6cdea878d40a1497fda7746\"\u003e\u003ccode\u003e8f5d157\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/428452a710338334ae11043a48b06d52d9b3edba\"\u003e\u003ccode\u003e428452a\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/70580da818722cce68b7a88928d67bd0f64f42c5\"\u003e\u003ccode\u003e70580da\u003c/code\u003e\u003c/a\u003e ✨ Add support for \u003ccode\u003e@app.vibe()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15280\"\u003e#15280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6ee87478d821171139264cd9cd17cbd2232934ce\"\u003e\u003ccode\u003e6ee8747\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3e72c09a2abfe9e1b55eede6a297cb1847126e49\"\u003e\u003ccode\u003e3e72c09\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI People - Experts (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15279\"\u003e#15279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/96df35f7a4337d612811483d8ade74f91cce2d61\"\u003e\u003ccode\u003e96df35f\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6c8112555bd86f21cfee8500140dca094ad26e20\"\u003e\u003ccode\u003e6c81125\u003c/code\u003e\u003c/a\u003e ⬆ Bump orjson from 3.11.7 to 3.11.8 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15276\"\u003e#15276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/428f82c93616b52aee2fcee03484a855135c07e5\"\u003e\u003ccode\u003e428f82c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/5599c59b9e7112109f04b63a58034fb95833f514\"\u003e\u003ccode\u003e5599c59\u003c/code\u003e\u003c/a\u003e ⬆ Bump ruff from 0.15.0 to 0.15.8 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15277\"\u003e#15277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.135.1...0.135.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.42.0 to 0.44.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.44.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2888\"\u003eKludex/uvicorn#2888\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.43.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.44.0 (April 6, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2888\"\u003e#2888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.43.0 (April 3, 2026)\u003c/h2\u003e\n\u003cp\u003eYou can quit Uvicorn now. We heard you, \u003ca href=\"https://github.com/pamelafox\"\u003e\u003ccode\u003e@​pamelafox\u003c/code\u003e\u003c/a\u003e - all 47 of your Ctrl+C's (thanks for flagging it, and thanks to \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e for the fix 🙏). \u003ca href=\"https://x.com/pamelafox/status/2039097686155227623\"\u003eSee the tweet\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/edb54c43c0321c0b41eee1473f3f4cf145e8927f\"\u003e\u003ccode\u003eedb54c4\u003c/code\u003e\u003c/a\u003e Version 0.44.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2890\"\u003e#2890\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/029be08867fe899cde6fd31a3ba75fffca7bd9ae\"\u003e\u003ccode\u003e029be08\u003c/code\u003e\u003c/a\u003e Implement websocket keepalive pings for websockets-sansio (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2888\"\u003e#2888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/8d397c73191b49c6d5280098d7c09dbe474e00bf\"\u003e\u003ccode\u003e8d397c7\u003c/code\u003e\u003c/a\u003e Version 0.43.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2885\"\u003e#2885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/587042d68ff6c813ec0d8cfafaa820ebe7229d23\"\u003e\u003ccode\u003e587042d\u003c/code\u003e\u003c/a\u003e 🐛 Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for s...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/c9a75fb67b2e969253a41ef4ad447e013eee879e\"\u003e\u003ccode\u003ec9a75fb\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2878\"\u003e#2878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/84fd578224e36766efb056585cb6cc5171270089\"\u003e\u003ccode\u003e84fd578\u003c/code\u003e\u003c/a\u003e chore(deps): bump pygments from 2.19.2 to 2.20.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2877\"\u003e#2877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/cd52d34b55d898180a65cfc01a6a88aac54c65c3\"\u003e\u003ccode\u003ecd52d34\u003c/code\u003e\u003c/a\u003e Use native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5211880320b2e99a532eb121808039404da234ab\"\u003e\u003ccode\u003e5211880\u003c/code\u003e\u003c/a\u003e Drop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/1cb8e747e2817ee46a4c0d44139e46b3b1f8fab6\"\u003e\u003ccode\u003e1cb8e74\u003c/code\u003e\u003c/a\u003e Add websocket 500 fallback header test (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2874\"\u003e#2874\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/28efbb24bd590f1f943cbc2bf84f197268a8c6d8\"\u003e\u003ccode\u003e28efbb2\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump cryptography from 46.0.5 to 46.0.6 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2873\"\u003e#2873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.42.0...0.44.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.22 to 0.0.26\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.26\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before first multipart boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003eKludex/python-multipart#262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003eKludex/python-multipart#259\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply Apache-2.0 properly by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003eKludex/python-multipart#247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003eKludex/python-multipart#252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003eKludex/python-multipart#230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003eKludex/python-multipart#254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove custom FormParser classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003eKludex/python-multipart#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003eKludex/python-multipart#258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd MIME content type info to File by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003eKludex/python-multipart#143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003eKludex/python-multipart#244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003eKludex/python-multipart#196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e by \u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.26 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before the first multipart boundary more efficiently \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003e#262\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing multipart boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003e#259\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.25 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd MIME content type info to \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003e#143\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003e#258\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRemove custom \u003ccode\u003eFormParser\u003c/code\u003e classes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003e#257\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003e#254\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003e#230\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003e#252\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eApply Apache-2.0 properly \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003e#247\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.24 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003e#244\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.23 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003e#196\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003e#229\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003e#227\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/28f47859b4a40c2e11e02dc514b2e9743ceedd2e\"\u003e\u003ccode\u003e28f4785\u003c/code\u003e\u003c/a\u003e Version 0.0.26 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d4452a78bbde94995dd3c0d1b4aff3610a5c472f\"\u003e\u003ccode\u003ed4452a7\u003c/code\u003e\u003c/a\u003e Silently discard epilogue data after the closing boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/259\"\u003e#259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6a7b76dd2653d99d8e5981d7ff09a4a047750b37\"\u003e\u003ccode\u003e6a7b76d\u003c/code\u003e\u003c/a\u003e Skip preamble before first multipart boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/4addb60350fc843f77a1502f14247db91930b3bf\"\u003e\u003ccode\u003e4addb60\u003c/code\u003e\u003c/a\u003e Version 0.0.25 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d3a4698e0dc16cbd85f98076b2ebf9b696cd3604\"\u003e\u003ccode\u003ed3a4698\u003c/code\u003e\u003c/a\u003e Add MIME content type info to File (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/143\"\u003e#143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/9a1ecbd074801fcd3911266f3f4442181d10ab92\"\u003e\u003ccode\u003e9a1ecbd\u003c/code\u003e\u003c/a\u003e Handle CTE values case-insensitively (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/258\"\u003e#258\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/ef2a0b94f95676ea6a7b77d2252b09f5797cb8ed\"\u003e\u003ccode\u003eef2a0b9\u003c/code\u003e\u003c/a\u003e Remove custom FormParser classes (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/257\"\u003e#257\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/3a757d7cf209e654eb17cf7b7af868eed469f680\"\u003e\u003ccode\u003e3a757d7\u003c/code\u003e\u003c/a\u003e Ignore local Claude state (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/255\"\u003e#255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/55e739617db7c40e2cd04c5ad8c7acf2ed0a1d19\"\u003e\u003ccode\u003e55e7396\u003c/code\u003e\u003c/a\u003e fuzz: Add cifuzz (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/186\"\u003e#186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d6d1d111e7de9ce3d3f8623fe5f5e4201c0a5fd1\"\u003e\u003ccode\u003ed6d1d11\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/249\"\u003e#249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.26\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.48 to 2.0.49\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.49\u003c/h1\u003e\n\u003cp\u003eReleased: April 3, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where \u003ccode\u003e_orm.Session.get()\u003c/code\u003e would bypass the identity map\nand emit unnecessary SQL when \u003ccode\u003ewith_for_update=False\u003c/code\u003e was passed,\nrather than treating it equivalently to the default of \u003ccode\u003eNone\u003c/code\u003e.\nPull request courtesy of Joshua Swanson.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13176\"\u003e#13176\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where chained \u003ccode\u003e_orm.joinedload()\u003c/code\u003e options would not be\napplied correctly when the final relationship in the chain is declared on a\nbase mapper and accessed through a subclass mapper in a\n\u003ccode\u003e_orm.with_polymorphic()\u003c/code\u003e query. The path registry now correctly\ncomputes the natural path when a property declared on a base class is\naccessed through a path containing a subclass mapper, ensuring the loader\noption can be located during query compilation.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13193\"\u003e#13193\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using \u003ccode\u003e_orm.Load.options()\u003c/code\u003e to apply a chained loader\noption such as \u003ccode\u003e_orm.joinedload()\u003c/code\u003e or \u003ccode\u003e_orm.selectinload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot generate the necessary clauses for the polymorphic subclasses. The\npolymorphic loading strategy is now correctly propagated when using a call\nsuch as \u003ccode\u003ejoinedload(A.b).options(joinedload(B.c.of_type(poly)))\u003c/code\u003e to match\nthe behavior of direct chaining e.g.\n\u003ccode\u003ejoinedload(A.b).joinedload(B.c.of_type(poly))\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13202\"\u003e#13202\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using chained loader options such as\n\u003ccode\u003e_orm.selectinload()\u003c/code\u003e after \u003ccode\u003e_orm.joinedload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot properly apply the chained loader option. The loader option is now\ncorrectly applied when using a call such as\n\u003ccode\u003ejoinedload(A.b.of_type(poly)).selectinload(poly.SubClass.c)\u003c/code\u003e to eagerly\nload related objects.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13209\"\u003e#13209\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etyping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[typing] [bug]\u003c/strong\u003e Fixed a typing issue where the typed members of :data:\u003ccode\u003e.func\u003c/code\u003e would return\nthe appropriate class of the same name, however this creates an issue for\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 7.3.0 to 7.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError in cluster metrics recording when connection is None or ClusterNode object instance is used to extract the connection info (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3999\"\u003e#3999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords might leak in plain text logs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3998\"\u003e#3998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cp\u003e-Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpose basic Otel classes and functions to be importable through redis.observability to match the examples in the readthedocs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3996\"\u003e#3996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/b72f24ad6a2226d46aed770e18094a86117d2217\"\u003e\u003ccode\u003eb72f24a\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/0a4e0afe36504c3fb6df1e38683ea946febac9d3\"\u003e\u003ccode\u003e0a4e0af\u003c/code\u003e\u003c/a\u003e Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/15492c9156d3ab8dce05360977480510cf24fbf9\"\u003e\u003ccode\u003e15492c9\u003c/code\u003e\u003c/a\u003e Refactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/cd964ac96649df872a051835e9a52e05a5090607\"\u003e\u003ccode\u003ecd964ac\u003c/code\u003e\u003c/a\u003e Expose basic Otel classes and funtions to be importable through redis.observa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/46ab74d02ed9b15176f67edb817de83524f8145a\"\u003e\u003ccode\u003e46ab74d\u003c/code\u003e\u003c/a\u003e Fixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/26482dbaae38abdb1966d9b1c803331e2dab2053\"\u003e\u003ccode\u003e26482db\u003c/code\u003e\u003c/a\u003e Fix AttributeError in cluster metrics recording when connection is None or Cl...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/redis-py/compare/v7.3.0...v7.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `supabase` from 2.28.2 to 2.28.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003esupabase's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.28.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md\"\u003esupabase's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/deac3232f6bdd242f60b46c7a8922e010524ca53\"\u003e\u003ccode\u003edeac323\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.3 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003e\u003ccode\u003ec7f8f13\u003c/code\u003e\u003c/a\u003e fix(postgrest): fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `postgrest` from 2.28.2 to 2.28.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003epostgrest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.28.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md\"\u003epostgrest's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/deac3232f6bdd242f60b46c7a8922e010524ca53\"\u003e\u003ccode\u003edeac323\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.3 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003e\u003ccode\u003ec7f8f13\u003c/code\u003e\u003c/a\u003e fix(postgrest): fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `storage3` from 2.28.2 to 2.28.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003estorage3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.28.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md\"\u003estorage3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/deac3232f6bdd242f60b46c7a8922e010524ca53\"\u003e\u003ccode\u003edeac323\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.3 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003e\u003ccode\u003ec7f8f13\u003c/code\u003e\u003c/a\u003e fix(postgrest): fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anthropic` from 0.85.0 to 0.94.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/releases\"\u003eanthropic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.94.0\u003c/h2\u003e\n\u003ch2\u003e0.94.0 (2026-04-10)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.93.0...v0.94.0\"\u003ev0.93.0...v0.94.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evertex eu region (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1658\"\u003e#1658\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b7e157d85f50b2900ddf896e8e80882dd7311bfd\"\u003eb7e157d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/837b25bb6262186a5bae92aa70eb73c3cf8c90af\"\u003e837b25b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimprove examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/48089fdb788500d00718b9d4ae24cd34e5e91beb\"\u003e48089fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0f3c28b973026d135f91f38c4ad82ae2b1131522\"\u003e0f3c28b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.93.0\u003c/h2\u003e\n\u003ch2\u003e0.93.0 (2026-04-09)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.92.0...v0.93.0\"\u003ev0.92.0...v0.93.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add beta advisor tool (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/4297dca285441b185ea9e3d18b7f912102b54be2\"\u003e4297dca\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.92.0\u003c/h2\u003e\n\u003ch2\u003e0.92.0 (2026-04-08)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.91.0...v0.92.0\"\u003ev0.91.0...v0.92.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add support for Claude Managed Agents (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/5b879a7d929bd93332d777bed067be680819dfac\"\u003e5b879a7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.91.0\u003c/h2\u003e\n\u003ch2\u003e0.91.0 (2026-04-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.90.0...v0.91.0\"\u003ev0.90.0...v0.91.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e Create Bedrock Mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1616\"\u003e#1616\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fd195a2fa2cd44ebf4513e69f671def88d2b6ec9\"\u003efd195a2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.90.0\u003c/h2\u003e\n\u003ch2\u003e0.90.0 (2026-04-07)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/blob/main/CHANGELOG.md\"\u003eanthropic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.94.0 (2026-04-10)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.93.0...v0.94.0\"\u003ev0.93.0...v0.94.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003evertex eu region (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1658\"\u003e#1658\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b7e157d85f50b2900ddf896e8e80882dd7311bfd\"\u003eb7e157d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eensure file data are only sent as 1 parameter (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/837b25bb6262186a5bae92aa70eb73c3cf8c90af\"\u003e837b25b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eimprove examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/48089fdb788500d00718b9d4ae24cd34e5e91beb\"\u003e48089fd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate examples (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0f3c28b973026d135f91f38c4ad82ae2b1131522\"\u003e0f3c28b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.93.0 (2026-04-09)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.92.0...v0.93.0\"\u003ev0.92.0...v0.93.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add beta advisor tool (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/4297dca285441b185ea9e3d18b7f912102b54be2\"\u003e4297dca\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.92.0 (2026-04-08)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.91.0...v0.92.0\"\u003ev0.91.0...v0.92.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add support for Claude Managed Agents (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/5b879a7d929bd93332d777bed067be680819dfac\"\u003e5b879a7\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.91.0 (2026-04-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.90.0...v0.91.0\"\u003ev0.90.0...v0.91.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e Create Bedrock Mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1616\"\u003e#1616\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fd195a2fa2cd44ebf4513e69f671def88d2b6ec9\"\u003efd195a2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.90.0 (2026-04-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.89.0...v0.90.0\"\u003ev0.89.0...v0.90.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add support for claude-mythos-preview (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fc7ddd8e0296a578f09c7fa2baf00e50d81cf980\"\u003efc7ddd8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7b03b0fc0b103eaba7732fc5ae54fc86c963839a\"\u003e\u003ccode\u003e7b03b0f\u003c/code\u003e\u003c/a\u003e release: 0.94.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/42ee3dab539d6346505bae13745d34fe91c1946e\"\u003e\u003ccode\u003e42ee3da\u003c/code\u003e\u003c/a\u003e docs: update examples\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/0c8a8c9ec660108666baf96acd4aab08d41027af\"\u003e\u003ccode\u003e0c8a8c9\u003c/code\u003e\u003c/a\u003e fix: ensure file data are only sent as 1 parameter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/9092064e862fe03afbca1740cbc21d20edcb4984\"\u003e\u003ccode\u003e9092064\u003c/code\u003e\u003c/a\u003e feat: vertex eu region (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1658\"\u003e#1658\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/25b6c31ca04c107c9b31d61e13ad69a1598ff65f\"\u003e\u003ccode\u003e25b6c31\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/717f90bf95b0dd3e1fefb2df06c022f16a03ee96\"\u003e\u003ccode\u003e717f90b\u003c/code\u003e\u003c/a\u003e release: 0.93.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c10155947d844c7545b533bb62748e4381d5d7c5\"\u003e\u003ccode\u003ec101559\u003c/code\u003e\u003c/a\u003e feat(api): Add beta advisor tool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/5a290a8defab65e68d240116cbefa85987253946\"\u003e\u003ccode\u003e5a290a8\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c2cc6f9947fb89afd9c11cbc178631209dd2fba5\"\u003e\u003ccode\u003ec2cc6f9\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/90cd200895a7625481e6edc4696704e37b6d7dfd\"\u003e\u003ccode\u003e90cd200\u003c/code\u003e\u003c/a\u003e release: 0.92.0 (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1348\"\u003e#1348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.85.0...v0.94.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.28.0 to 2.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.31.0\u003c/h2\u003e\n\u003ch2\u003e2.31.0 (2026-04-08)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.30.0...v2.31.0\"\u003ev2.30.0...v2.31.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add phase field to conversations message (\u003ca href=\"https://github.com/openai/openai-python/commit/3e5834efb39b24e019a29dc54d890c67d18cbb54\"\u003e3e5834e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add web_search_call.results to ResponseIncludable type (\u003ca href=\"https://github.com/openai/openai-python/commit/ffd8741dd38609a5af0159ceb800d8ddba7925f8\"\u003effd8741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add support for short-lived tokens (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/1608\"\u003e#1608\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/22fe7228d4990c197cd721b3ad7931ad05cca5dd\"\u003e22fe722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e support sending raw data over websockets (\u003ca href=\"https://github.com/openai/openai-python/commit/f1bc52ef641dfca6fdf2a5b00ce3b09bff2552f5\"\u003ef1bc52e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e implement indices array format for query and form serialization (\u003ca href=\"https://github.com/openai/openai-python/commit/49194cfa711328216ff131d6f65c9298822a7c51\"\u003e49194cf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e preserve hardcoded query params when merging with user params (\u003ca href=\"https://github.com/openai/openai-python/commit/92e109c3d9569a942e1919e75977dc13fa015f9a\"\u003e92e109c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e remove web_search_call.results from ResponseIncludable (\u003ca href=\"https://github.com/openai/openai-python/commit/d3cc40165cd86015833d15167cc7712b4102f932\"\u003ed3cc401\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.20.1 (\u003ca href=\"https://github.com/openai/openai-python/commit/d60e2eea7f6916540cd4ba901dceb07051119da4\"\u003ed60e2ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.20.2 (\u003ca href=\"https://github.com/openai/openai-python/commit/6508d474332d4e82d9615c0a9a77379f9b5e4412\"\u003e6508d47\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update file parameter descriptions in vector_stores files and file_batches (\u003ca href=\"https://github.com/openai/openai-python/commit/a9e7ebd505b9ae90514339aa63c6f1984a08cf6b\"\u003ea9e7ebd\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.30.0\u003c/h2\u003e\n\u003ch2\u003e2.30.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.29.0...v2.30.0\"\u003ev2.29.0...v2.30.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add keys field to Click/DoubleClick/Drag/Move/Scroll computer actions (\u003ca href=\"https://github.com/openai/openai-python/commit/ee1bbeddbb38dab817557412dc106354409bb950\"\u003eee1bbed\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e align SDK response types with expanded item schemas (\u003ca href=\"https://github.com/openai/openai-python/commit/f3f258a9d4d19db3fb0c6c35e25ad3cedbe71254\"\u003ef3f258a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esanitize endpoint path params (\u003ca href=\"https://github.com/openai/openai-python/commit/89f66988fde790c0c83ff8b876d1e1b10d616367\"\u003e89f6698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e make type required in ResponseInputMessageItem (\u003ca href=\"https://github.com/openai/openai-python/commit/cfdb1676ea0550840330a58f1a31a40a41a0a53f\"\u003ecfdb167\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e skip lint on metadata-only changes (\u003ca href=\"https://github.com/openai/openai-python/commit/faa93e19a1d5c30c7dd672a08dbbdbb3c0374714\"\u003efaa93e1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.31.0 (2026-04-08)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.30.0...v2.31.0\"\u003ev2.30.0...v2.31.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add phase field to conversations message (\u003ca href=\"https://github.com/openai/openai-python/commit/3e5834efb39b24e019a29dc54d890c67d18cbb54\"\u003e3e5834e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add web_search_call.results to ResponseIncludable type (\u003ca href=\"https://github.com/openai/openai-python/commit/ffd8741dd38609a5af0159ceb800d8ddba7925f8\"\u003effd8741\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e add support for short-lived tokens (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/1608\"\u003e#1608\u003c/a\u003e) (\u003ca href=\"https://github.com/openai/openai-python/commit/22fe7228d4990c197cd721b3ad7931ad05cca5dd\"\u003e22fe722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e support sending raw data over websockets (\u003ca href=\"https://github.com/openai/openai-python/commit/f1bc52ef641dfca6fdf2a5b00ce3b09bff2552f5\"\u003ef1bc52e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e implement indices array format for query and form serialization (\u003ca href=\"https://github.com/openai/openai-python/commit/49194cfa711328216ff131d6f65c9298822a7c51\"\u003e49194cf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e preserve hardcoded query params when merging with user params (\u003ca href=\"https://github.com/openai/openai-python/commit/92e109c3d9569a942e1919e75977dc13fa015f9a\"\u003e92e109c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e remove web_search_call.results from ResponseIncludable (\u003ca href=\"https://github.com/openai/openai-python/commit/d3cc40165cd86015833d15167cc7712b4102f932\"\u003ed3cc401\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.20.1 (\u003ca href=\"https://github.com/openai/openai-python/commit/d60e2eea7f6916540cd4ba901dceb07051119da4\"\u003ed60e2ee\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.20.2 (\u003ca href=\"https://github.com/openai/openai-python/commit/6508d474332d4e82d9615c0a9a77379f9b5e4412\"\u003e6508d47\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update file parameter descriptions in vector_stores files and file_batches (\u003ca href=\"https://github.com/openai/openai-python/commit/a9e7ebd505b9ae90514339aa63c6f1984a08cf6b\"\u003ea9e7ebd\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.30.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.29.0...v2.30.0\"\u003ev2.29.0...v2.30.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add keys field to Click/DoubleClick/Drag/Move/Scroll computer actions (\u003ca href=\"https://github.com/openai/openai-python/commit/ee1bbeddbb38dab817557412dc106354409bb950\"\u003eee1bbed\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e align SDK response types with expanded item schemas (\u003ca href=\"https://github.com/openai/openai-python/commit/f3f258a9d4d19db3fb0c6c35e25ad3cedbe71254\"\u003ef3f258a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esanitize endpoint path params (\u003ca href=\"https://github.com/openai/openai-python/commit/89f66988fde790c0c83ff8b876d1e1b10d616367\"\u003e89f6698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e make type required in ResponseInputMessageItem (\u003ca href=\"https://github.com/openai/openai-python/commit/cfdb1676ea0550840330a58f1a31a40a41a0a53f\"\u003ecfdb167\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e skip lint on metadata-only changes (\u003ca href=\"https://github.com/openai/openai-python/commit/faa93e19a1d5c30c7dd672a08dbbdbb3c0374714\"\u003efaa93e1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e update gitignore (\u003ca href=\"https://github.com/openai/openai-python/commit/c468477f1546579618865a726e35a685cffeacd9\"\u003ec468477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.4 (\u003ca href=\"https://github.com/openai/openai-python/commit/f350af86c13ade0237778010d264c55fda443354\"\u003ef350af8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/750354ed65565b31d0547bf00f4f3180ac1bfeef\"\u003e\u003ccode\u003e750354e\u003c/code\u003e\u003c/a\u003e release: 2.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/5be95364a5a82746cb7b1c77df10dfaf138496bb\"\u003e\u003ccode\u003e5be9536\u003c/code\u003e\u003c/a\u003e feat(client): add support for short-lived tokens (\u003ca href=\"https://redirect.github.com/openai/openai-python/issues/1608\"\u003e#1608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/f1fd4fae0329ee3df2f1bb25d93f51311782ad1a\"\u003e\u003ccode\u003ef1fd4fa\u003c/code\u003e\u003c/a\u003e feat(client): support sending raw data over websockets\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/73ea2f75ba57a1db964518b33b790b1e1251b8d5\"\u003e\u003ccode\u003e73ea2f7\u003c/code\u003e\u003c/a\u003e fix(client): preserve hardcoded query params when merging with user params\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/454b2575d59a086f279d99dc791058acee2f14c0\"\u003e\u003ccode\u003e454b257\u003c/code\u003e\u003c/a\u003e feat(api): add web_search_call.results to ResponseIncludable type\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/de2c7b1d087f41f33ada85a7460f32e55331778a\"\u003e\u003ccode\u003ede2c7b1\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/6efca95a76f6ca9cb91fdf536c6c9ebcef075541\"\u003e\u003ccode\u003e6efca95\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2076d85f9226113e4ba360a7f456091988092dbf\"\u003e\u003ccode\u003e2076d85\u003c/code\u003e\u003c/a\u003e feat(api): add phase field to conversations message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/c0c59afa39a82f73063a52f624a9a4a2a6bf3313\"\u003e\u003ccode\u003ec0c59af\u003c/code\u003e\u003c/a\u003e fix(types): remove web_search_call.results from ResponseIncludable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/ad7cc79c80b7ddffb03c0339be05f468ae46d54f\"\u003e\u003ccode\u003ead7cc79\u003c/code\u003e\u003c/a\u003e docs(api): update file parameter descriptions in vector_stores files and file...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.28.0...v2.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `claude-agent-sdk` from 0.1.48 to 0.1.58\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/releases\"\u003eclaude-agent-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.1.58\u003c/h2\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.97\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003ePyPI:\u003c/strong\u003e \u003ca href=\"https://pypi.org/project/claude-agent-sdk/0.1.58/\"\u003ehttps://pypi.org/project/claude-agent-sdk/0.1.58/\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install claude-agent-sdk==0.1.58\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.1.57\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCross-user prompt caching\u003c/strong\u003e: Added \u003ccode\u003eexclude_dynamic_sections\u003c/code\u003e option to \u003ccode\u003eSystemPromptPreset\u003c/code\u003e, enabling cross-user prompt cache hits by moving per-user dynamic sections (working directory, memory, git status) out of the system prompt (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/797\"\u003e#797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAuto permission mode\u003c/strong\u003e: Added \u003ccode\u003e\u0026quot;auto\u0026quot;\u003c/code\u003e to the \u003ccode\u003ePermissionMode\u003c/code\u003e type, bringing parity with the TypeScript SDK and CLI v2.1.90+ (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/785\"\u003e#785\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eThinking configuration\u003c/strong\u003e: Fixed \u003ccode\u003ethinking={\u0026quot;type\u0026quot;: \u0026quot;adaptive\u0026quot;}\u003c/code\u003e incorrectly mapping to \u003ccode\u003e--max-thinking-tokens 32000\u003c/code\u003e instead of \u003ccode\u003e--thinking adaptive\u003c/code\u003e. The \u003ccode\u003edisabled\u003c/code\u003e type similarly now uses \u003ccode\u003e--thinking disabled\u003c/code\u003e instead of \u003ccode\u003e--max-thinking-tokens 0\u003c/code\u003e, matching the TypeScript SDK behavior (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/796\"\u003e#796\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.96\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003ePyPI:\u003c/strong\u003e \u003ca href=\"https://pypi.org/project/claude-agent-sdk/0.1.57/\"\u003ehttps://pypi.org/project/claude-agent-sdk/0.1.57/\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install claude-agent-sdk==0.1.57\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.1.56\u003c/h2\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.92\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003ePyPI:\u003c/strong\u003e \u003ca href=\"https://pypi.org/project/claude-agent-sdk/0.1.56/\"\u003ehttps://pypi.org/project/claude-agent-sdk/0.1.56/\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/blob/main/CHANGELOG.md\"\u003eclaude-agent-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.1.58\u003c/h2\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.97\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.1.57\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCross-user prompt caching\u003c/strong\u003e: Added \u003ccode\u003eexclude_dynamic_sections\u003c/code\u003e option to \u003ccode\u003eSystemPromptPreset\u003c/code\u003e, enabling cross-user prompt cache hits by moving per-user dynamic sections (working directory, memory, git status) out of the system prompt (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/797\"\u003e#797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAuto permission mode\u003c/strong\u003e: Added \u003ccode\u003e\u0026quot;auto\u0026quot;\u003c/code\u003e to the \u003ccode\u003ePermissionMode\u003c/code\u003e type, bringing parity with the TypeScript SDK and CLI v2.1.90+ (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/785\"\u003e#785\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eThinking configuration\u003c/strong\u003e: Fixed \u003ccode\u003ethinking={\u0026quot;type\u0026quot;: \u0026quot;adaptive\u0026quot;}\u003c/code\u003e incorrectly mapping to \u003ccode\u003e--max-thinking-tokens 32000\u003c/code\u003e instead of \u003ccode\u003e--thinking adaptive\u003c/code\u003e. The \u003ccode\u003edisabled\u003c/code\u003e type similarly now uses \u003ccode\u003e--thinking disabled\u003c/code\u003e instead of \u003ccode\u003e--max-thinking-tokens 0\u003c/code\u003e, matching the TypeScript SDK behavior (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/796\"\u003e#796\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.96\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.1.56\u003c/h2\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.92\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.1.55\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eMCP large tool results\u003c/strong\u003e: Forward \u003ccode\u003emaxResultSizeChars\u003c/code\u003e from \u003ccode\u003eToolAnnotations\u003c/code\u003e via \u003ccode\u003e_meta\u003c/code\u003e to bypass Zod annotation stripping in the CLI, fixing silent truncation of large MCP tool results (\u0026gt;50K chars) (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.91\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.1.53\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSetting sources flag\u003c/strong\u003e: Fixed \u003ccode\u003e--setting-sources\u003c/code\u003e being passed as an empty string when not provided, which caused the CLI to misparse subsequent flags (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/778\"\u003e#778\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eString prompt deadlock\u003c/strong\u003e: Fixed deadlock when using \u003ccode\u003equery()\u003c/code\u003e with a string prompt and hooks/MCP servers that trigger many tool calls, by spawning \u003ccode\u003ewait_for_result_and_end_input()\u003c/code\u003e as a background task (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/780\"\u003e#780\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.88\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.1.52\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/1f47adda040da10273a715a120c0e43560861589\"\u003e\u003ccode\u003e1f47add\u003c/code\u003e\u003c/a\u003e docs: update changelog for v0.1.58\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/9cfc38f4b0264087459a5c2aa026bc4afe482a20\"\u003e\u003ccode\u003e9cfc38f\u003c/code\u003e\u003c/a\u003e chore: release v0.1.58\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/25c1342f40b25f470f2f355890b4bce20c63fd01\"\u003e\u003ccode\u003e25c1342\u003c/code\u003e\u003c/a\u003e chore: bump bundled CLI version to 2.1.97\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/51adfc78c14dc22ee232f57b1adae966751ec407\"\u003e\u003ccode\u003e51adfc7\u003c/code\u003e\u003c/a\u003e docs: update changelog for v0.1.57\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/78fc3e0d5db624ce62406e1889f41b317c947d8a\"\u003e\u003ccode\u003e78fc3e0\u003c/code\u003e\u003c/a\u003e chore: release v0.1.57\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/6870ef1d885b3e64aaba6bb6738fcc8c1866ac00\"\u003e\u003ccode\u003e6870ef1\u003c/code\u003e\u003c/a\u003e chore: bump bundled CLI version to 2.1.96\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/3bf8fd5a46af36b44e86ca6af083f7a4e24f86c5\"\u003e\u003ccode\u003e3bf8fd5\u003c/code\u003e\u003c/a\u003e Add exclude_dynamic_sections to SystemPromptPreset for cross-user caching (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/797\"\u003e#797\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/83c1e0ad1e7e8603abcb2fa08894197e0e774dde\"\u003e\u003ccode\u003e83c1e0a\u003c/code\u003e\u003c/a\u003e chore: bump bundled CLI version to 2.1.94\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/6617b9ea425fd544a1a0ac07c0f1589f704a6674\"\u003e\u003ccode\u003e6617b9e\u003c/code\u003e\u003c/a\u003e fix: pass --thinking flag for adaptive/disabled instead of budget tokens (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/796\"\u003e#796\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/841ee8730412bff5127d898661df8af449d2e985\"\u003e\u003ccode\u003e841ee87\u003c/code\u003e\u003c/a\u003e Add 'auto' to PermissionMode type (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/785\"\u003e#785\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/compare/v0.1.48...v0.1.58\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dependency-injector` from 4.48.3 to 4.49.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.49.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.14 support\u003c/li\u003e\n\u003cli\u003eFix Pydantic v2 deprecation warning triggering on settings class import (fixes \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix grammar in Declarative Container documentation by \u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing warn_unresolved parameter to WiringConfiguration in containers.pyi by \u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd keep_cache argument to Container.wire typings by \u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for some type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/943\"\u003eets-labs/python-dependency-inj...\n\n_Description has been truncated_","html_url":"https://github.com/pilotspace/pilot-space/pull/131","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pilotspace%2Fpilot-space/issues/131","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/131/packages"}},{"old_version":"4.48.3","new_version":"4.49.0","update_type":"minor","path":null,"pr_created_at":"2026-04-08T08:18:12.000Z","version_change":"4.48.3 → 4.49.0","issue":{"uuid":"4223111749","node_id":"PR_kwDOPYkt3s7QvRfu","number":532,"state":"closed","title":"build(deps): bump the all-python-deps group across 1 directory with 18 updates","user":"dependabot[bot]","labels":[],"assignees":["scottfrasso"],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-13T08:25:26.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-08T08:18:12.000Z","updated_at":"2026-04-13T08:25:28.000Z","time_to_close":432434,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"all-python-deps","update_count":18,"packages":[{"name":"pydantic-ai","old_version":"1.70.0","new_version":"1.78.0","repository_url":"https://github.com/pydantic/pydantic-ai"},{"name":"logfire","old_version":"4.29.0","new_version":"4.31.0","repository_url":"https://github.com/pydantic/logfire"},{"name":"posthog","old_version":"7.9.12","new_version":"7.10.0","repository_url":"https://github.com/posthog/posthog-python"},{"name":"textual","old_version":"8.1.1","new_version":"8.2.3","repository_url":"https://github.com/Textualize/textual"},{"name":"real-ladybug","old_version":"0.15.1","new_version":"0.15.3","repository_url":"https://github.com/lbugdb/lbug"},{"name":"tree-sitter-rust","old_version":"0.24.0","new_version":"0.24.2","repository_url":"https://github.com/tree-sitter/tree-sitter-rust"},{"name":"openai","old_version":"2.29.0","new_version":"2.30.0","repository_url":"https://github.com/openai/openai-python"},{"name":"anthropic","old_version":"0.85.0","new_version":"0.91.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"genai-prices","old_version":"0.0.55","new_version":"0.0.56","repository_url":"https://github.com/pydantic/genai-prices"},{"name":"dependency-injector","old_version":"4.48.3","new_version":"4.49.0","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"claude-agent-sdk","old_version":"0.1.48","new_version":"0.1.56","repository_url":"https://github.com/anthropics/claude-agent-sdk-python"},{"name":"mypy","old_version":"1.19.1","new_version":"1.20.0","repository_url":"https://github.com/python/mypy"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"ruff","old_version":"0.15.6","new_version":"0.15.9","repository_url":"https://github.com/astral-sh/ruff"},{"name":"types-aiofiles","old_version":"25.1.0.20251011","new_version":"25.1.0.20260408","repository_url":"https://github.com/python/typeshed"},{"name":"types-psutil","old_version":"7.2.2.20260130","new_version":"7.2.2.20260408","repository_url":"https://github.com/python/typeshed"},{"name":"types-pyyaml","old_version":"6.0.12.20250915","new_version":"6.0.12.20260408","repository_url":"https://github.com/python/typeshed"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-python-deps group with 18 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic-ai](https://github.com/pydantic/pydantic-ai) | `1.70.0` | `1.78.0` |\n| [logfire](https://github.com/pydantic/logfire) | `4.29.0` | `4.31.0` |\n| [posthog](https://github.com/posthog/posthog-python) | `7.9.12` | `7.10.0` |\n| [textual](https://github.com/Textualize/textual) | `8.1.1` | `8.2.3` |\n| [real-ladybug](https://github.com/lbugdb/lbug) | `0.15.1` | `0.15.3` |\n| [tree-sitter-rust](https://github.com/tree-sitter/tree-sitter-rust) | `0.24.0` | `0.24.2` |\n| [openai](https://github.com/openai/openai-python) | `2.29.0` | `2.30.0` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.85.0` | `0.91.0` |\n| [genai-prices](https://github.com/pydantic/genai-prices) | `0.0.55` | `0.0.56` |\n| [dependency-injector](https://github.com/ets-labs/python-dependency-injector) | `4.48.3` | `4.49.0` |\n| [claude-agent-sdk](https://github.com/anthropics/claude-agent-sdk-python) | `0.1.48` | `0.1.56` |\n| [mypy](https://github.com/python/mypy) | `1.19.1` | `1.20.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.6` | `0.15.9` |\n| [types-aiofiles](https://github.com/python/typeshed) | `25.1.0.20251011` | `25.1.0.20260408` |\n| [types-psutil](https://github.com/python/typeshed) | `7.2.2.20260130` | `7.2.2.20260408` |\n| [types-pyyaml](https://github.com/python/typeshed) | `6.0.12.20250915` | `6.0.12.20260408` |\n\n\nUpdates `pydantic-ai` from 1.70.0 to 1.78.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-ai/releases\"\u003epydantic-ai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.78.0 (2026-04-07)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd cached token span attributes per OTel spec by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/5013\"\u003epydantic/pydantic-ai#5013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add \u003ccode\u003ereturn_schema\u003c/code\u003e and \u003ccode\u003efunction_signature\u003c/code\u003e to \u003ccode\u003eToolDefinition\u003c/code\u003e by \u003ca href=\"https://github.com/adtyavrdhn\"\u003e\u003ccode\u003e@​adtyavrdhn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4964\"\u003epydantic/pydantic-ai#4964\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add \u003ccode\u003eSetToolMetadata\u003c/code\u003e capability by \u003ca href=\"https://github.com/DouweM\"\u003e\u003ccode\u003e@​DouweM\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4964\"\u003epydantic/pydantic-ai#4964\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Ricardo-M-L\"\u003e\u003ccode\u003e@​Ricardo-M-L\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4968\"\u003epydantic/pydantic-ai#4968\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chernistry\"\u003e\u003ccode\u003e@​chernistry\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/5005\"\u003epydantic/pydantic-ai#5005\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vladdoster\"\u003e\u003ccode\u003e@​vladdoster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4620\"\u003epydantic/pydantic-ai#4620\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/edmcman\"\u003e\u003ccode\u003e@​edmcman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4584\"\u003epydantic/pydantic-ai#4584\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/drPod\"\u003e\u003ccode\u003e@​drPod\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4809\"\u003epydantic/pydantic-ai#4809\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/1Ninad\"\u003e\u003ccode\u003e@​1Ninad\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4945\"\u003epydantic/pydantic-ai#4945\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-ai/compare/v1.77.0...v1.78.0\"\u003ehttps://github.com/pydantic/pydantic-ai/compare/v1.77.0...v1.78.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.77.0 (2026-04-02)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add local \u003ccode\u003eWebFetch\u003c/code\u003e tool and have \u003ccode\u003eWebFetch\u003c/code\u003e capability use it when provider lacks builtin support by \u003ca href=\"https://github.com/DEENUU1\"\u003e\u003ccode\u003e@​DEENUU1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4906\"\u003epydantic/pydantic-ai#4906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003edefer_loading\u003c/code\u003e to tools and toolsets to enable tool search by \u003ca href=\"https://github.com/dsfaccini\"\u003e\u003ccode\u003e@​dsfaccini\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4090\"\u003epydantic/pydantic-ai#4090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eThreadExecutor\u003c/code\u003e capability and \u003ccode\u003eAgent.using_thread_executor()\u003c/code\u003e by \u003ca href=\"https://github.com/DouweM\"\u003e\u003ccode\u003e@​DouweM\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4942\"\u003epydantic/pydantic-ai#4942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: smart instruction caching — automatically insert Anthropic/Bedrock cache boundary at static/dynamic split by \u003ca href=\"https://github.com/Alex-Resch\"\u003e\u003ccode\u003e@​Alex-Resch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4865\"\u003epydantic/pydantic-ai#4865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eserver_message_id\u003c/code\u003e in \u003ccode\u003eVercelAIEventStream\u003c/code\u003e by \u003ca href=\"https://github.com/dsfaccini\"\u003e\u003ccode\u003e@​dsfaccini\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4579\"\u003epydantic/pydantic-ai#4579\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix: run output validators for image outputs by \u003ca href=\"https://github.com/dsfaccini\"\u003e\u003ccode\u003e@​dsfaccini\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4938\"\u003epydantic/pydantic-ai#4938\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap streaming SDK errors in \u003ccode\u003eModelHTTPError\u003c/code\u003e/\u003ccode\u003eModelAPIError\u003c/code\u003e by \u003ca href=\"https://github.com/dsfaccini\"\u003e\u003ccode\u003e@​dsfaccini\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4889\"\u003epydantic/pydantic-ai#4889\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Alex-Resch\"\u003e\u003ccode\u003e@​Alex-Resch\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4865\"\u003epydantic/pydantic-ai#4865\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-ai/compare/v1.76.0...v1.77.0\"\u003ehttps://github.com/pydantic/pydantic-ai/compare/v1.76.0...v1.77.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.76.0 (2026-04-01)\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHave \u003ccode\u003eImageGeneration\u003c/code\u003e capability auto-fallback to subagent with imagegen model if main model lacks imagegen by \u003ca href=\"https://github.com/DouweM\"\u003e\u003ccode\u003e@​DouweM\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4910\"\u003epydantic/pydantic-ai#4910\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eagent\u003c/code\u003e to \u003ccode\u003eRunContext\u003c/code\u003e by \u003ca href=\"https://github.com/DouweM\"\u003e\u003ccode\u003e@​DouweM\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4922\"\u003epydantic/pydantic-ai#4922\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e🐛 Bug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eInclude \u003ccode\u003egen_ai.operation.name\u003c/code\u003e span attribute in agent runs by \u003ca href=\"https://github.com/adriangb\"\u003e\u003ccode\u003e@​adriangb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4936\"\u003epydantic/pydantic-ai#4936\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e📦 Dependencies\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate Mistral integration to mistralai SDK v2 by \u003ca href=\"https://github.com/doramirdor\"\u003e\u003ccode\u003e@​doramirdor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4736\"\u003epydantic/pydantic-ai#4736\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/doramirdor\"\u003e\u003ccode\u003e@​doramirdor\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4736\"\u003epydantic/pydantic-ai#4736\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/9c51f802aec045485871ab483484183164eae450\"\u003e\u003ccode\u003e9c51f80\u003c/code\u003e\u003c/a\u003e feat: add \u003ccode\u003ereturn_schema\u003c/code\u003e and \u003ccode\u003efunction_signature\u003c/code\u003e to \u003ccode\u003eToolDefinition\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/issues/4964\"\u003e#4964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/0c0cb3bd7820cc1853e7acdeaeff41427685c6bf\"\u003e\u003ccode\u003e0c0cb3b\u003c/code\u003e\u003c/a\u003e Add cached token span attributes per OTel spec (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/issues/5013\"\u003e#5013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/75f7fb84cefbd046859dde5098c3677ff7b6660b\"\u003e\u003ccode\u003e75f7fb8\u003c/code\u003e\u003c/a\u003e groq: migrate usage extraction to \u003ccode\u003eRequestUsage.extract()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/issues/4945\"\u003e#4945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/34884f5659b2c6379cfa38d5781006fc98927bb7\"\u003e\u003ccode\u003e34884f5\u003c/code\u003e\u003c/a\u003e fix: correct grammar and duplicate words across codebase (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/issues/4970\"\u003e#4970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/cbdbb8fed29bf53d63a2fd5ba5bb39e34ab41bc8\"\u003e\u003ccode\u003ecbdbb8f\u003c/code\u003e\u003c/a\u003e Add Respan to alternative observability backends (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/issues/4809\"\u003e#4809\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/fc8413d17875da85001e44a152279fc56d97bc13\"\u003e\u003ccode\u003efc8413d\u003c/code\u003e\u003c/a\u003e Improve openai model docs (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/issues/4584\"\u003e#4584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/9ea99d158465518323caea95379d814d00b07c9b\"\u003e\u003ccode\u003e9ea99d1\u003c/code\u003e\u003c/a\u003e docs: correct inconsistent spelling of \u003ccode\u003ereuse\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/issues/4620\"\u003e#4620\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/74dfd747b4da7808acc234ca2ffbe4eb033d3bf2\"\u003e\u003ccode\u003e74dfd74\u003c/code\u003e\u003c/a\u003e fix: correct typos in BaseStatePersistence docstrings (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/issues/5005\"\u003e#5005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/0cf69c078169b4211a2b5a2841c2450a2f611c64\"\u003e\u003ccode\u003e0cf69c0\u003c/code\u003e\u003c/a\u003e fix: remove duplicate word in toolsets documentation (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/issues/4968\"\u003e#4968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/5349a9a0ea0a62ddc64e875cb2c6f685495ff1a3\"\u003e\u003ccode\u003e5349a9a\u003c/code\u003e\u003c/a\u003e chore: bump vulnerable dependencies (Dependabot alerts) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/issues/4978\"\u003e#4978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-ai/compare/v1.70.0...v1.78.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `logfire` from 4.29.0 to 4.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/logfire/releases\"\u003elogfire's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.31.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elogfire.instrument_claude_agent_sdk()\u003c/code\u003e by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1799\"\u003e#1799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add \u003ccode\u003elogfire.url_from_eval(report)\u003c/code\u003e method by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1694\"\u003e#1694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: include cached tokens in \u003ccode\u003egen_ai.usage.input_tokens\u003c/code\u003e for Anthropic by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1812\"\u003e#1812\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle bare MCP request types for fastmcp 3.x compatibility by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1813\"\u003e#1813\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev4.30.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elogfire auth logout\u003c/code\u003e command by \u003ca href=\"https://github.com/ai-man-codes\"\u003e\u003ccode\u003e@​ai-man-codes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1781\"\u003e#1781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove Rich link styling from project URL output by \u003ca href=\"https://github.com/ameenalkhaldi\"\u003e\u003ccode\u003e@​ameenalkhaldi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1784\"\u003e#1784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix push_config() to push labels and versions by \u003ca href=\"https://github.com/dmontagu\"\u003e\u003ccode\u003e@​dmontagu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1785\"\u003e#1785\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMerge \u003ccode\u003eexport_dataset\u003c/code\u003e into \u003ccode\u003eget_dataset\u003c/code\u003e with \u003ccode\u003einclude_cases\u003c/code\u003e parameter by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1792\"\u003e#1792\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/logfire/blob/main/CHANGELOG.md\"\u003elogfire's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v4.31.0] (2026-03-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elogfire.instrument_claude_agent_sdk()\u003c/code\u003e by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1799\"\u003e#1799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add \u003ccode\u003elogfire.url_from_eval(report)\u003c/code\u003e method by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1694\"\u003e#1694\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: include cached tokens in \u003ccode\u003egen_ai.usage.input_tokens\u003c/code\u003e for Anthropic by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1812\"\u003e#1812\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle bare MCP request types for fastmcp 3.x compatibility by \u003ca href=\"https://github.com/alexmojaki\"\u003e\u003ccode\u003e@​alexmojaki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1813\"\u003e#1813\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[v4.30.0] (2026-03-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elogfire auth logout\u003c/code\u003e command by \u003ca href=\"https://github.com/ai-man-codes\"\u003e\u003ccode\u003e@​ai-man-codes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1781\"\u003e#1781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove Rich link styling from project URL output by \u003ca href=\"https://github.com/ameenalkhaldi\"\u003e\u003ccode\u003e@​ameenalkhaldi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1784\"\u003e#1784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix push_config() to push labels and versions by \u003ca href=\"https://github.com/dmontagu\"\u003e\u003ccode\u003e@​dmontagu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1785\"\u003e#1785\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMerge \u003ccode\u003eexport_dataset\u003c/code\u003e into \u003ccode\u003eget_dataset\u003c/code\u003e with \u003ccode\u003einclude_cases\u003c/code\u003e parameter by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1792\"\u003e#1792\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/7750fed650ea27827a920295f43bfcc217f3982e\"\u003e\u003ccode\u003e7750fed\u003c/code\u003e\u003c/a\u003e Release v4.31.0 (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1814\"\u003e#1814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/5b377818903e56d548172d841ab2813ab84f5575\"\u003e\u003ccode\u003e5b37781\u003c/code\u003e\u003c/a\u003e fix: handle bare MCP request types for fastmcp 3.x compatibility (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1813\"\u003e#1813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/6de926bba6cc9ac302679c6ecb4077d7766a58e1\"\u003e\u003ccode\u003e6de926b\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003elogfire.instrument_claude_agent_sdk()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1799\"\u003e#1799\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/9272a0647ff3ce19bb233a9fd12a99a3f41564b8\"\u003e\u003ccode\u003e9272a06\u003c/code\u003e\u003c/a\u003e fix: include cached tokens in gen_ai.usage.input_tokens for Anthropic (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1812\"\u003e#1812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/7ee31f6b764442c3a8a48d6306737e1e5fa51179\"\u003e\u003ccode\u003e7ee31f6\u003c/code\u003e\u003c/a\u003e feat: add \u003ccode\u003elogfire.url_from_eval(report)\u003c/code\u003e method (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1694\"\u003e#1694\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/c39f1a05934b830ddf79ec757148f7c69abaef51\"\u003e\u003ccode\u003ec39f1a0\u003c/code\u003e\u003c/a\u003e Add exclude-newer = \u0026quot;1 week\u0026quot; to uv to reduce security risks (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1805\"\u003e#1805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/c922c635b21a00932326df7f705270cd6a45d561\"\u003e\u003ccode\u003ec922c63\u003c/code\u003e\u003c/a\u003e docs: update API keys page with all available public APIs (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1803\"\u003e#1803\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/be5986723b9e7a5610009c3509d0e390cb6b45ac\"\u003e\u003ccode\u003ebe59867\u003c/code\u003e\u003c/a\u003e Move coverage out of make test into make testcov (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1802\"\u003e#1802\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/b8d18faf520c24e5026238085de06945ec5abb67\"\u003e\u003ccode\u003eb8d18fa\u003c/code\u003e\u003c/a\u003e Add documentation about Prompt Playground (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1800\"\u003e#1800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/4a97c2f8e056de5f10826da437cbccf2b386c9dc\"\u003e\u003ccode\u003e4a97c2f\u003c/code\u003e\u003c/a\u003e docs: update datasets docs for unified evals UI (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1787\"\u003e#1787\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/logfire/compare/v4.29.0...v4.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `posthog` from 7.9.12 to 7.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/posthog/posthog-python/releases\"\u003eposthog's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: add AI provider integration examples by \u003ca href=\"https://github.com/richardsolomou\"\u003e\u003ccode\u003e@​richardsolomou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/466\"\u003ePostHog/posthog-python#466\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: update localhost port in examples from 8000 to 8010 by \u003ca href=\"https://github.com/parinporecha\"\u003e\u003ccode\u003e@​parinporecha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/453\"\u003ePostHog/posthog-python#453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: pin litellm to 1.81.13 in example by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/469\"\u003ePostHog/posthog-python#469\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add minimum fastapi exception capture repro case by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/470\"\u003ePostHog/posthog-python#470\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: enforce 7-day minimum release age via uv exclude-newer by \u003ca href=\"https://github.com/marandaneto\"\u003e\u003ccode\u003e@​marandaneto\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/476\"\u003ePostHog/posthog-python#476\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(examples): migrate AI examples from pip to uv with locked versions by \u003ca href=\"https://github.com/richardsolomou\"\u003e\u003ccode\u003e@​richardsolomou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/471\"\u003ePostHog/posthog-python#471\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(ai): add Claude Agent SDK integration for LLM analytics by \u003ca href=\"https://github.com/andrewm4894\"\u003e\u003ccode\u003e@​andrewm4894\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/477\"\u003ePostHog/posthog-python#477\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: add AI provider examples for all LLM analytics integrations by \u003ca href=\"https://github.com/richardsolomou\"\u003e\u003ccode\u003e@​richardsolomou\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/478\"\u003ePostHog/posthog-python#478\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: propagate missing params in module-level wrapper functions by \u003ca href=\"https://github.com/dustinbyrne\"\u003e\u003ccode\u003e@​dustinbyrne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/479\"\u003ePostHog/posthog-python#479\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/parinporecha\"\u003e\u003ccode\u003e@​parinporecha\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PostHog/posthog-python/pull/453\"\u003ePostHog/posthog-python#453\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PostHog/posthog-python/compare/v7.9.12...v7.10.0\"\u003ehttps://github.com/PostHog/posthog-python/compare/v7.9.12...v7.10.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PostHog/posthog-python/blob/master/CHANGELOG.md\"\u003eposthog's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.10.0 — 2026-04-07\u003c/h2\u003e\n\u003ch3\u003eMinor changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/d234b53ff9578648d3bdb70d54cde98cdb7d9c87\"\u003ed234b53\u003c/a\u003e feat(ai): add Claude Agent SDK integration for LLM analytics — Thanks \u003ca href=\"https://github.com/andrewm4894\"\u003e\u003ccode\u003e@​andrewm4894\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePatch changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/posthog/posthog-python/commit/754c45fa024be3fdb1f1d1f312a94070786652b7\"\u003e754c45f\u003c/a\u003e fix: propagate missing params in module-level wrapper functions (\u003ccode\u003edistinct_id\u003c/code\u003e for \u003ccode\u003egroup_identify\u003c/code\u003e, \u003ccode\u003eflag_keys_to_evaluate\u003c/code\u003e for \u003ccode\u003eget_all_flags\u003c/code\u003e/\u003ccode\u003eget_all_flags_and_payloads\u003c/code\u003e) — Thanks \u003ca href=\"https://github.com/dustinbyrne\"\u003e\u003ccode\u003e@​dustinbyrne\u003c/code\u003e\u003c/a\u003e!\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/95df295abf93c74c5950b28c1e58fd433191cd26\"\u003e\u003ccode\u003e95df295\u003c/code\u003e\u003c/a\u003e chore: Release v7.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/754c45fa024be3fdb1f1d1f312a94070786652b7\"\u003e\u003ccode\u003e754c45f\u003c/code\u003e\u003c/a\u003e fix: propagate missing params in module-level wrapper functions (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/479\"\u003e#479\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/7223c52550e80c4172da4132620f2adc55c87819\"\u003e\u003ccode\u003e7223c52\u003c/code\u003e\u003c/a\u003e docs: add AI provider examples for all LLM analytics integrations (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/478\"\u003e#478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/d234b53ff9578648d3bdb70d54cde98cdb7d9c87\"\u003e\u003ccode\u003ed234b53\u003c/code\u003e\u003c/a\u003e feat(ai): add Claude Agent SDK integration for LLM analytics (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/477\"\u003e#477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/0fdbc2e97ab44cf30c9b0f55cbbfdaf50572c58e\"\u003e\u003ccode\u003e0fdbc2e\u003c/code\u003e\u003c/a\u003e chore(examples): migrate AI examples from pip to uv with locked versions (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/471\"\u003e#471\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/795ee410682d3c28ffad759c95ccdbc5dcd9fd39\"\u003e\u003ccode\u003e795ee41\u003c/code\u003e\u003c/a\u003e chore: enforce 7-day minimum release age via uv exclude-newer (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/476\"\u003e#476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/fc4e85a9905914458b83e4488f7b5544e43f7243\"\u003e\u003ccode\u003efc4e85a\u003c/code\u003e\u003c/a\u003e feat: add minimum fastapi exception capture repro case (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/470\"\u003e#470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/b4f15a5e702d4d8436fc24f311d8b53a39c6e8b6\"\u003e\u003ccode\u003eb4f15a5\u003c/code\u003e\u003c/a\u003e chore: pin litellm to 1.81.13 in example (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/469\"\u003e#469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/dd8ee652d5c6520b1a7bd9b5392ddb2a4abb6359\"\u003e\u003ccode\u003edd8ee65\u003c/code\u003e\u003c/a\u003e fix: update localhost port in examples from 8000 to 8010 (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/453\"\u003e#453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PostHog/posthog-python/commit/2cac15aa68c34c1fc8a6e436d76bd7c4f7ecca47\"\u003e\u003ccode\u003e2cac15a\u003c/code\u003e\u003c/a\u003e docs: add AI provider integration examples (\u003ca href=\"https://redirect.github.com/posthog/posthog-python/issues/466\"\u003e#466\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/posthog/posthog-python/compare/v7.9.12...v7.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `textual` from 8.1.1 to 8.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/textual/releases\"\u003etextual's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eThe snappier resize Release\u003c/h2\u003e\n\u003ch2\u003e[8.2.3] - 2026-04-05\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce lag when resizing window, by moving resize from idle to a timer \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6471\"\u003eTextualize/textual#6471\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe Faster Resize Release\u003c/h2\u003e\n\u003cp\u003eFixed an issue where styles were being unneccesarily updated when resizing. Textual apps will now adapt to changes in the terminal size much more quickly.\u003c/p\u003e\n\u003ch2\u003e[8.2.2] - 2026-04-03\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Pointless style updates when resizing \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6464\"\u003eTextualize/textual#6464\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe Hot Select Release\u003c/h2\u003e\n\u003cp\u003eFixes a crash when a selected widget is removed while selecting\u003c/p\u003e\n\u003ch2\u003e[8.2.1] - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash when a widget disapears between selections \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6455\"\u003eTextualize/textual#6455\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eThe Select Release\u003c/h2\u003e\n\u003cp\u003eThis release enhances text selection, with auto-scrolling, and the ability to select across container widgets.\u003c/p\u003e\n\u003cp\u003eThis work was sponsored by Mistral AI.\u003c/p\u003e\n\u003ch2\u003e[8.2.0] - 2026-03-27\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAuto-scrolling on select \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSelecting over containers \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eApp.ENABLE_SELECT_AUTO_SCROLL\u003c/code\u003e, \u003ccode\u003eApp.SELECT_AUTO_SCROLL_LINES\u003c/code\u003e, \u003ccode\u003eApp.SELECT_AUTO_SCROLL_SPEED\u003c/code\u003e to tweak auto scrolling behavior \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/textual/blob/main/CHANGELOG.md\"\u003etextual's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[8.2.3] - 2026-04-05\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce lag when resizing window, by moving resize from idle to a timer \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6471\"\u003eTextualize/textual#6471\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.2.2] - 2026-04-03\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Pointless style updates when resizing \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6464\"\u003eTextualize/textual#6464\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.2.1] - 2026-03-29\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix crash when a widget disapears between selections \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6455\"\u003eTextualize/textual#6455\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[8.2.0] - 2026-03-27\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAuto-scrolling on select \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSelecting over containers \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eApp.ENABLE_SELECT_AUTO_SCROLL\u003c/code\u003e, \u003ccode\u003eApp.SELECT_AUTO_SCROLL_LINES\u003c/code\u003e, \u003ccode\u003eApp.SELECT_AUTO_SCROLL_SPEED\u003c/code\u003e to tweak auto scrolling behavior \u003ca href=\"https://redirect.github.com/Textualize/textual/pull/6440\"\u003eTextualize/textual#6440\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/634ca6e786885ffebe211fc73e0e8a04e030f3c3\"\u003e\u003ccode\u003e634ca6e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6473\"\u003e#6473\u003c/a\u003e from Textualize/bump823\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/ccf1978c1a715ac7d33149dcfc344765dc250037\"\u003e\u003ccode\u003eccf1978\u003c/code\u003e\u003c/a\u003e bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/5ddfbdc6bf7966b99644f2da0251c94c83a50528\"\u003e\u003ccode\u003e5ddfbdc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6462\"\u003e#6462\u003c/a\u003e from IEBqp/guide-patch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/23bf10e77bd18fa91ed2c42e3a0693b0702e097d\"\u003e\u003ccode\u003e23bf10e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6470\"\u003e#6470\u003c/a\u003e from Textualize/defensive-selection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/32f1d23330efd7a47891a5ce90edd7677664fbc1\"\u003e\u003ccode\u003e32f1d23\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/textual/issues/6471\"\u003e#6471\u003c/a\u003e from Textualize/resize-lag\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/2bbfbb7741470e8cf95c37476047b89787afaec5\"\u003e\u003ccode\u003e2bbfbb7\u003c/code\u003e\u003c/a\u003e force initial resize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/4b6579038979a90d1f4067d8e396f0af13e80f75\"\u003e\u003ccode\u003e4b65790\u003c/code\u003e\u003c/a\u003e ignore no size changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/63fe6f0646e0f1401b990fb64f292d9646d01014\"\u003e\u003ccode\u003e63fe6f0\u003c/code\u003e\u003c/a\u003e check resize timer on idle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/ec5b43ae1cc2c49361f0d791a53dd047bce08369\"\u003e\u003ccode\u003eec5b43a\u003c/code\u003e\u003c/a\u003e also resize on idle\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/textual/commit/12a52d9e24f1d47eb680e814527fac6ee004e573\"\u003e\u003ccode\u003e12a52d9\u003c/code\u003e\u003c/a\u003e check screen error\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Textualize/textual/compare/v8.1.1...v8.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `real-ladybug` from 0.15.1 to 0.15.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/lbugdb/lbug/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tree-sitter-rust` from 0.24.0 to 0.24.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/releases\"\u003etree-sitter-rust's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.24.2\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNOTE:\u003c/strong\u003e Download \u003ccode\u003etree-sitter-rust.tar.gz\u003c/code\u003e for the \u003cem\u003ecomplete\u003c/em\u003e source code.\u003c/p\u003e\n\u003ch2\u003ev0.24.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNOTE:\u003c/strong\u003e Download \u003ccode\u003etree-sitter-rust.tar.gz\u003c/code\u003e for the \u003cem\u003ecomplete\u003c/em\u003e source code.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/77a3747266f4d621d0757825e6b11edcbf991ca5\"\u003e\u003ccode\u003e77a3747\u003c/code\u003e\u003c/a\u003e 0.24.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/c9f157902a6b487f0c358dc383d2d694b98fd814\"\u003e\u003ccode\u003ec9f1579\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/v0.24.x'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/b3e615de069beb04ff44f65ac52f7f03cff04438\"\u003e\u003ccode\u003eb3e615d\u003c/code\u003e\u003c/a\u003e Fix bad error recovery when parsing repeated string literals (\u003ca href=\"https://redirect.github.com/tree-sitter/tree-sitter-rust/issues/307\"\u003e#307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/4b8106750a2865e4548459d18c797c9f468c440e\"\u003e\u003ccode\u003e4b81067\u003c/code\u003e\u003c/a\u003e Disable regeneration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/6651c80dc5f033f9666365de50260d02cea05412\"\u003e\u003ccode\u003e6651c80\u003c/code\u003e\u003c/a\u003e Regenerate parser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/96e3121c41bc5f2b659f21dd5a43894c4028ddf1\"\u003e\u003ccode\u003e96e3121\u003c/code\u003e\u003c/a\u003e Remove attestations from GH release job\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/8a1ccae7aaccdc11b04dbd803453e3e9cfd9159b\"\u003e\u003ccode\u003e8a1ccae\u003c/code\u003e\u003c/a\u003e 0.24.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/ab43fdbb1640bdece8fab9927b1aa6774d942189\"\u003e\u003ccode\u003eab43fdb\u003c/code\u003e\u003c/a\u003e Parse string literals even in with unexpected prefixes (\u003ca href=\"https://redirect.github.com/tree-sitter/tree-sitter-rust/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/261b20226c04ef601adbdf185a800512a5f66291\"\u003e\u003ccode\u003e261b202\u003c/code\u003e\u003c/a\u003e Raw reference/identifier conflict (\u003ca href=\"https://redirect.github.com/tree-sitter/tree-sitter-rust/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/946595d164e77b705fa28385654f9420f59262ef\"\u003e\u003ccode\u003e946595d\u003c/code\u003e\u003c/a\u003e Include LICENSE (\u003ca href=\"https://redirect.github.com/tree-sitter/tree-sitter-rust/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/compare/v0.24.0...v0.24.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.29.0 to 2.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.30.0\u003c/h2\u003e\n\u003ch2\u003e2.30.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.29.0...v2.30.0\"\u003ev2.29.0...v2.30.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add keys field to Click/DoubleClick/Drag/Move/Scroll computer actions (\u003ca href=\"https://github.com/openai/openai-python/commit/ee1bbeddbb38dab817557412dc106354409bb950\"\u003eee1bbed\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e align SDK response types with expanded item schemas (\u003ca href=\"https://github.com/openai/openai-python/commit/f3f258a9d4d19db3fb0c6c35e25ad3cedbe71254\"\u003ef3f258a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esanitize endpoint path params (\u003ca href=\"https://github.com/openai/openai-python/commit/89f66988fde790c0c83ff8b876d1e1b10d616367\"\u003e89f6698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e make type required in ResponseInputMessageItem (\u003ca href=\"https://github.com/openai/openai-python/commit/cfdb1676ea0550840330a58f1a31a40a41a0a53f\"\u003ecfdb167\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e skip lint on metadata-only changes (\u003ca href=\"https://github.com/openai/openai-python/commit/faa93e19a1d5c30c7dd672a08dbbdbb3c0374714\"\u003efaa93e1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e update gitignore (\u003ca href=\"https://github.com/openai/openai-python/commit/c468477f1546579618865a726e35a685cffeacd9\"\u003ec468477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.4 (\u003ca href=\"https://github.com/openai/openai-python/commit/f350af86c13ade0237778010d264c55fda443354\"\u003ef350af8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.5 (\u003ca href=\"https://github.com/openai/openai-python/commit/5c0340128fc1a416e2dfdc6ab4b05f1e954e8482\"\u003e5c03401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.6 (\u003ca href=\"https://github.com/openai/openai-python/commit/b6353b8411d31dcc95875d801ce9e90a21e0fd52\"\u003eb6353b8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.7 (\u003ca href=\"https://github.com/openai/openai-python/commit/1d654bea74ac9c3d43302587f98f33cfff502e48\"\u003e1d654be\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e switch from prism to steady (\u003ca href=\"https://github.com/openai/openai-python/commit/4a82035669b739d16a0e85d4ded778d51e061948\"\u003e4a82035\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.30.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.29.0...v2.30.0\"\u003ev2.29.0...v2.30.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add keys field to Click/DoubleClick/Drag/Move/Scroll computer actions (\u003ca href=\"https://github.com/openai/openai-python/commit/ee1bbeddbb38dab817557412dc106354409bb950\"\u003eee1bbed\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e align SDK response types with expanded item schemas (\u003ca href=\"https://github.com/openai/openai-python/commit/f3f258a9d4d19db3fb0c6c35e25ad3cedbe71254\"\u003ef3f258a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esanitize endpoint path params (\u003ca href=\"https://github.com/openai/openai-python/commit/89f66988fde790c0c83ff8b876d1e1b10d616367\"\u003e89f6698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e make type required in ResponseInputMessageItem (\u003ca href=\"https://github.com/openai/openai-python/commit/cfdb1676ea0550840330a58f1a31a40a41a0a53f\"\u003ecfdb167\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e skip lint on metadata-only changes (\u003ca href=\"https://github.com/openai/openai-python/commit/faa93e19a1d5c30c7dd672a08dbbdbb3c0374714\"\u003efaa93e1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e update gitignore (\u003ca href=\"https://github.com/openai/openai-python/commit/c468477f1546579618865a726e35a685cffeacd9\"\u003ec468477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.4 (\u003ca href=\"https://github.com/openai/openai-python/commit/f350af86c13ade0237778010d264c55fda443354\"\u003ef350af8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.5 (\u003ca href=\"https://github.com/openai/openai-python/commit/5c0340128fc1a416e2dfdc6ab4b05f1e954e8482\"\u003e5c03401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.6 (\u003ca href=\"https://github.com/openai/openai-python/commit/b6353b8411d31dcc95875d801ce9e90a21e0fd52\"\u003eb6353b8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.7 (\u003ca href=\"https://github.com/openai/openai-python/commit/1d654bea74ac9c3d43302587f98f33cfff502e48\"\u003e1d654be\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e switch from prism to steady (\u003ca href=\"https://github.com/openai/openai-python/commit/4a82035669b739d16a0e85d4ded778d51e061948\"\u003e4a82035\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/5ae2cc10e4140d36aa236fa7c0bc5ce5ff190a01\"\u003e\u003ccode\u003e5ae2cc1\u003c/code\u003e\u003c/a\u003e release: 2.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/6e772ae791759b25de83313614e0fb26eba895b7\"\u003e\u003ccode\u003e6e772ae\u003c/code\u003e\u003c/a\u003e fix(api): align SDK response types with expanded item schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/cd72fba37866bfdddd4a84420afe2ff397279582\"\u003e\u003ccode\u003ecd72fba\u003c/code\u003e\u003c/a\u003e feat(api): add keys field to Click/DoubleClick/Drag/Move/Scroll computer actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/4f43fe371037415ace13981a277917366b6fc24e\"\u003e\u003ccode\u003e4f43fe3\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.19.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/23bc02703bbb9497eadd5d56497d5d6954372a62\"\u003e\u003ccode\u003e23bc027\u003c/code\u003e\u003c/a\u003e chore(ci): skip lint on metadata-only changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/e3c59bf1ac8533a1be831a6d166f9f7abeabf8e0\"\u003e\u003ccode\u003ee3c59bf\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.19.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/56ad9ca089394e535d7df52fe48d544e54086ddc\"\u003e\u003ccode\u003e56ad9ca\u003c/code\u003e\u003c/a\u003e fix(types): make type required in ResponseInputMessageItem\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/78c764bdf483a0c48789bfdefe6299830d5abde0\"\u003e\u003ccode\u003e78c764b\u003c/code\u003e\u003c/a\u003e chore(internal): update gitignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/634b74edd4aaa07a74f9ee30241410d61624264f\"\u003e\u003ccode\u003e634b74e\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.19.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/c8c9508899b2119cc69e006403d09cbad7f616e4\"\u003e\u003ccode\u003ec8c9508\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.19.4\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.29.0...v2.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anthropic` from 0.85.0 to 0.91.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/releases\"\u003eanthropic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.91.0\u003c/h2\u003e\n\u003ch2\u003e0.91.0 (2026-04-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.90.0...v0.91.0\"\u003ev0.90.0...v0.91.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e Create Bedrock Mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1616\"\u003e#1616\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fd195a2fa2cd44ebf4513e69f671def88d2b6ec9\"\u003efd195a2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.90.0\u003c/h2\u003e\n\u003ch2\u003e0.90.0 (2026-04-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.89.0...v0.90.0\"\u003ev0.89.0...v0.90.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add support for claude-mythos-preview (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fc7ddd8e0296a578f09c7fa2baf00e50d81cf980\"\u003efc7ddd8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e preserve hardcoded query params when merging with user params (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/32d35e0ae67ab0d076a60d38fa5177b5635e9c0c\"\u003e32d35e0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.89.0\u003c/h2\u003e\n\u003ch2\u003e0.89.0 (2026-04-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.88.0...v0.89.0\"\u003ev0.88.0...v0.89.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evertex:\u003c/strong\u003e add support for US multi-region endpoint (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/4e732dada087146cfeff1f4afdf90513590e248d\"\u003e4e732da\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e preserve hardcoded query params when merging with user params (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/e7f4a3cada266e9719e5c3b9ba09514c3842a638\"\u003ee7f4a3c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e deprecate client-side compaction helpers (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/e60affc656e4165de7cb15f73351175507b0b441\"\u003ee60affc\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.88.0\u003c/h2\u003e\n\u003ch2\u003e0.88.0 (2026-04-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.87.0...v0.88.0\"\u003ev0.87.0...v0.88.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add structured stop_details to message responses (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fd82d6b87ef0db5b2970d8f27ccc6d5981745572\"\u003efd82d6b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/blob/main/CHANGELOG.md\"\u003eanthropic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.91.0 (2026-04-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.90.0...v0.91.0\"\u003ev0.90.0...v0.91.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e Create Bedrock Mantle client (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1616\"\u003e#1616\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fd195a2fa2cd44ebf4513e69f671def88d2b6ec9\"\u003efd195a2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.90.0 (2026-04-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.89.0...v0.90.0\"\u003ev0.89.0...v0.90.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e Add support for claude-mythos-preview (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fc7ddd8e0296a578f09c7fa2baf00e50d81cf980\"\u003efc7ddd8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e preserve hardcoded query params when merging with user params (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/32d35e0ae67ab0d076a60d38fa5177b5635e9c0c\"\u003e32d35e0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.89.0 (2026-04-03)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.88.0...v0.89.0\"\u003ev0.88.0...v0.89.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003evertex:\u003c/strong\u003e add support for US multi-region endpoint (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/4e732dada087146cfeff1f4afdf90513590e248d\"\u003e4e732da\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e preserve hardcoded query params when merging with user params (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/e7f4a3cada266e9719e5c3b9ba09514c3842a638\"\u003ee7f4a3c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e deprecate client-side compaction helpers (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/e60affc656e4165de7cb15f73351175507b0b441\"\u003ee60affc\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.88.0 (2026-04-01)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.87.0...v0.88.0\"\u003ev0.87.0...v0.88.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add structured stop_details to message responses (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fd82d6b87ef0db5b2970d8f27ccc6d5981745572\"\u003efd82d6b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebedrock api key auth (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1623\"\u003e#1623\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/a95a3fc586b8de63e3c2b386cee5e312d96bf5d8\"\u003ea95a3fc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eprepare aws package (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1615\"\u003e#1615\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/6875fab38ac27ab3a09b97088a49925abe011bdc\"\u003e6875fab\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/8a0885d089483a92fb36704de349ae0b87daa809\"\u003e\u003ccode\u003e8a0885d\u003c/code\u003e\u003c/a\u003e release: 0.91.0 (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1345\"\u003e#1345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/40155dac9afd9a8ae5d2bb70e1269a2c2671026e\"\u003e\u003ccode\u003e40155da\u003c/code\u003e\u003c/a\u003e release: 0.90.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c78eef7e4ef4de111c2f6853d5137bb28e6ec881\"\u003e\u003ccode\u003ec78eef7\u003c/code\u003e\u003c/a\u003e feat(api): Add support for claude-mythos-preview\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/ac918636463bb4cea4cb8d104637782db9695b62\"\u003e\u003ccode\u003eac91863\u003c/code\u003e\u003c/a\u003e fix(client): preserve hardcoded query params when merging with user params\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/370e1a0ac9f16ab7a8d9c5f4025e8db79853279c\"\u003e\u003ccode\u003e370e1a0\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b3f7eb29e9c961ff426c654739611bce7dce3b88\"\u003e\u003ccode\u003eb3f7eb2\u003c/code\u003e\u003c/a\u003e release: 0.89.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/d0aa2b81c04d688ce59ed44f3fd00a61458e65cd\"\u003e\u003ccode\u003ed0aa2b8\u003c/code\u003e\u003c/a\u003e feat(vertex): add support for US multi-region endpoint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/66e738de959c8efef3768bb1f789a6d8c35d95b1\"\u003e\u003ccode\u003e66e738d\u003c/code\u003e\u003c/a\u003e fix(client): preserve hardcoded query params when merging with user params\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/cfb47c022080be17bc1e35fa44960ab1867f2525\"\u003e\u003ccode\u003ecfb47c0\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7cc3ac7e1f8623a5406597627fd93ba56077e752\"\u003e\u003ccode\u003e7cc3ac7\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.85.0...v0.91.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `genai-prices` from 0.0.55 to 0.0.56\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/9ebd466b6a0bb57c81c168fa9ed6f6a1e547c22a\"\u003e\u003ccode\u003e9ebd466\u003c/code\u003e\u003c/a\u003e Prep 0.0.56 release (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/318\"\u003e#318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/c5bd290dd46af2deab22af7a0aa709906e7038d1\"\u003e\u003ccode\u003ec5bd290\u003c/code\u003e\u003c/a\u003e Add OpenRouter pricing for claude-sonnet-4.6 (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/296\"\u003e#296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/ea55b972b43eb679e99795c1479ccea4a502ebe0\"\u003e\u003ccode\u003eea55b97\u003c/code\u003e\u003c/a\u003e feat: add Qwen3 Max Thinking to OpenRouter (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/5f2a7bd337696bc2a9ca41147d0a9d7c00e824aa\"\u003e\u003ccode\u003e5f2a7bd\u003c/code\u003e\u003c/a\u003e Add Qwen3 VL 235B A22B (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/a7628264248ca1ce96acb3a2abbe19de47b3efdf\"\u003e\u003ccode\u003ea762826\u003c/code\u003e\u003c/a\u003e Add openrouter qwen/qwen3.5-plus-02-15 price (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/299\"\u003e#299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/8ab5336c8fefeb664d692f2238e1181d0ba0321b\"\u003e\u003ccode\u003e8ab5336\u003c/code\u003e\u003c/a\u003e feat: moonshot ai prices file (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/87f9120fc248dddafbb2c863a29ef5488a5164fc\"\u003e\u003ccode\u003e87f9120\u003c/code\u003e\u003c/a\u003e feat: add Gemini 3.1 Flash Image Preview pricing (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/303\"\u003e#303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/016961828b5ecb1e38932a5675fe9afa2668a135\"\u003e\u003ccode\u003e0169618\u003c/code\u003e\u003c/a\u003e Adding api-flavor for xAI native SDK (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/307\"\u003e#307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/ee468266850d8b6ebed856f9b175e37044437a44\"\u003e\u003ccode\u003eee46826\u003c/code\u003e\u003c/a\u003e feat: add GPT-5.4 mini and nano snapshot aliases (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/9205f145985ca898daa5bcf6148f932a82cf62a1\"\u003e\u003ccode\u003e9205f14\u003c/code\u003e\u003c/a\u003e feat: add pricing for GPT 5.4 mini and nano (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/315\"\u003e#315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/genai-prices/compare/v0.0.55...v0.0.56\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dependency-injector` from 4.48.3 to 4.49.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.49.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.14 support\u003c/li\u003e\n\u003cli\u003eFix Pydantic v2 deprecation warning triggering on settings class import (fixes \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix grammar in Declarative Container documentation by \u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing warn_unresolved parameter to WiringConfiguration in containers.pyi by \u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd keep_cache argument to Container.wire typings by \u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for some type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/943\"\u003eets-labs/python-dependency-injector#943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for remaining type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/953\"\u003eets-labs/python-dependency-injector#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd provided()\u003c!-- raw HTML omitted --\u003e.call *args, **kwargs arguments \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/945\"\u003e#945\u003c/a\u003e by \u003ca href=\"https://github.com/pavalso\"\u003e\u003ccode\u003e@​pavalso\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/946\"\u003eets-labs/python-dependency-injector#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd context local resource by \u003ca href=\"https://github.com/elina-israyelyan\"\u003e\u003ccode\u003e@​elina-israyelyan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/931\"\u003eets-labs/python-dependency-injector#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI/CD to \u003ccode\u003eactions/checkout@v6\u003c/code\u003e, \u003ccode\u003eactions/setup-python@v6\u003c/code\u003e, \u003ccode\u003eactions/download-artifact@v8\u003c/code\u003e, \u003ccode\u003eactions/upload-artifact@v7\u003c/code\u003e and \u003ccode\u003epypa/cibuildwheel@v3.4.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdd dependabot config for GitHub Actions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pavalso\"\u003e\u003ccode\u003e@​pavalso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/946\"\u003eets-labs/python-dependency-injector#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elina-israyelyan\"\u003e\u003ccode\u003e@​elina-israyelyan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/931\"\u003eets-labs/python-dependency-injector#931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5f7aa1c337c77e782e1e927eb4b1e41a60912604\"\u003e\u003ccode\u003e5f7aa1c\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5863d99bd5e9b2d22c15f3815b23973317a453ee\"\u003e\u003ccode\u003e5863d99\u003c/code\u003e\u003c/a\u003e Add .github/dependabot.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/000c670c7e655cc7db423a76c6b877d185f706ce\"\u003e\u003ccode\u003e000c670\u003c/code\u003e\u003c/a\u003e Upgrade GHA actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/931084070a5304a26a925961375a5afcc3c3a38b\"\u003e\u003ccode\u003e9310840\u003c/code\u003e\u003c/a\u003e Fix iscoroutinefunction import for older Pythons\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/05a5e7d8701a1df8cb88ad55d187ba88cd6ffbe8\"\u003e\u003ccode\u003e05a5e7d\u003c/code\u003e\u003c/a\u003e Fix get_annotations import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/58700d9dbd3420a559330666edfb477418997ff9\"\u003e\u003ccode\u003e58700d9\u003c/code\u003e\u003c/a\u003e Use from import statements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/0e25331738716d5bfa5562d42617deb6ad65d23c\"\u003e\u003ccode\u003e0e25331\u003c/code\u003e\u003c/a\u003e Do not build nogil wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1696986aa7698120a7e2aab2355d93e178fc36f9\"\u003e\u003ccode\u003e1696986\u003c/code\u003e\u003c/a\u003e Python 3.14 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/525935137e81355657e44b454c0f7b19b69fdc7b\"\u003e\u003ccode\u003e5259351\u003c/code\u003e\u003c/a\u003e Add context local resource (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/931\"\u003e#931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/76d5932b7340719eac2b737bd444daacc7bb0682\"\u003e\u003ccode\u003e76d5932\u003c/code\u003e\u003c/a\u003e Add provided()\u0026lt;func\u0026gt;.call *args, **kwargs arguments (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/946\"\u003e#946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `claude-agent-sdk` from 0.1.48 to 0.1.56\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/releases\"\u003eclaude-agent-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.1.56\u003c/h2\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.92\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003ePyPI:\u003c/strong\u003e \u003ca href=\"https://pypi.org/project/claude-agent-sdk/0.1.56/\"\u003ehttps://pypi.org/project/claude-agent-sdk/0.1.56/\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install claude-agent-sdk==0.1.56\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.1.55\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eMCP large tool results\u003c/strong\u003e: Forward \u003ccode\u003emaxResultSizeChars\u003c/code\u003e from \u003ccode\u003eToolAnnotations\u003c/code\u003e via \u003ccode\u003e_meta\u003c/code\u003e to bypass Zod annotation stripping in the CLI, fixing silent truncation of large MCP tool results (\u0026gt;50K chars) (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.91\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003ePyPI:\u003c/strong\u003e \u003ca href=\"https://pypi.org/project/claude-agent-sdk/0.1.55/\"\u003ehttps://pypi.org/project/claude-agent-sdk/0.1.55/\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install claude-agent-sdk==0.1.55\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.1.54\u003c/h2\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003ePyPI:\u003c/strong\u003e \u003ca href=\"https://pypi.org/project/claude-agent-sdk/0.1.54/\"\u003ehttps://pypi.org/project/claude-agent-sdk/0.1.54/\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install claude-agent-sdk==0.1.54\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.1.53\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSetting sources flag\u003c/strong\u003e: Fixed \u003ccode\u003e--setting-sources\u003c/code\u003e being passed as an empty string when not provided, which caused the CLI to misparse subsequent flags (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/778\"\u003e#778\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eString prompt deadlock\u003c/strong\u003e: Fixed deadlock when using \u003ccode\u003equery()\u003c/code\u003e with a string prompt and hooks/MCP servers that trigger many tool calls, by spawning \u003ccode\u003ewait_for_result_and_end_input()\u003c/code\u003e as a background task (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/780\"\u003e#780\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/blob/main/CHANGELOG.md\"\u003eclaude-agent-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.1.56\u003c/h2\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.92\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.1.55\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eMCP large tool results\u003c/strong\u003e: Forward \u003ccode\u003emaxResultSizeChars\u003c/code\u003e from \u003ccode\u003eToolAnnotations\u003c/code\u003e via \u003ccode\u003e_meta\u003c/code\u003e to bypass Zod annotation stripping in the CLI, fixing silent truncation of large MCP tool results (\u0026gt;50K chars) (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.91\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.1.53\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSetting sources flag\u003c/strong\u003e: Fixed \u003ccode\u003e--setting-sources\u003c/code\u003e being passed as an empty string when not provided, which caused the CLI to misparse subsequent flags (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/778\"\u003e#778\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eString prompt deadlock\u003c/strong\u003e: Fixed deadlock when using \u003ccode\u003equery()\u003c/code\u003e with a string prompt and hooks/MCP servers that trigger many tool calls, by spawning \u003ccode\u003ewait_for_result_and_end_input()\u003c/code\u003e as a background task (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/780\"\u003e#780\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.88\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.1.52\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eContext usage\u003c/strong\u003e: Added \u003ccode\u003eget_context_usage()\u003c/code\u003e method to \u003ccode\u003eClaudeSDKClient\u003c/code\u003e for querying context window usage by category (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/764\"\u003e#764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAnnotated parameter descriptions\u003c/strong\u003e: The \u003ccode\u003e@tool\u003c/code\u003e decorator and \u003ccode\u003ecreate_sdk_mcp_server\u003c/code\u003e now support \u003ccode\u003etyping.Annotated\u003c/code\u003e for per-parameter descriptions in JSON Schema (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/762\"\u003e#762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eToolPermissionContext fields\u003c/strong\u003e: Exposed \u003ccode\u003etool_use_id\u003c/code\u003e and \u003ccode\u003eagent_id\u003c/code\u003e in \u003ccode\u003eToolPermissionContext\u003c/code\u003e for distinguishing parallel permission requests (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/754\"\u003e#754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSession ID option\u003c/strong\u003e: Added \u003ccode\u003esession_id\u003c/code\u003e option to \u003ccode\u003eClaudeAgentOptions\u003c/code\u003e for specifying custom session IDs (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/750\"\u003e#750\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eString prompt in connect()\u003c/strong\u003e: Fixed \u003ccode\u003econnect(prompt=\u0026quot;...\u0026quot;)\u003c/code\u003e silently dropping the string prompt, causing \u003ccode\u003ereceive_messages()\u003c/code\u003e to hang indefinitely (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/769\"\u003e#769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCancel request handling\u003c/strong\u003e: Implemented \u003ccode\u003econtrol_cancel_request\u003c/code\u003e handling so in-flight hook callbacks are properly cancelled when the CLI abandons them (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/751\"\u003e#751\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.87\u003c/li\u003e\n\u003cli\u003eIncreased CI timeout for example tests and reduced sleep duration in error handling example (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/760\"\u003e#760\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.1.51\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/13f65c81e2bec2a5d1f1e1efdd45aa061c4ec43f\"\u003e\u003ccode\u003e13f65c8\u003c/code\u003e\u003c/a\u003e docs: update changelog for v0.1.56\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/74add900759d114d91fe6f3f29b1fafb92e0755c\"\u003e\u003ccode\u003e74add90\u003c/code\u003e\u003c/a\u003e chore: release v0.1.56\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/b9836154835ab08576fef7d4152969b9221b0634\"\u003e\u003ccode\u003eb983615\u003c/code\u003e\u003c/a\u003e chore: bump bundled CLI version to 2.1.92\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/67718a7c4a46790368ff1202c967b3afdb355970\"\u003e\u003ccode\u003e67718a7\u003c/code\u003e\u003c/a\u003e docs: update changelog for v0.1.55\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/1871278110abc5a5dc94dbe43be99d05d79ad0f5\"\u003e\u003ccode\u003e1871278\u003c/code\u003e\u003c/a\u003e chore: release v0.1.55\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/f36d642348443c2cf4bb97138afe037113f8457c\"\u003e\u003ccode\u003ef36d642\u003c/code\u003e\u003c/a\u003e chore: bump bundled CLI version to 2.1.91\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/e94a74d7f4c7858813130ef9d32d3099a417c0bf\"\u003e\u003ccode\u003ee94a74d\u003c/code\u003e\u003c/a\u003e fix(mcp): forward maxResultSizeChars via _meta to bypass Zod annotation strip...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/574044a1fcbaf89afc821bb742ccd8d31c4d6944\"\u003e\u003ccode\u003e574044a\u003c/code\u003e\u003c/a\u003e chore: release v0.1.54\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/3e737afed93b6bc145795eaaf41710730f7e7b12\"\u003e\u003ccode\u003e3e737af\u003c/code\u003e\u003c/a\u003e chore: bump bundled CLI version to 2.1.90\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/f4f9adcb9bb90bb02a1ad8ad6356e0fe9ea9848c\"\u003e\u003ccode\u003ef4f9adc\u003c/code\u003e\u003c/a\u003e chore: bump bundled CLI version to 2.1.89\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/compare/v0.1.48...v0.1.56\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.19.1 to 1.20.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/...\n\n_Description has been truncated_","html_url":"https://github.com/shotgun-sh/shotgun/pull/532","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/shotgun-sh%2Fshotgun/issues/532","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/532/packages"}},{"old_version":"4.48.3","new_version":"4.49.0","update_type":"minor","path":"/backend","pr_created_at":"2026-03-30T01:18:23.000Z","version_change":"4.48.3 → 4.49.0","issue":{"uuid":"4166347992","node_id":"PR_kwDORMFN3c7Oczoz","number":111,"state":"closed","title":"chore(deps): bump the python-minor-patch group in /backend with 21 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-06T01:17:52.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-30T01:18:23.000Z","updated_at":"2026-04-06T01:17:54.000Z","time_to_close":604769,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-minor-patch","update_count":21,"packages":[{"name":"fastapi","old_version":"0.135.1","new_version":"0.135.2","repository_url":"https://github.com/fastapi/fastapi"},{"name":"redis","old_version":"7.3.0","new_version":"7.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"supabase","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"postgrest","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"storage3","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"anthropic","old_version":"0.85.0","new_version":"0.86.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"openai","old_version":"2.28.0","new_version":"2.30.0","repository_url":"https://github.com/openai/openai-python"},{"name":"claude-agent-sdk","old_version":"0.1.48","new_version":"0.1.52","repository_url":"https://github.com/anthropics/claude-agent-sdk-python"},{"name":"dependency-injector","old_version":"4.48.3","new_version":"4.49.0","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"cryptography","old_version":"46.0.5","new_version":"46.0.6","repository_url":"https://github.com/pyca/cryptography"},{"name":"anyio","old_version":"4.12.1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"fsspec","old_version":"2026.2.0","new_version":"2026.3.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"numpy","old_version":"2.4.3","new_version":"2.4.4","repository_url":"https://github.com/numpy/numpy"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.44.0","repository_url":"https://github.com/pydantic/pydantic-core"},{"name":"pygments","old_version":"2.19.2","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyroaring","old_version":"1.0.3","new_version":"1.0.4","repository_url":"https://github.com/Ezibenroc/PyRoaringBitMap"},{"name":"realtime","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"sse-starlette","old_version":"3.3.2","new_version":"3.3.4","repository_url":"https://github.com/sysid/sse-starlette"},{"name":"supabase-auth","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"supabase-functions","old_version":"2.28.2","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps the python-minor-patch group in /backend with 21 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.135.1` | `0.135.2` |\n| [redis](https://github.com/redis/redis-py) | `7.3.0` | `7.4.0` |\n| [supabase](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [postgrest](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [storage3](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.85.0` | `0.86.0` |\n| [openai](https://github.com/openai/openai-python) | `2.28.0` | `2.30.0` |\n| [claude-agent-sdk](https://github.com/anthropics/claude-agent-sdk-python) | `0.1.48` | `0.1.52` |\n| [dependency-injector](https://github.com/ets-labs/python-dependency-injector) | `4.48.3` | `4.49.0` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.5` | `46.0.6` |\n| [anyio](https://github.com/agronholm/anyio) | `4.12.1` | `4.13.0` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.2.0` | `2026.3.0` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.3` | `2.4.4` |\n| [pydantic-core](https://github.com/pydantic/pydantic-core) | `2.41.5` | `2.44.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.2` | `2.20.0` |\n| [pyroaring](https://github.com/Ezibenroc/PyRoaringBitMap) | `1.0.3` | `1.0.4` |\n| [realtime](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.0` |\n| [sse-starlette](https://github.com/sysid/sse-starlette) | `3.3.2` | `3.3.4` |\n| [supabase-auth](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n| [supabase-functions](https://github.com/supabase/supabase-py) | `2.28.2` | `2.28.3` |\n\nUpdates `fastapi` from 0.135.1 to 0.135.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.135.2\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Increase lower bound to \u003ccode\u003epydantic \u0026gt;=2.9.0.\u003c/code\u003e and fix the test suite. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15139\"\u003e#15139\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add missing last release notes dates. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15202\"\u003e#15202\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update docs for contributors and team members regarding translation PRs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15200\"\u003e#15200\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Fix code blocks in reference docs overflowing table width. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15094\"\u003e#15094\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix duplicated words in docstrings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15116\"\u003e#15116\u003c/a\u003e by \u003ca href=\"https://github.com/AhsanSheraz\"\u003e\u003ccode\u003e@​AhsanSheraz\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add docs for \u003ccode\u003epyproject.toml\u003c/code\u003e with \u003ccode\u003eentrypoint\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15075\"\u003e#15075\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update links in docs to no longer use the classes external-link and internal-link. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15061\"\u003e#15061\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add JS and CSS handling for automatic \u003ccode\u003etarget=_blank\u003c/code\u003e for links in docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15063\"\u003e#15063\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Update styles for internal and external links in new tab. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15058\"\u003e#15058\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝  Add documentation for the FastAPI VS Code extension. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15008\"\u003e#15008\u003c/a\u003e by \u003ca href=\"https://github.com/savannahostrowski\"\u003e\u003ccode\u003e@​savannahostrowski\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix doctrings for \u003ccode\u003emax_digits\u003c/code\u003e and \u003ccode\u003edecimal_places\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14944\"\u003e#14944\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add dates to release notes. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15001\"\u003e#15001\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15177\"\u003e#15177\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15178\"\u003e#15178\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15176\"\u003e#15176\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15175\"\u003e#15175\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15171\"\u003e#15171\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15170\"\u003e#15170\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for tr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15172\"\u003e#15172\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15168\"\u003e#15168\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15167\"\u003e#15167\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for tr (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15169\"\u003e#15169\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for fr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15165\"\u003e#15165\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for fr (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15163\"\u003e#15163\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for uk (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15160\"\u003e#15160\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for uk (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15158\"\u003e#15158\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for pt (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15157\"\u003e#15157\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for pt (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15159\"\u003e#15159\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for es (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15155\"\u003e#15155\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for es (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15154\"\u003e#15154\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15156\"\u003e#15156\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ru (update-and-add). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15152\"\u003e#15152\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15153\"\u003e#15153\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Exclude spam comments from statistics in \u003ccode\u003escripts/people.py\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15088\"\u003e#15088\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump authlib from 1.6.7 to 1.6.9. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15128\"\u003e#15128\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump pyasn1 from 0.6.2 to 0.6.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15143\"\u003e#15143\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ujson from 5.11.0 to 5.12.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15150\"\u003e#15150\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Tweak translation workflow and translation fixer tool. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15166\"\u003e#15166\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/25a3697cedc6e7dfb84e93c8ff965801486f00f4\"\u003e\u003ccode\u003e25a3697\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.135.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ab125daa4034435777853a2c5a6c47451414f9aa\"\u003e\u003ccode\u003eab125da\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/122b6d490f844b6f716855d55a3e11237b7fb61f\"\u003e\u003ccode\u003e122b6d4\u003c/code\u003e\u003c/a\u003e 📝 Add missing last release notes dates (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15202\"\u003e#15202\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/68ac0ab91e9b14c418013790fc0e420a827686b5\"\u003e\u003ccode\u003e68ac0ab\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ea6e287eb398afe6a82c3ef71780e8451813f674\"\u003e\u003ccode\u003eea6e287\u003c/code\u003e\u003c/a\u003e 📝 Update docs for contributors and team members regarding translation PRs (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d0a6f208c5cb5daaa1de5ea5187729e3789d1dce\"\u003e\u003ccode\u003ed0a6f20\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/fd9e192cf4fae399c0d51dd23e2a137052eb6087\"\u003e\u003ccode\u003efd9e192\u003c/code\u003e\u003c/a\u003e 💄 Fix code blocks in reference docs overflowing table width (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15094\"\u003e#15094\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/fce9460f865928eb7d0393d8809bbc472e0c21cd\"\u003e\u003ccode\u003efce9460\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/0227991a01e61bf5cdd93cc00e9e243f52b47a4a\"\u003e\u003ccode\u003e0227991\u003c/code\u003e\u003c/a\u003e 🔨 Exclude spam comments from statistics in \u003ccode\u003escripts/people.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15088\"\u003e#15088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cbd64b09a32681d3b0ea097608bc62eb0d1587e0\"\u003e\u003ccode\u003ecbd64b0\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.135.1...0.135.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 7.3.0 to 7.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError in cluster metrics recording when connection is None or ClusterNode object instance is used to extract the connection info (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3999\"\u003e#3999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords might leak in plain text logs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3998\"\u003e#3998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cp\u003e-Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpose basic Otel classes and functions to be importable through redis.observability to match the examples in the readthedocs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3996\"\u003e#3996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/b72f24ad6a2226d46aed770e18094a86117d2217\"\u003e\u003ccode\u003eb72f24a\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/0a4e0afe36504c3fb6df1e38683ea946febac9d3\"\u003e\u003ccode\u003e0a4e0af\u003c/code\u003e\u003c/a\u003e Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/15492c9156d3ab8dce05360977480510cf24fbf9\"\u003e\u003ccode\u003e15492c9\u003c/code\u003e\u003c/a\u003e Refactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/cd964ac96649df872a051835e9a52e05a5090607\"\u003e\u003ccode\u003ecd964ac\u003c/code\u003e\u003c/a\u003e Expose basic Otel classes and funtions to be importable through redis.observa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/46ab74d02ed9b15176f67edb817de83524f8145a\"\u003e\u003ccode\u003e46ab74d\u003c/code\u003e\u003c/a\u003e Fixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/26482dbaae38abdb1966d9b1c803331e2dab2053\"\u003e\u003ccode\u003e26482db\u003c/code\u003e\u003c/a\u003e Fix AttributeError in cluster metrics recording when connection is None or Cl...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/redis-py/compare/v7.3.0...v7.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `supabase` from 2.28.2 to 2.28.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003esupabase's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.28.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md\"\u003esupabase's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/deac3232f6bdd242f60b46c7a8922e010524ca53\"\u003e\u003ccode\u003edeac323\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.3 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003e\u003ccode\u003ec7f8f13\u003c/code\u003e\u003c/a\u003e fix(postgrest): fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `postgrest` from 2.28.2 to 2.28.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003epostgrest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.28.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md\"\u003epostgrest's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/deac3232f6bdd242f60b46c7a8922e010524ca53\"\u003e\u003ccode\u003edeac323\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.3 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003e\u003ccode\u003ec7f8f13\u003c/code\u003e\u003c/a\u003e fix(postgrest): fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `storage3` from 2.28.2 to 2.28.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003estorage3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.28.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md\"\u003estorage3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/deac3232f6bdd242f60b46c7a8922e010524ca53\"\u003e\u003ccode\u003edeac323\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.3 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003e\u003ccode\u003ec7f8f13\u003c/code\u003e\u003c/a\u003e fix(postgrest): fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anthropic` from 0.85.0 to 0.86.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/releases\"\u003eanthropic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.86.0\u003c/h2\u003e\n\u003ch2\u003e0.86.0 (2026-03-18)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.85.0...v0.86.0\"\u003ev0.85.0...v0.86.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for filesystem memory tools (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1247\"\u003e#1247\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/235d218211ac4b8f1aa37e29bedc998bfb6ce77d\"\u003e235d218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/86dbe4aa58386bfb8d1497debf342e929e9bb5e5\"\u003e86dbe4a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/45d9cc0914200a43743ab11aa311392e9d8c1b4f\"\u003e45d9cc0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAsyncAnthropic._make_status_error missing 529 and 413 cases (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1244\"\u003e#1244\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/05220bc1c1079fe01f5c4babc007ec7a990859d9\"\u003e05220bc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e bump minimum typing-extensions version (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/09ab112289815ba6f19d8fb3da1e715748182799\"\u003e09ab112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epydantic:\u003c/strong\u003e do not pass \u003ccode\u003eby_alias\u003c/code\u003e unless set (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b17480e9d06613aa597dd40d5a47f4f1250ac762\"\u003eb17480e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e tweak CI branches (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3c0308c97804ababfd3f37330e129e68ccfe4bbc\"\u003e3c0308c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/blob/main/CHANGELOG.md\"\u003eanthropic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.86.0 (2026-03-18)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.85.0...v0.86.0\"\u003ev0.85.0...v0.86.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for filesystem memory tools (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1247\"\u003e#1247\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/235d218211ac4b8f1aa37e29bedc998bfb6ce77d\"\u003e235d218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/86dbe4aa58386bfb8d1497debf342e929e9bb5e5\"\u003e86dbe4a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/45d9cc0914200a43743ab11aa311392e9d8c1b4f\"\u003e45d9cc0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAsyncAnthropic._make_status_error missing 529 and 413 cases (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1244\"\u003e#1244\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/05220bc1c1079fe01f5c4babc007ec7a990859d9\"\u003e05220bc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e bump minimum typing-extensions version (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/09ab112289815ba6f19d8fb3da1e715748182799\"\u003e09ab112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epydantic:\u003c/strong\u003e do not pass \u003ccode\u003eby_alias\u003c/code\u003e unless set (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b17480e9d06613aa597dd40d5a47f4f1250ac762\"\u003eb17480e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e tweak CI branches (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3c0308c97804ababfd3f37330e129e68ccfe4bbc\"\u003e3c0308c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/d7c0974ce6ab94ca135b10b2a45308203c0e0c7e\"\u003e\u003ccode\u003ed7c0974\u003c/code\u003e\u003c/a\u003e release: 0.86.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c46a3e4708fc7f79a00cc245c6f2b11189dd84c3\"\u003e\u003ccode\u003ec46a3e4\u003c/code\u003e\u003c/a\u003e feat(api): manual updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/34045e490d9da94274c36f4333545eacb503d59c\"\u003e\u003ccode\u003e34045e4\u003c/code\u003e\u003c/a\u003e feat(api): manual updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/5ccd6b4122c83f5f1ca5bfefe496a6a257a1da21\"\u003e\u003ccode\u003e5ccd6b4\u003c/code\u003e\u003c/a\u003e feat: add support for filesystem memory tools (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1247\"\u003e#1247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/206252fcfa60a7d127e76c36d10bec8e47494fa4\"\u003e\u003ccode\u003e206252f\u003c/code\u003e\u003c/a\u003e chore(internal): tweak CI branches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c5e5f3e7adf8d60b091116198f29f0b453c18d8d\"\u003e\u003ccode\u003ec5e5f3e\u003c/code\u003e\u003c/a\u003e fix(deps): bump minimum typing-extensions version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/8669b920105a717deead3acf5b5085a2e9441b72\"\u003e\u003ccode\u003e8669b92\u003c/code\u003e\u003c/a\u003e fix(pydantic): do not pass \u003ccode\u003eby_alias\u003c/code\u003e unless set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/05220bc1c1079fe01f5c4babc007ec7a990859d9\"\u003e\u003ccode\u003e05220bc\u003c/code\u003e\u003c/a\u003e fix: AsyncAnthropic._make_status_error missing 529 and 413 cases (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1244\"\u003e#1244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.85.0...v0.86.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 2.28.0 to 2.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/releases\"\u003eopenai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.30.0\u003c/h2\u003e\n\u003ch2\u003e2.30.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.29.0...v2.30.0\"\u003ev2.29.0...v2.30.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add keys field to Click/DoubleClick/Drag/Move/Scroll computer actions (\u003ca href=\"https://github.com/openai/openai-python/commit/ee1bbeddbb38dab817557412dc106354409bb950\"\u003eee1bbed\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e align SDK response types with expanded item schemas (\u003ca href=\"https://github.com/openai/openai-python/commit/f3f258a9d4d19db3fb0c6c35e25ad3cedbe71254\"\u003ef3f258a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esanitize endpoint path params (\u003ca href=\"https://github.com/openai/openai-python/commit/89f66988fde790c0c83ff8b876d1e1b10d616367\"\u003e89f6698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e make type required in ResponseInputMessageItem (\u003ca href=\"https://github.com/openai/openai-python/commit/cfdb1676ea0550840330a58f1a31a40a41a0a53f\"\u003ecfdb167\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e skip lint on metadata-only changes (\u003ca href=\"https://github.com/openai/openai-python/commit/faa93e19a1d5c30c7dd672a08dbbdbb3c0374714\"\u003efaa93e1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e update gitignore (\u003ca href=\"https://github.com/openai/openai-python/commit/c468477f1546579618865a726e35a685cffeacd9\"\u003ec468477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.4 (\u003ca href=\"https://github.com/openai/openai-python/commit/f350af86c13ade0237778010d264c55fda443354\"\u003ef350af8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.5 (\u003ca href=\"https://github.com/openai/openai-python/commit/5c0340128fc1a416e2dfdc6ab4b05f1e954e8482\"\u003e5c03401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.6 (\u003ca href=\"https://github.com/openai/openai-python/commit/b6353b8411d31dcc95875d801ce9e90a21e0fd52\"\u003eb6353b8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.7 (\u003ca href=\"https://github.com/openai/openai-python/commit/1d654bea74ac9c3d43302587f98f33cfff502e48\"\u003e1d654be\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e switch from prism to steady (\u003ca href=\"https://github.com/openai/openai-python/commit/4a82035669b739d16a0e85d4ded778d51e061948\"\u003e4a82035\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.29.0\u003c/h2\u003e\n\u003ch2\u003e2.29.0 (2026-03-17)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.28.0...v2.29.0\"\u003ev2.28.0...v2.29.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e 5.4 nano and mini model slugs (\u003ca href=\"https://github.com/openai/openai-python/commit/3b456661f77ca3196aceb5ab3350664a63481114\"\u003e3b45666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add /v1/videos endpoint to batches create method (\u003ca href=\"https://github.com/openai/openai-python/commit/c0e7a161a996854021e9eb69ea2a60ca0d08047f\"\u003ec0e7a16\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add defer_loading field to ToolFunction (\u003ca href=\"https://github.com/openai/openai-python/commit/3167595432bdda2f90721901d30ad316db49323e\"\u003e3167595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add in and nin operators to ComparisonFilter type (\u003ca href=\"https://github.com/openai/openai-python/commit/664f02b051af84e1ca3fa313981ec72fdea269b3\"\u003e664f02b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e bump minimum typing-extensions version (\u003ca href=\"https://github.com/openai/openai-python/commit/a2fb2ca55142c6658a18be7bd1392a01f5a83f35\"\u003ea2fb2ca\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epydantic:\u003c/strong\u003e do not pass \u003ccode\u003eby_alias\u003c/code\u003e unless set (\u003ca href=\"https://github.com/openai/openai-python/commit/8ebe8fbcb011c6a005a715cae50c6400a8596ee0\"\u003e8ebe8fb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/openai/openai-python/blob/main/CHANGELOG.md\"\u003eopenai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.30.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.29.0...v2.30.0\"\u003ev2.29.0...v2.30.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add keys field to Click/DoubleClick/Drag/Move/Scroll computer actions (\u003ca href=\"https://github.com/openai/openai-python/commit/ee1bbeddbb38dab817557412dc106354409bb950\"\u003eee1bbed\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e align SDK response types with expanded item schemas (\u003ca href=\"https://github.com/openai/openai-python/commit/f3f258a9d4d19db3fb0c6c35e25ad3cedbe71254\"\u003ef3f258a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003esanitize endpoint path params (\u003ca href=\"https://github.com/openai/openai-python/commit/89f66988fde790c0c83ff8b876d1e1b10d616367\"\u003e89f6698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etypes:\u003c/strong\u003e make type required in ResponseInputMessageItem (\u003ca href=\"https://github.com/openai/openai-python/commit/cfdb1676ea0550840330a58f1a31a40a41a0a53f\"\u003ecfdb167\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e skip lint on metadata-only changes (\u003ca href=\"https://github.com/openai/openai-python/commit/faa93e19a1d5c30c7dd672a08dbbdbb3c0374714\"\u003efaa93e1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e update gitignore (\u003ca href=\"https://github.com/openai/openai-python/commit/c468477f1546579618865a726e35a685cffeacd9\"\u003ec468477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.4 (\u003ca href=\"https://github.com/openai/openai-python/commit/f350af86c13ade0237778010d264c55fda443354\"\u003ef350af8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.5 (\u003ca href=\"https://github.com/openai/openai-python/commit/5c0340128fc1a416e2dfdc6ab4b05f1e954e8482\"\u003e5c03401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.6 (\u003ca href=\"https://github.com/openai/openai-python/commit/b6353b8411d31dcc95875d801ce9e90a21e0fd52\"\u003eb6353b8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.19.7 (\u003ca href=\"https://github.com/openai/openai-python/commit/1d654bea74ac9c3d43302587f98f33cfff502e48\"\u003e1d654be\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e switch from prism to steady (\u003ca href=\"https://github.com/openai/openai-python/commit/4a82035669b739d16a0e85d4ded778d51e061948\"\u003e4a82035\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.29.0 (2026-03-17)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.28.0...v2.29.0\"\u003ev2.28.0...v2.29.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e 5.4 nano and mini model slugs (\u003ca href=\"https://github.com/openai/openai-python/commit/3b456661f77ca3196aceb5ab3350664a63481114\"\u003e3b45666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add /v1/videos endpoint to batches create method (\u003ca href=\"https://github.com/openai/openai-python/commit/c0e7a161a996854021e9eb69ea2a60ca0d08047f\"\u003ec0e7a16\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add defer_loading field to ToolFunction (\u003ca href=\"https://github.com/openai/openai-python/commit/3167595432bdda2f90721901d30ad316db49323e\"\u003e3167595\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e add in and nin operators to ComparisonFilter type (\u003ca href=\"https://github.com/openai/openai-python/commit/664f02b051af84e1ca3fa313981ec72fdea269b3\"\u003e664f02b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e bump minimum typing-extensions version (\u003ca href=\"https://github.com/openai/openai-python/commit/a2fb2ca55142c6658a18be7bd1392a01f5a83f35\"\u003ea2fb2ca\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epydantic:\u003c/strong\u003e do not pass \u003ccode\u003eby_alias\u003c/code\u003e unless set (\u003ca href=\"https://github.com/openai/openai-python/commit/8ebe8fbcb011c6a005a715cae50c6400a8596ee0\"\u003e8ebe8fb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/5ae2cc10e4140d36aa236fa7c0bc5ce5ff190a01\"\u003e\u003ccode\u003e5ae2cc1\u003c/code\u003e\u003c/a\u003e release: 2.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/6e772ae791759b25de83313614e0fb26eba895b7\"\u003e\u003ccode\u003e6e772ae\u003c/code\u003e\u003c/a\u003e fix(api): align SDK response types with expanded item schemas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/cd72fba37866bfdddd4a84420afe2ff397279582\"\u003e\u003ccode\u003ecd72fba\u003c/code\u003e\u003c/a\u003e feat(api): add keys field to Click/DoubleClick/Drag/Move/Scroll computer actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/4f43fe371037415ace13981a277917366b6fc24e\"\u003e\u003ccode\u003e4f43fe3\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.19.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/23bc02703bbb9497eadd5d56497d5d6954372a62\"\u003e\u003ccode\u003e23bc027\u003c/code\u003e\u003c/a\u003e chore(ci): skip lint on metadata-only changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/e3c59bf1ac8533a1be831a6d166f9f7abeabf8e0\"\u003e\u003ccode\u003ee3c59bf\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.19.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/56ad9ca089394e535d7df52fe48d544e54086ddc\"\u003e\u003ccode\u003e56ad9ca\u003c/code\u003e\u003c/a\u003e fix(types): make type required in ResponseInputMessageItem\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/78c764bdf483a0c48789bfdefe6299830d5abde0\"\u003e\u003ccode\u003e78c764b\u003c/code\u003e\u003c/a\u003e chore(internal): update gitignore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/634b74edd4aaa07a74f9ee30241410d61624264f\"\u003e\u003ccode\u003e634b74e\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.19.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/c8c9508899b2119cc69e006403d09cbad7f616e4\"\u003e\u003ccode\u003ec8c9508\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.19.4\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v2.28.0...v2.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `claude-agent-sdk` from 0.1.48 to 0.1.52\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/releases\"\u003eclaude-agent-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.1.52\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eContext usage\u003c/strong\u003e: Added \u003ccode\u003eget_context_usage()\u003c/code\u003e method to \u003ccode\u003eClaudeSDKClient\u003c/code\u003e for querying context window usage by category (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/764\"\u003e#764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAnnotated parameter descriptions\u003c/strong\u003e: The \u003ccode\u003e@tool\u003c/code\u003e decorator and \u003ccode\u003ecreate_sdk_mcp_server\u003c/code\u003e now support \u003ccode\u003etyping.Annotated\u003c/code\u003e for per-parameter descriptions in JSON Schema (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/762\"\u003e#762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eToolPermissionContext fields\u003c/strong\u003e: Exposed \u003ccode\u003etool_use_id\u003c/code\u003e and \u003ccode\u003eagent_id\u003c/code\u003e in \u003ccode\u003eToolPermissionContext\u003c/code\u003e for distinguishing parallel permission requests (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/754\"\u003e#754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSession ID option\u003c/strong\u003e: Added \u003ccode\u003esession_id\u003c/code\u003e option to \u003ccode\u003eClaudeAgentOptions\u003c/code\u003e for specifying custom session IDs (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/750\"\u003e#750\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eString prompt in connect()\u003c/strong\u003e: Fixed \u003ccode\u003econnect(prompt=\u0026quot;...\u0026quot;)\u003c/code\u003e silently dropping the string prompt, causing \u003ccode\u003ereceive_messages()\u003c/code\u003e to hang indefinitely (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/769\"\u003e#769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCancel request handling\u003c/strong\u003e: Implemented \u003ccode\u003econtrol_cancel_request\u003c/code\u003e handling so in-flight hook callbacks are properly cancelled when the CLI abandons them (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/751\"\u003e#751\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.87\u003c/li\u003e\n\u003cli\u003eIncreased CI timeout for example tests and reduced sleep duration in error handling example (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/760\"\u003e#760\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003ePyPI:\u003c/strong\u003e \u003ca href=\"https://pypi.org/project/claude-agent-sdk/0.1.52/\"\u003ehttps://pypi.org/project/claude-agent-sdk/0.1.52/\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install claude-agent-sdk==0.1.52\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.1.51\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSession management\u003c/strong\u003e: Added \u003ccode\u003efork_session()\u003c/code\u003e, \u003ccode\u003edelete_session()\u003c/code\u003e, and offset-based pagination for session listing (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/744\"\u003e#744\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTask budget\u003c/strong\u003e: Added \u003ccode\u003etask_budget\u003c/code\u003e option for token budget management (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/747\"\u003e#747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSystemPromptFile\u003c/strong\u003e: Added support for \u003ccode\u003e--system-prompt-file\u003c/code\u003e CLI flag via \u003ccode\u003eSystemPromptFile\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAgentDefinition fields\u003c/strong\u003e: Added \u003ccode\u003edisallowedTools\u003c/code\u003e, \u003ccode\u003emaxTurns\u003c/code\u003e, and \u003ccode\u003einitialPrompt\u003c/code\u003e to \u003ccode\u003eAgentDefinition\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/759\"\u003e#759\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePreserved fields\u003c/strong\u003e: Preserve dropped fields on \u003ccode\u003eAssistantMessage\u003c/code\u003e and \u003ccode\u003eResultMessage\u003c/code\u003e for forward compatibility (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ePython 3.10 compatibility\u003c/strong\u003e: Use \u003ccode\u003etyping_extensions.TypedDict\u003c/code\u003e on Python 3.10 for \u003ccode\u003eNotRequired\u003c/code\u003e support (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/761\"\u003e#761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eResultMessage errors field\u003c/strong\u003e: Added missing \u003ccode\u003eerrors\u003c/code\u003e field to \u003ccode\u003eResultMessage\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/749\"\u003e#749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAsync generator cleanup\u003c/strong\u003e: Resolved cross-task cancel scope \u003ccode\u003eRuntimeError\u003c/code\u003e on async generator cleanup (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/746\"\u003e#746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMCP tool input_schema\u003c/strong\u003e: Convert \u003ccode\u003eTypedDict\u003c/code\u003e input_schema to proper JSON Schema in SDK MCP tools (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/736\"\u003e#736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einitialize_timeout\u003c/strong\u003e: Pass \u003ccode\u003einitialize_timeout\u003c/code\u003e from env var in \u003ccode\u003equery()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/743\"\u003e#743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAsync event loop blocking\u003c/strong\u003e: Defer CLI discovery to \u003ccode\u003econnect()\u003c/code\u003e to avoid blocking async event loops (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/722\"\u003e#722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePermission mode\u003c/strong\u003e: Added missing \u003ccode\u003edontAsk\u003c/code\u003e permission mode to types (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEnvironment filtering\u003c/strong\u003e: Filter \u003ccode\u003eCLAUDECODE\u003c/code\u003e env var from subprocess environment (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eProcess cleanup\u003c/strong\u003e: Added \u003ccode\u003eSIGKILL\u003c/code\u003e fallback when \u003ccode\u003eSIGTERM\u003c/code\u003e handler blocks in \u003ccode\u003eclose()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/729\"\u003e#729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDuplicate warning\u003c/strong\u003e: Removed duplicate version warning and included CLI path (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/720\"\u003e#720\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/blob/main/CHANGELOG.md\"\u003eclaude-agent-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.1.52\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eContext usage\u003c/strong\u003e: Added \u003ccode\u003eget_context_usage()\u003c/code\u003e method to \u003ccode\u003eClaudeSDKClient\u003c/code\u003e for querying context window usage by category (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/764\"\u003e#764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAnnotated parameter descriptions\u003c/strong\u003e: The \u003ccode\u003e@tool\u003c/code\u003e decorator and \u003ccode\u003ecreate_sdk_mcp_server\u003c/code\u003e now support \u003ccode\u003etyping.Annotated\u003c/code\u003e for per-parameter descriptions in JSON Schema (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/762\"\u003e#762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eToolPermissionContext fields\u003c/strong\u003e: Exposed \u003ccode\u003etool_use_id\u003c/code\u003e and \u003ccode\u003eagent_id\u003c/code\u003e in \u003ccode\u003eToolPermissionContext\u003c/code\u003e for distinguishing parallel permission requests (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/754\"\u003e#754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSession ID option\u003c/strong\u003e: Added \u003ccode\u003esession_id\u003c/code\u003e option to \u003ccode\u003eClaudeAgentOptions\u003c/code\u003e for specifying custom session IDs (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/750\"\u003e#750\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eString prompt in connect()\u003c/strong\u003e: Fixed \u003ccode\u003econnect(prompt=\u0026quot;...\u0026quot;)\u003c/code\u003e silently dropping the string prompt, causing \u003ccode\u003ereceive_messages()\u003c/code\u003e to hang indefinitely (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/769\"\u003e#769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCancel request handling\u003c/strong\u003e: Implemented \u003ccode\u003econtrol_cancel_request\u003c/code\u003e handling so in-flight hook callbacks are properly cancelled when the CLI abandons them (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/751\"\u003e#751\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.87\u003c/li\u003e\n\u003cli\u003eIncreased CI timeout for example tests and reduced sleep duration in error handling example (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/760\"\u003e#760\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.1.51\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSession management\u003c/strong\u003e: Added \u003ccode\u003efork_session()\u003c/code\u003e, \u003ccode\u003edelete_session()\u003c/code\u003e, and offset-based pagination for session listing (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/744\"\u003e#744\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTask budget\u003c/strong\u003e: Added \u003ccode\u003etask_budget\u003c/code\u003e option for token budget management (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/747\"\u003e#747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSystemPromptFile\u003c/strong\u003e: Added support for \u003ccode\u003e--system-prompt-file\u003c/code\u003e CLI flag via \u003ccode\u003eSystemPromptFile\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAgentDefinition fields\u003c/strong\u003e: Added \u003ccode\u003edisallowedTools\u003c/code\u003e, \u003ccode\u003emaxTurns\u003c/code\u003e, and \u003ccode\u003einitialPrompt\u003c/code\u003e to \u003ccode\u003eAgentDefinition\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/759\"\u003e#759\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePreserved fields\u003c/strong\u003e: Preserve dropped fields on \u003ccode\u003eAssistantMessage\u003c/code\u003e and \u003ccode\u003eResultMessage\u003c/code\u003e for forward compatibility (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/718\"\u003e#718\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ePython 3.10 compatibility\u003c/strong\u003e: Use \u003ccode\u003etyping_extensions.TypedDict\u003c/code\u003e on Python 3.10 for \u003ccode\u003eNotRequired\u003c/code\u003e support (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/761\"\u003e#761\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eResultMessage errors field\u003c/strong\u003e: Added missing \u003ccode\u003eerrors\u003c/code\u003e field to \u003ccode\u003eResultMessage\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/749\"\u003e#749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAsync generator cleanup\u003c/strong\u003e: Resolved cross-task cancel scope \u003ccode\u003eRuntimeError\u003c/code\u003e on async generator cleanup (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/746\"\u003e#746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMCP tool input_schema\u003c/strong\u003e: Convert \u003ccode\u003eTypedDict\u003c/code\u003e input_schema to proper JSON Schema in SDK MCP tools (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/736\"\u003e#736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einitialize_timeout\u003c/strong\u003e: Pass \u003ccode\u003einitialize_timeout\u003c/code\u003e from env var in \u003ccode\u003equery()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/743\"\u003e#743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAsync event loop blocking\u003c/strong\u003e: Defer CLI discovery to \u003ccode\u003econnect()\u003c/code\u003e to avoid blocking async event loops (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/722\"\u003e#722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePermission mode\u003c/strong\u003e: Added missing \u003ccode\u003edontAsk\u003c/code\u003e permission mode to types (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/719\"\u003e#719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eEnvironment filtering\u003c/strong\u003e: Filter \u003ccode\u003eCLAUDECODE\u003c/code\u003e env var from subprocess environment (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eProcess cleanup\u003c/strong\u003e: Added \u003ccode\u003eSIGKILL\u003c/code\u003e fallback when \u003ccode\u003eSIGTERM\u003c/code\u003e handler blocks in \u003ccode\u003eclose()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/729\"\u003e#729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eDuplicate warning\u003c/strong\u003e: Removed duplicate version warning and included CLI path (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/720\"\u003e#720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMCP resource types\u003c/strong\u003e: Handle \u003ccode\u003eresource_link\u003c/code\u003e and embedded resource content types in SDK MCP tools (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/725\"\u003e#725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eStdin timeout\u003c/strong\u003e: Removed stdin timeout for hooks and SDK MCP servers (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eStdout parsing\u003c/strong\u003e: Skip non-JSON lines on CLI stdout to prevent buffer corruption (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/723\"\u003e#723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eMCP error propagation\u003c/strong\u003e: Propagate \u003ccode\u003eis_error\u003c/code\u003e flag from SDK MCP tool results (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/717\"\u003e#717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eInstall script\u003c/strong\u003e: Retry \u003ccode\u003einstall.sh\u003c/code\u003e fetch on 429 with pipefail + jitter (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/708\"\u003e#708\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.85\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/566e41f7a59377885693082d0e8436d8964a0491\"\u003e\u003ccode\u003e566e41f\u003c/code\u003e\u003c/a\u003e docs: update changelog for v0.1.52\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/ae9e8c10bd1e2a41460022a9e068cafc672d2e29\"\u003e\u003ccode\u003eae9e8c1\u003c/code\u003e\u003c/a\u003e chore: release v0.1.52\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/586507ee999ee93aeaea26e0986232bce37a6e89\"\u003e\u003ccode\u003e586507e\u003c/code\u003e\u003c/a\u003e chore: bump bundled CLI version to 2.1.87\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/9d467b7560b48ed741b7f2bebe09c91513077530\"\u003e\u003ccode\u003e9d467b7\u003c/code\u003e\u003c/a\u003e fix: send string prompt in connect() instead of silently dropping it (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/769\"\u003e#769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/2c29362c0fb77835b2328f164203187e5d4acb1c\"\u003e\u003ccode\u003e2c29362\u003c/code\u003e\u003c/a\u003e fix: implement control_cancel_request handling (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/751\"\u003e#751\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/ac900bddd5528bad8845ebc909320ae2c7faca7a\"\u003e\u003ccode\u003eac900bd\u003c/code\u003e\u003c/a\u003e feat: add get_context_usage() method to ClaudeSDKClient (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/764\"\u003e#764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/d4377dba0b1f57e25642057bc70f5708b1301754\"\u003e\u003ccode\u003ed4377db\u003c/code\u003e\u003c/a\u003e feat: support Annotated for per-parameter descriptions in \u003ca href=\"https://github.com/tool\"\u003e\u003ccode\u003e@​tool\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/762\"\u003e#762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/fe0cff3c902f88e80bc1ac5ee85250e2fb73da83\"\u003e\u003ccode\u003efe0cff3\u003c/code\u003e\u003c/a\u003e feat: expose tool_use_id and agent_id in ToolPermissionContext (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/754\"\u003e#754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/5656d20edd32634ca181921493a708eb51be62cb\"\u003e\u003ccode\u003e5656d20\u003c/code\u003e\u003c/a\u003e feat: add session_id option to ClaudeAgentOptions (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/750\"\u003e#750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/278570d81efcf1a37709a24e07d04b5ae04d1b27\"\u003e\u003ccode\u003e278570d\u003c/code\u003e\u003c/a\u003e fix(ci): increase test-examples timeout and reduce sleep in error_handling ex...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/compare/v0.1.48...v0.1.52\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dependency-injector` from 4.48.3 to 4.49.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.49.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.14 support\u003c/li\u003e\n\u003cli\u003eFix Pydantic v2 deprecation warning triggering on settings class import (fixes \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix grammar in Declarative Container documentation by \u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing warn_unresolved parameter to WiringConfiguration in containers.pyi by \u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd keep_cache argument to Container.wire typings by \u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for some type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/943\"\u003eets-labs/python-dependency-injector#943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for remaining type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/953\"\u003eets-labs/python-dependency-injector#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd provided()\u003c!-- raw HTML omitted --\u003e.call *args, **kwargs arguments \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/945\"\u003e#945\u003c/a\u003e by \u003ca href=\"https://github.com/pavalso\"\u003e\u003ccode\u003e@​pavalso\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/946\"\u003eets-labs/python-dependency-injector#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd context local resource by \u003ca href=\"https://github.com/elina-israyelyan\"\u003e\u003ccode\u003e@​elina-israyelyan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/931\"\u003eets-labs/python-dependency-injector#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI/CD to \u003ccode\u003eactions/checkout@v6\u003c/code\u003e, \u003ccode\u003eactions/setup-python@v6\u003c/code\u003e, \u003ccode\u003eactions/download-artifact@v8\u003c/code\u003e, \u003ccode\u003eactions/upload-artifact@v7\u003c/code\u003e and \u003ccode\u003epypa/cibuildwheel@v3.4.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdd dependabot config for GitHub Actions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pavalso\"\u003e\u003ccode\u003e@​pavalso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/946\"\u003eets-labs/python-dependency-injector#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elina-israyelyan\"\u003e\u003ccode\u003e@​elina-israyelyan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/931\"\u003eets-labs/python-dependency-injector#931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5f7aa1c337c77e782e1e927eb4b1e41a60912604\"\u003e\u003ccode\u003e5f7aa1c\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5863d99bd5e9b2d22c15f3815b23973317a453ee\"\u003e\u003ccode\u003e5863d99\u003c/code\u003e\u003c/a\u003e Add .github/dependabot.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/000c670c7e655cc7db423a76c6b877d185f706ce\"\u003e\u003ccode\u003e000c670\u003c/code\u003e\u003c/a\u003e Upgrade GHA actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/931084070a5304a26a925961375a5afcc3c3a38b\"\u003e\u003ccode\u003e9310840\u003c/code\u003e\u003c/a\u003e Fix iscoroutinefunction import for older Pythons\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/05a5e7d8701a1df8cb88ad55d187ba88cd6ffbe8\"\u003e\u003ccode\u003e05a5e7d\u003c/code\u003e\u003c/a\u003e Fix get_annotations import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/58700d9dbd3420a559330666edfb477418997ff9\"\u003e\u003ccode\u003e58700d9\u003c/code\u003e\u003c/a\u003e Use from import statements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/0e25331738716d5bfa5562d42617deb6ad65d23c\"\u003e\u003ccode\u003e0e25331\u003c/code\u003e\u003c/a\u003e Do not build nogil wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1696986aa7698120a7e2aab2355d93e178fc36f9\"\u003e\u003ccode\u003e1696986\u003c/code\u003e\u003c/a\u003e Python 3.14 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/525935137e81355657e44b454c0f7b19b69fdc7b\"\u003e\u003ccode\u003e5259351\u003c/code\u003e\u003c/a\u003e Add context local resource (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/931\"\u003e#931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/76d5932b7340719eac2b737bd444daacc7bb0682\"\u003e\u003ccode\u003e76d5932\u003c/code\u003e\u003c/a\u003e Add provided()\u0026lt;func\u0026gt;.call *args, **kwargs arguments (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/946\"\u003e#946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 46.0.5 to 46.0.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e46.0.6 - 2026-03-25\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **SECURITY ISSUE**: Fixed a bug where name constraints were not applied\n  to peer names during verification when the leaf certificate contains a\n  wildcard DNS SAN. Ordinary X.509 topologies are not affected by this bug,\n  including those used by the Web PKI. Credit to **Oleh Konko (1seal)** for\n  reporting the issue. **CVE-2026-34073**\n\u003cp\u003e.. _v46-0-5:\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/91d728897bdad30cd5c79a2b23e207f1f050d587\"\u003e\u003ccode\u003e91d7288\u003c/code\u003e\u003c/a\u003e Cherry-pick \u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14542\"\u003e#14542\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14543\"\u003e#14543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/46.0.5...46.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.12.1 to 4.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.13.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ettl\u003c/code\u003e parameter to the \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e wrapper (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1073\"\u003e#1073\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Graeme22\"\u003e\u003ccode\u003e@​Graeme22\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWidened the type annotations of file I/O streams to accept \u003ccode\u003eIO[bytes]\u003c/code\u003e instead of just \u003ccode\u003eBinaryIO\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.Path\u003c/code\u003e not being compatible with Python 3.15 due to the removal of \u003ccode\u003epathlib.Path.is_reserved()\u003c/code\u003e and the addition of \u003ccode\u003epathlib.Path.__vfspath__()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1061\"\u003e#1061\u003c/a\u003e; PR by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the \u003ccode\u003eBrokenResourceError\u003c/code\u003e raised by the asyncio \u003ccode\u003eSocketStream\u003c/code\u003e not having the original exception as its cause (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1055\"\u003e#1055\u003c/a\u003e; PR by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the \u003ccode\u003eTypeError\u003c/code\u003e raised when using \u0026quot;func\u0026quot; as a parameter name in \u003ccode\u003epytest.mark.parametrize\u003c/code\u003e when using the pytest plugin (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1068\"\u003e#1068\u003c/a\u003e; PR by \u003ca href=\"https://github.com/JohnnyDeuss\"\u003e\u003ccode\u003e@​JohnnyDeuss\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the pytest plugin not running tests that had the \u003ccode\u003eanyio\u003c/code\u003e marker added programmatically via \u003ccode\u003epytest_collection_modifyitems\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/422\"\u003e#422\u003c/a\u003e; PR by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed cancellation exceptions leaking from a \u003ccode\u003eCancelScope\u003c/code\u003e on asyncio when they are contained in an exception group alongside non-cancellation exceptions (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1091\"\u003e#1091\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCondition.wait()\u003c/code\u003e not passing on a notification when the task is cancelled but already received a notification\u003c/li\u003e\n\u003cli\u003eFixed inverted condition in the process pool shutdown phase which would cause still-running pooled processes not to be terminated (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1074\"\u003e#1074\u003c/a\u003e; PR by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/afbe93ca9d0c447adf26e9c1715ac20870622bf2\"\u003e\u003ccode\u003eafbe93c\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/33bdf2e4b4f40c2df178123746147a6d2471808d\"\u003e\u003ccode\u003e33bdf2e\u003c/code\u003e\u003c/a\u003e Rearranged the changelog entries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/19e09e25bc5a23dd78a577d8c3909dd377057c78\"\u003e\u003ccode\u003e19e09e2\u003c/code\u003e\u003c/a\u003e Fixed inverted condition in _forcibly_shutdown_process_pool_on_exit (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1074\"\u003e#1074\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9369d80b9e8292f2a892a9d5c73923c6a28aa08c\"\u003e\u003ccode\u003e9369d80\u003c/code\u003e\u003c/a\u003e Fixed Condition.wait() not handing over notification when cancelled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/6f122abdc6f6b166c6b6ac27d36d55cdf8fa08e8\"\u003e\u003ccode\u003e6f122ab\u003c/code\u003e\u003c/a\u003e Fixed cancellation exceptions leaking from a \u003ccode\u003eCancelScope\u003c/code\u003e on asyncio when th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/beaa45aff568a4020f2faf317321dd92f0e1f4a0\"\u003e\u003ccode\u003ebeaa45a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1097\"\u003e#1097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/602f6606dcf3f37702686a4f3e161328c537b07f\"\u003e\u003ccode\u003e602f660\u003c/code\u003e\u003c/a\u003e Widened type annotations to accept IO[bytes] in file streams\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b5dcd45170701a756ba634197398f05d4710cab3\"\u003e\u003ccode\u003eb5dcd45\u003c/code\u003e\u003c/a\u003e Added note about erasing the template\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/d68670b3b4e0917d4caff2de082e03220f3e05a1\"\u003e\u003ccode\u003ed68670b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1090\"\u003e#1090\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/fc17a22dd948e6a3d90d99908813f0010dfc3d2c\"\u003e\u003ccode\u003efc17a22\u003c/code\u003e\u003c/a\u003e tweak to_thread docs about abandon_on_cancel (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1088\"\u003e#1088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.12.1...4.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fsspec` from 2026.2.0 to 2026.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/49e6189b2cd8ee95b9357bff6a5671ea3b32c2ca\"\u003e\u003ccode\u003e49e6189\u003c/code\u003e\u003c/a\u003e changelog (\u003ca href=\"https://redirect.github.com/fsspec/filesystem_spec/issues/2005\"\u003e#2005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/filesystem_spec/commit/e73753a3c9086398a54942d26f7bc4a7232ac336\"\u003e...\n\n_Description has been truncated_","html_url":"https://github.com/pilotspace/pilot-space/pull/111","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pilotspace%2Fpilot-space/issues/111","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/111/packages"}},{"old_version":"4.48.3","new_version":"4.49.0","update_type":"minor","path":null,"pr_created_at":"2026-03-25T08:15:01.000Z","version_change":"4.48.3 → 4.49.0","issue":{"uuid":"4133500269","node_id":"PR_kwDOPYkt3s7NQtAI","number":524,"state":"closed","title":"build(deps): bump the all-python-deps group across 1 directory with 10 updates","user":"dependabot[bot]","labels":[],"assignees":["scottfrasso"],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-03-26T08:14:55.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-25T08:15:01.000Z","updated_at":"2026-03-26T08:14:57.000Z","time_to_close":86394,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"all-python-deps","update_count":10,"packages":[{"name":"pydantic-ai","old_version":"1.70.0","new_version":"1.71.0","repository_url":"https://github.com/pydantic/pydantic-ai"},{"name":"logfire","old_version":"4.29.0","new_version":"4.30.0","repository_url":"https://github.com/pydantic/logfire"},{"name":"real-ladybug","old_version":"0.15.1","new_version":"0.15.2","repository_url":"https://github.com/lbugdb/lbug"},{"name":"tree-sitter-rust","old_version":"0.24.0","new_version":"0.24.1","repository_url":"https://github.com/tree-sitter/tree-sitter-rust"},{"name":"anthropic","old_version":"0.85.0","new_version":"0.86.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"genai-prices","old_version":"0.0.55","new_version":"0.0.56","repository_url":"https://github.com/pydantic/genai-prices"},{"name":"dependency-injector","old_version":"4.48.3","new_version":"4.49.0","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"claude-agent-sdk","old_version":"0.1.48","new_version":"0.1.50","repository_url":"https://github.com/anthropics/claude-agent-sdk-python"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"ruff","old_version":"0.15.6","new_version":"0.15.7","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-python-deps group with 10 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic-ai](https://github.com/pydantic/pydantic-ai) | `1.70.0` | `1.71.0` |\n| [logfire](https://github.com/pydantic/logfire) | `4.29.0` | `4.30.0` |\n| [real-ladybug](https://github.com/lbugdb/lbug) | `0.15.1` | `0.15.2` |\n| [tree-sitter-rust](https://github.com/tree-sitter/tree-sitter-rust) | `0.24.0` | `0.24.1` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.85.0` | `0.86.0` |\n| [genai-prices](https://github.com/pydantic/genai-prices) | `0.0.55` | `0.0.56` |\n| [dependency-injector](https://github.com/ets-labs/python-dependency-injector) | `4.48.3` | `4.49.0` |\n| [claude-agent-sdk](https://github.com/anthropics/claude-agent-sdk-python) | `0.1.48` | `0.1.50` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.6` | `0.15.7` |\n\n\nUpdates `pydantic-ai` from 1.70.0 to 1.71.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-ai/releases\"\u003epydantic-ai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.71.0 (2026-03-24)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003e🚀 Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ca href=\"https://ai.pydantic.dev/capabilities/\"\u003eCapabilities\u003c/a\u003e: composable, reusable units of agent behavior that bundle tools, lifecycle hooks, instructions, and model settings into a single class you plug into any agent by \u003ca href=\"https://github.com/DouweM\"\u003e\u003ccode\u003e@​DouweM\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4640\"\u003epydantic/pydantic-ai#4640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ca href=\"https://ai.pydantic.dev/agent-spec/\"\u003e\u003ccode\u003eAgentSpec\u003c/code\u003e\u003c/a\u003e and \u003ccode\u003eAgent.from_file\u003c/code\u003e for loading agents from YAML/JSON, with support for templated instructions referencing deps (via \u003ccode\u003eTemplateStr\u003c/code\u003e) by \u003ca href=\"https://github.com/DouweM\"\u003e\u003ccode\u003e@​DouweM\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4640\"\u003epydantic/pydantic-ai#4640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ca href=\"https://ai.pydantic.dev/hooks/\"\u003e\u003ccode\u003eHooks\u003c/code\u003e\u003c/a\u003e capability for defining hooks using decorators by \u003ca href=\"https://github.com/DouweM\"\u003e\u003ccode\u003e@​DouweM\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4640\"\u003epydantic/pydantic-ai#4640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ca href=\"https://ai.pydantic.dev/thinking/\"\u003e\u003ccode\u003eThinking\u003c/code\u003e\u003c/a\u003e capability and cross-provider \u003ccode\u003ethinking\u003c/code\u003e model setting by \u003ca href=\"https://github.com/DouweM\"\u003e\u003ccode\u003e@​DouweM\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4640\"\u003epydantic/pydantic-ai#4640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ca href=\"https://ai.pydantic.dev/capabilities/#provider-adaptive-tools\"\u003eprovider-adaptive tools\u003c/a\u003e capabilities \u003ccode\u003eWebSearch\u003c/code\u003e, \u003ccode\u003eWebFetch\u003c/code\u003e, \u003ccode\u003eMCP\u003c/code\u003e, \u003ccode\u003eImageGeneration\u003c/code\u003e that automatically fall back from builtin (provider) tools to local tools by \u003ca href=\"https://github.com/DouweM\"\u003e\u003ccode\u003e@​DouweM\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4640\"\u003epydantic/pydantic-ai#4640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ca href=\"https://ai.pydantic.dev/toolsets/#per-run-and-per-step-lifecycle\"\u003e\u003ccode\u003eAbstractToolset.for_run\u003c/code\u003e\u003c/a\u003e and \u003ccode\u003efor_run_step\u003c/code\u003e for state isolation by \u003ca href=\"https://github.com/DouweM\"\u003e\u003ccode\u003e@​DouweM\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4640\"\u003epydantic/pydantic-ai#4640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eopenai:gpt-5.4-mini\u003c/code\u003e and \u003ccode\u003eopenai:gpt-5.4-nano\u003c/code\u003e by \u003ca href=\"https://github.com/adtyavrdhn\"\u003e\u003ccode\u003e@​adtyavrdhn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/pull/4787\"\u003epydantic/pydantic-ai#4787\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-ai/compare/v1.70.0...v1.71.0\"\u003ehttps://github.com/pydantic/pydantic-ai/compare/v1.70.0...v1.71.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/a0bc09c237336ccaa4324d7e9ac9c65045cde628\"\u003e\u003ccode\u003ea0bc09c\u003c/code\u003e\u003c/a\u003e Add Capability abstraction, \u003ccode\u003eAgentSpec\u003c/code\u003e, \u003ccode\u003eHooks\u003c/code\u003e, unified \u003ccode\u003ethinking\u003c/code\u003e setting,...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/c0ae161777e7c54a2ea7ecfa14abc8d2f20495dc\"\u003e\u003ccode\u003ec0ae161\u003c/code\u003e\u003c/a\u003e ci: enable display_report on auto-review action (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/issues/4817\"\u003e#4817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/e1f2b4c13b78587563dfd731a41462588bd74a68\"\u003e\u003ccode\u003ee1f2b4c\u003c/code\u003e\u003c/a\u003e Fix indentation of code blocks (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/issues/4814\"\u003e#4814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/234253cfac3c16522f95deac531ade3a7568611b\"\u003e\u003ccode\u003e234253c\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eopenai:gpt-5.4-mini\u003c/code\u003e and \u003ccode\u003eopenai:gpt-5.4-nano\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/issues/4787\"\u003e#4787\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-ai/commit/f8fce32be578bf5901848aa5875672d1bf1092b1\"\u003e\u003ccode\u003ef8fce32\u003c/code\u003e\u003c/a\u003e fix(ci): add checkout step to category-label job in bots workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-ai/issues/4784\"\u003e#4784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pydantic/pydantic-ai/compare/v1.70.0...v1.71.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `logfire` from 4.29.0 to 4.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/logfire/releases\"\u003elogfire's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.30.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elogfire auth logout\u003c/code\u003e command by \u003ca href=\"https://github.com/ai-man-codes\"\u003e\u003ccode\u003e@​ai-man-codes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1781\"\u003e#1781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove Rich link styling from project URL output by \u003ca href=\"https://github.com/ameenalkhaldi\"\u003e\u003ccode\u003e@​ameenalkhaldi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1784\"\u003e#1784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix push_config() to push labels and versions by \u003ca href=\"https://github.com/dmontagu\"\u003e\u003ccode\u003e@​dmontagu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1785\"\u003e#1785\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMerge \u003ccode\u003eexport_dataset\u003c/code\u003e into \u003ccode\u003eget_dataset\u003c/code\u003e with \u003ccode\u003einclude_cases\u003c/code\u003e parameter by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1792\"\u003e#1792\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/logfire/blob/main/CHANGELOG.md\"\u003elogfire's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v4.30.0] (2026-03-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003elogfire auth logout\u003c/code\u003e command by \u003ca href=\"https://github.com/ai-man-codes\"\u003e\u003ccode\u003e@​ai-man-codes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1781\"\u003e#1781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove Rich link styling from project URL output by \u003ca href=\"https://github.com/ameenalkhaldi\"\u003e\u003ccode\u003e@​ameenalkhaldi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1784\"\u003e#1784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix push_config() to push labels and versions by \u003ca href=\"https://github.com/dmontagu\"\u003e\u003ccode\u003e@​dmontagu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1785\"\u003e#1785\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMerge \u003ccode\u003eexport_dataset\u003c/code\u003e into \u003ccode\u003eget_dataset\u003c/code\u003e with \u003ccode\u003einclude_cases\u003c/code\u003e parameter by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/logfire/pull/1792\"\u003e#1792\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/8e3dbe465adb5a97a2bcd8c459f6ec09b528d906\"\u003e\u003ccode\u003e8e3dbe4\u003c/code\u003e\u003c/a\u003e Release v4.30.0 (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1794\"\u003e#1794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/f036a5d6adc89306b4d618850d806bea8fe9de9b\"\u003e\u003ccode\u003ef036a5d\u003c/code\u003e\u003c/a\u003e Merge \u003ccode\u003eexport_dataset\u003c/code\u003e into \u003ccode\u003eget_dataset\u003c/code\u003e with \u003ccode\u003einclude_cases\u003c/code\u003e parameter (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1792\"\u003e#1792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/7d34f32816768eb6f45c9acd90cca3960efddaca\"\u003e\u003ccode\u003e7d34f32\u003c/code\u003e\u003c/a\u003e chore: Update dependencies (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1793\"\u003e#1793\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/00f4d1cf0075c4eb9ca57a35c4ebcb27e17ba90d\"\u003e\u003ccode\u003e00f4d1c\u003c/code\u003e\u003c/a\u003e docs: add documentation for experimental browser proxy handler (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1742\"\u003e#1742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/b2556724a93cc29028a876b17f49644796e76095\"\u003e\u003ccode\u003eb255672\u003c/code\u003e\u003c/a\u003e Add cross-reference link for \u003ccode\u003epydantic_evals.Dataset\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1791\"\u003e#1791\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/97d0d32d094be98026638a1e124e8269d517ddb0\"\u003e\u003ccode\u003e97d0d32\u003c/code\u003e\u003c/a\u003e Move Datasets SDK Reference to the Reference section (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1790\"\u003e#1790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/65d9b480b41a3a84c12c32ee62e3b5c211903c28\"\u003e\u003ccode\u003e65d9b48\u003c/code\u003e\u003c/a\u003e Fix push_config() to push labels and versions (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1785\"\u003e#1785\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/0e49172f5caf2c894a4150a8cb6abeefa0b47e95\"\u003e\u003ccode\u003e0e49172\u003c/code\u003e\u003c/a\u003e Remove Rich link styling from project URL output (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1784\"\u003e#1784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/663a13202cfbbb8ea43ecfa39b6a2a5f3e9df196\"\u003e\u003ccode\u003e663a132\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003elogfire auth logout\u003c/code\u003e command (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1781\"\u003e#1781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/logfire/commit/c3ee57b4675f8bbd32d5f904c72168288176c4b4\"\u003e\u003ccode\u003ec3ee57b\u003c/code\u003e\u003c/a\u003e Update more documentation about plans (\u003ca href=\"https://redirect.github.com/pydantic/logfire/issues/1782\"\u003e#1782\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/logfire/compare/v4.29.0...v4.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `real-ladybug` from 0.15.1 to 0.15.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/lbugdb/lbug/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tree-sitter-rust` from 0.24.0 to 0.24.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/releases\"\u003etree-sitter-rust's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.24.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNOTE:\u003c/strong\u003e Download \u003ccode\u003etree-sitter-rust.tar.gz\u003c/code\u003e for the \u003cem\u003ecomplete\u003c/em\u003e source code.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/4b8106750a2865e4548459d18c797c9f468c440e\"\u003e\u003ccode\u003e4b81067\u003c/code\u003e\u003c/a\u003e Disable regeneration\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/6651c80dc5f033f9666365de50260d02cea05412\"\u003e\u003ccode\u003e6651c80\u003c/code\u003e\u003c/a\u003e Regenerate parser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/96e3121c41bc5f2b659f21dd5a43894c4028ddf1\"\u003e\u003ccode\u003e96e3121\u003c/code\u003e\u003c/a\u003e Remove attestations from GH release job\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/8a1ccae7aaccdc11b04dbd803453e3e9cfd9159b\"\u003e\u003ccode\u003e8a1ccae\u003c/code\u003e\u003c/a\u003e 0.24.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/ab43fdbb1640bdece8fab9927b1aa6774d942189\"\u003e\u003ccode\u003eab43fdb\u003c/code\u003e\u003c/a\u003e Parse string literals even in with unexpected prefixes (\u003ca href=\"https://redirect.github.com/tree-sitter/tree-sitter-rust/issues/306\"\u003e#306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/261b20226c04ef601adbdf185a800512a5f66291\"\u003e\u003ccode\u003e261b202\u003c/code\u003e\u003c/a\u003e Raw reference/identifier conflict (\u003ca href=\"https://redirect.github.com/tree-sitter/tree-sitter-rust/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/946595d164e77b705fa28385654f9420f59262ef\"\u003e\u003ccode\u003e946595d\u003c/code\u003e\u003c/a\u003e Include LICENSE (\u003ca href=\"https://redirect.github.com/tree-sitter/tree-sitter-rust/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/00d7cbc95f0b8ea2703129550fbd1853a13e0e29\"\u003e\u003ccode\u003e00d7cbc\u003c/code\u003e\u003c/a\u003e ci: bump tree-sitter/parser-test-action from 2 to 3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/2a58b00ed44829eebcbe6f932604093b9396a43b\"\u003e\u003ccode\u003e2a58b00\u003c/code\u003e\u003c/a\u003e ci: bump actions/setup-node from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/commit/3bfef41a01ab49a25ffdecf998823b4b82fcaf69\"\u003e\u003ccode\u003e3bfef41\u003c/code\u003e\u003c/a\u003e ci: bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tree-sitter/tree-sitter-rust/compare/v0.24.0...v0.24.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anthropic` from 0.85.0 to 0.86.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/releases\"\u003eanthropic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.86.0\u003c/h2\u003e\n\u003ch2\u003e0.86.0 (2026-03-18)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.85.0...v0.86.0\"\u003ev0.85.0...v0.86.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for filesystem memory tools (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1247\"\u003e#1247\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/235d218211ac4b8f1aa37e29bedc998bfb6ce77d\"\u003e235d218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/86dbe4aa58386bfb8d1497debf342e929e9bb5e5\"\u003e86dbe4a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/45d9cc0914200a43743ab11aa311392e9d8c1b4f\"\u003e45d9cc0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAsyncAnthropic._make_status_error missing 529 and 413 cases (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1244\"\u003e#1244\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/05220bc1c1079fe01f5c4babc007ec7a990859d9\"\u003e05220bc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e bump minimum typing-extensions version (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/09ab112289815ba6f19d8fb3da1e715748182799\"\u003e09ab112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epydantic:\u003c/strong\u003e do not pass \u003ccode\u003eby_alias\u003c/code\u003e unless set (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b17480e9d06613aa597dd40d5a47f4f1250ac762\"\u003eb17480e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e tweak CI branches (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3c0308c97804ababfd3f37330e129e68ccfe4bbc\"\u003e3c0308c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/blob/main/CHANGELOG.md\"\u003eanthropic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.86.0 (2026-03-18)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.85.0...v0.86.0\"\u003ev0.85.0...v0.86.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for filesystem memory tools (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1247\"\u003e#1247\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/235d218211ac4b8f1aa37e29bedc998bfb6ce77d\"\u003e235d218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/86dbe4aa58386bfb8d1497debf342e929e9bb5e5\"\u003e86dbe4a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/45d9cc0914200a43743ab11aa311392e9d8c1b4f\"\u003e45d9cc0\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAsyncAnthropic._make_status_error missing 529 and 413 cases (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1244\"\u003e#1244\u003c/a\u003e) (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/05220bc1c1079fe01f5c4babc007ec7a990859d9\"\u003e05220bc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003edeps:\u003c/strong\u003e bump minimum typing-extensions version (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/09ab112289815ba6f19d8fb3da1e715748182799\"\u003e09ab112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epydantic:\u003c/strong\u003e do not pass \u003ccode\u003eby_alias\u003c/code\u003e unless set (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b17480e9d06613aa597dd40d5a47f4f1250ac762\"\u003eb17480e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e tweak CI branches (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/3c0308c97804ababfd3f37330e129e68ccfe4bbc\"\u003e3c0308c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/d7c0974ce6ab94ca135b10b2a45308203c0e0c7e\"\u003e\u003ccode\u003ed7c0974\u003c/code\u003e\u003c/a\u003e release: 0.86.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c46a3e4708fc7f79a00cc245c6f2b11189dd84c3\"\u003e\u003ccode\u003ec46a3e4\u003c/code\u003e\u003c/a\u003e feat(api): manual updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/34045e490d9da94274c36f4333545eacb503d59c\"\u003e\u003ccode\u003e34045e4\u003c/code\u003e\u003c/a\u003e feat(api): manual updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/5ccd6b4122c83f5f1ca5bfefe496a6a257a1da21\"\u003e\u003ccode\u003e5ccd6b4\u003c/code\u003e\u003c/a\u003e feat: add support for filesystem memory tools (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1247\"\u003e#1247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/206252fcfa60a7d127e76c36d10bec8e47494fa4\"\u003e\u003ccode\u003e206252f\u003c/code\u003e\u003c/a\u003e chore(internal): tweak CI branches\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c5e5f3e7adf8d60b091116198f29f0b453c18d8d\"\u003e\u003ccode\u003ec5e5f3e\u003c/code\u003e\u003c/a\u003e fix(deps): bump minimum typing-extensions version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/8669b920105a717deead3acf5b5085a2e9441b72\"\u003e\u003ccode\u003e8669b92\u003c/code\u003e\u003c/a\u003e fix(pydantic): do not pass \u003ccode\u003eby_alias\u003c/code\u003e unless set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/05220bc1c1079fe01f5c4babc007ec7a990859d9\"\u003e\u003ccode\u003e05220bc\u003c/code\u003e\u003c/a\u003e fix: AsyncAnthropic._make_status_error missing 529 and 413 cases (\u003ca href=\"https://redirect.github.com/anthropics/anthropic-sdk-python/issues/1244\"\u003e#1244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.85.0...v0.86.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `genai-prices` from 0.0.55 to 0.0.56\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/9ebd466b6a0bb57c81c168fa9ed6f6a1e547c22a\"\u003e\u003ccode\u003e9ebd466\u003c/code\u003e\u003c/a\u003e Prep 0.0.56 release (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/318\"\u003e#318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/c5bd290dd46af2deab22af7a0aa709906e7038d1\"\u003e\u003ccode\u003ec5bd290\u003c/code\u003e\u003c/a\u003e Add OpenRouter pricing for claude-sonnet-4.6 (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/296\"\u003e#296\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/ea55b972b43eb679e99795c1479ccea4a502ebe0\"\u003e\u003ccode\u003eea55b97\u003c/code\u003e\u003c/a\u003e feat: add Qwen3 Max Thinking to OpenRouter (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/5f2a7bd337696bc2a9ca41147d0a9d7c00e824aa\"\u003e\u003ccode\u003e5f2a7bd\u003c/code\u003e\u003c/a\u003e Add Qwen3 VL 235B A22B (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/a7628264248ca1ce96acb3a2abbe19de47b3efdf\"\u003e\u003ccode\u003ea762826\u003c/code\u003e\u003c/a\u003e Add openrouter qwen/qwen3.5-plus-02-15 price (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/299\"\u003e#299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/8ab5336c8fefeb664d692f2238e1181d0ba0321b\"\u003e\u003ccode\u003e8ab5336\u003c/code\u003e\u003c/a\u003e feat: moonshot ai prices file (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/313\"\u003e#313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/87f9120fc248dddafbb2c863a29ef5488a5164fc\"\u003e\u003ccode\u003e87f9120\u003c/code\u003e\u003c/a\u003e feat: add Gemini 3.1 Flash Image Preview pricing (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/303\"\u003e#303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/016961828b5ecb1e38932a5675fe9afa2668a135\"\u003e\u003ccode\u003e0169618\u003c/code\u003e\u003c/a\u003e Adding api-flavor for xAI native SDK (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/307\"\u003e#307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/ee468266850d8b6ebed856f9b175e37044437a44\"\u003e\u003ccode\u003eee46826\u003c/code\u003e\u003c/a\u003e feat: add GPT-5.4 mini and nano snapshot aliases (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/genai-prices/commit/9205f145985ca898daa5bcf6148f932a82cf62a1\"\u003e\u003ccode\u003e9205f14\u003c/code\u003e\u003c/a\u003e feat: add pricing for GPT 5.4 mini and nano (\u003ca href=\"https://redirect.github.com/pydantic/genai-prices/issues/315\"\u003e#315\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/genai-prices/compare/v0.0.55...v0.0.56\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dependency-injector` from 4.48.3 to 4.49.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.49.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.14 support\u003c/li\u003e\n\u003cli\u003eFix Pydantic v2 deprecation warning triggering on settings class import (fixes \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix grammar in Declarative Container documentation by \u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd missing warn_unresolved parameter to WiringConfiguration in containers.pyi by \u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd keep_cache argument to Container.wire typings by \u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for some type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/943\"\u003eets-labs/python-dependency-injector#943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert type for remaining type-stub checks by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/953\"\u003eets-labs/python-dependency-injector#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd provided()\u003c!-- raw HTML omitted --\u003e.call *args, **kwargs arguments \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/945\"\u003e#945\u003c/a\u003e by \u003ca href=\"https://github.com/pavalso\"\u003e\u003ccode\u003e@​pavalso\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/946\"\u003eets-labs/python-dependency-injector#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd context local resource by \u003ca href=\"https://github.com/elina-israyelyan\"\u003e\u003ccode\u003e@​elina-israyelyan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/931\"\u003eets-labs/python-dependency-injector#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate CI/CD to \u003ccode\u003eactions/checkout@v6\u003c/code\u003e, \u003ccode\u003eactions/setup-python@v6\u003c/code\u003e, \u003ccode\u003eactions/download-artifact@v8\u003c/code\u003e, \u003ccode\u003eactions/upload-artifact@v7\u003c/code\u003e and \u003ccode\u003epypa/cibuildwheel@v3.4.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdd dependabot config for GitHub Actions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonathandannenberg\"\u003e\u003ccode\u003e@​jonathandannenberg\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/951\"\u003eets-labs/python-dependency-injector#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/romantolkachyov\"\u003e\u003ccode\u003e@​romantolkachyov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/952\"\u003eets-labs/python-dependency-injector#952\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pavalso\"\u003e\u003ccode\u003e@​pavalso\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/946\"\u003eets-labs/python-dependency-injector#946\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/elina-israyelyan\"\u003e\u003ccode\u003e@​elina-israyelyan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/931\"\u003eets-labs/python-dependency-injector#931\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5f7aa1c337c77e782e1e927eb4b1e41a60912604\"\u003e\u003ccode\u003e5f7aa1c\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5863d99bd5e9b2d22c15f3815b23973317a453ee\"\u003e\u003ccode\u003e5863d99\u003c/code\u003e\u003c/a\u003e Add .github/dependabot.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/000c670c7e655cc7db423a76c6b877d185f706ce\"\u003e\u003ccode\u003e000c670\u003c/code\u003e\u003c/a\u003e Upgrade GHA actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/931084070a5304a26a925961375a5afcc3c3a38b\"\u003e\u003ccode\u003e9310840\u003c/code\u003e\u003c/a\u003e Fix iscoroutinefunction import for older Pythons\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/05a5e7d8701a1df8cb88ad55d187ba88cd6ffbe8\"\u003e\u003ccode\u003e05a5e7d\u003c/code\u003e\u003c/a\u003e Fix get_annotations import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/58700d9dbd3420a559330666edfb477418997ff9\"\u003e\u003ccode\u003e58700d9\u003c/code\u003e\u003c/a\u003e Use from import statements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/0e25331738716d5bfa5562d42617deb6ad65d23c\"\u003e\u003ccode\u003e0e25331\u003c/code\u003e\u003c/a\u003e Do not build nogil wheels\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1696986aa7698120a7e2aab2355d93e178fc36f9\"\u003e\u003ccode\u003e1696986\u003c/code\u003e\u003c/a\u003e Python 3.14 support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/525935137e81355657e44b454c0f7b19b69fdc7b\"\u003e\u003ccode\u003e5259351\u003c/code\u003e\u003c/a\u003e Add context local resource (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/931\"\u003e#931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/76d5932b7340719eac2b737bd444daacc7bb0682\"\u003e\u003ccode\u003e76d5932\u003c/code\u003e\u003c/a\u003e Add provided()\u0026lt;func\u0026gt;.call *args, **kwargs arguments (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/946\"\u003e#946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.3...4.49.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `claude-agent-sdk` from 0.1.48 to 0.1.50\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/releases\"\u003eclaude-agent-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.1.50\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSession info\u003c/strong\u003e: Added \u003ccode\u003etag\u003c/code\u003e and \u003ccode\u003ecreated_at\u003c/code\u003e fields to \u003ccode\u003eSDKSessionInfo\u003c/code\u003e and new \u003ccode\u003eget_session_info()\u003c/code\u003e function for retrieving session metadata (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/667\"\u003e#667\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.81\u003c/li\u003e\n\u003cli\u003eHardened PyPI publish workflow against partial-upload failures (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded daily PyPI storage quota monitoring (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/705\"\u003e#705\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003ePyPI:\u003c/strong\u003e \u003ca href=\"https://pypi.org/project/claude-agent-sdk/0.1.50/\"\u003ehttps://pypi.org/project/claude-agent-sdk/0.1.50/\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install claude-agent-sdk==0.1.50\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003ev0.1.49\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAgentDefinition\u003c/strong\u003e: Added \u003ccode\u003eskills\u003c/code\u003e, \u003ccode\u003ememory\u003c/code\u003e, and \u003ccode\u003emcpServers\u003c/code\u003e fields (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/684\"\u003e#684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAssistantMessage usage\u003c/strong\u003e: Preserve per-turn \u003ccode\u003eusage\u003c/code\u003e on \u003ccode\u003eAssistantMessage\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/685\"\u003e#685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSession tagging\u003c/strong\u003e: Added \u003ccode\u003etag_session()\u003c/code\u003e with Unicode sanitization (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSession renaming\u003c/strong\u003e: Added \u003ccode\u003erename_session()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/668\"\u003e#668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRateLimitEvent\u003c/strong\u003e: Added typed \u003ccode\u003eRateLimitEvent\u003c/code\u003e message (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/648\"\u003e#648\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCLAUDE_CODE_ENTRYPOINT\u003c/strong\u003e: Use default-if-absent semantics to match TS SDK (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFine-grained tool streaming\u003c/strong\u003e: Reverted the env-var workaround from 0.1.48; partial-message delivery is now handled upstream (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/671\"\u003e#671\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.77\u003c/li\u003e\n\u003cli\u003eAdded macOS x86_64 wheel to the published matrix (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/661\"\u003e#661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpload wheel-check artifacts in CI (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/662\"\u003e#662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: clarified \u003ccode\u003eallowed_tools\u003c/code\u003e as a permission allowlist (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/649\"\u003e#649\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003ePyPI:\u003c/strong\u003e \u003ca href=\"https://pypi.org/project/claude-agent-sdk/0.1.49/\"\u003ehttps://pypi.org/project/claude-agent-sdk/0.1.49/\u003c/a\u003e\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003epip install claude-agent-sdk==0.1.49\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/blob/main/CHANGELOG.md\"\u003eclaude-agent-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.1.50\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSession info\u003c/strong\u003e: Added \u003ccode\u003etag\u003c/code\u003e and \u003ccode\u003ecreated_at\u003c/code\u003e fields to \u003ccode\u003eSDKSessionInfo\u003c/code\u003e and new \u003ccode\u003eget_session_info()\u003c/code\u003e function for retrieving session metadata (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/667\"\u003e#667\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.81\u003c/li\u003e\n\u003cli\u003eHardened PyPI publish workflow against partial-upload failures (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded daily PyPI storage quota monitoring (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/705\"\u003e#705\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.1.49\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eAgentDefinition\u003c/strong\u003e: Added \u003ccode\u003eskills\u003c/code\u003e, \u003ccode\u003ememory\u003c/code\u003e, and \u003ccode\u003emcpServers\u003c/code\u003e fields (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/684\"\u003e#684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAssistantMessage usage\u003c/strong\u003e: Preserve per-turn \u003ccode\u003eusage\u003c/code\u003e on \u003ccode\u003eAssistantMessage\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/685\"\u003e#685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSession tagging\u003c/strong\u003e: Added \u003ccode\u003etag_session()\u003c/code\u003e with Unicode sanitization (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/670\"\u003e#670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eSession renaming\u003c/strong\u003e: Added \u003ccode\u003erename_session()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/668\"\u003e#668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRateLimitEvent\u003c/strong\u003e: Added typed \u003ccode\u003eRateLimitEvent\u003c/code\u003e message (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/648\"\u003e#648\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCLAUDE_CODE_ENTRYPOINT\u003c/strong\u003e: Use default-if-absent semantics to match TS SDK (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFine-grained tool streaming\u003c/strong\u003e: Reverted the env-var workaround from 0.1.48; partial-message delivery is now handled upstream (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/671\"\u003e#671\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal/Other Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated bundled Claude CLI to version 2.1.77\u003c/li\u003e\n\u003cli\u003eAdded macOS x86_64 wheel to the published matrix (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/661\"\u003e#661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpload wheel-check artifacts in CI (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/662\"\u003e#662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: clarified \u003ccode\u003eallowed_tools\u003c/code\u003e as a permission allowlist (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/649\"\u003e#649\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/a7fd631911c9f5269a01e7a5eea5c67d6aa7bce6\"\u003e\u003ccode\u003ea7fd631\u003c/code\u003e\u003c/a\u003e docs: update changelog for v0.1.50\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/cf076a901227644b08ddff2e013b4ceb0fc25e3b\"\u003e\u003ccode\u003ecf076a9\u003c/code\u003e\u003c/a\u003e chore: release v0.1.50\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/2c888329078735883d7a72d34ce9798a5554d771\"\u003e\u003ccode\u003e2c88832\u003c/code\u003e\u003c/a\u003e chore: bump bundled CLI version to 2.1.81\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/13e119a1d951e319995de71d88a17d8296d80097\"\u003e\u003ccode\u003e13e119a\u003c/code\u003e\u003c/a\u003e ci: add daily PyPI storage quota monitoring (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/705\"\u003e#705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/117cffacae4a1a06f911b3b2d695e33257c86ec3\"\u003e\u003ccode\u003e117cffa\u003c/code\u003e\u003c/a\u003e ci: harden PyPI publish against partial-upload failures (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/f144dcc492b4f427439920250f7af886dd0d4d46\"\u003e\u003ccode\u003ef144dcc\u003c/code\u003e\u003c/a\u003e feat: add tag/created_at to SDKSessionInfo + get_session_info (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/667\"\u003e#667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/7251630d0a0016e3d862bee380a4697211091611\"\u003e\u003ccode\u003e7251630\u003c/code\u003e\u003c/a\u003e chore: release v0.1.49 (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/707\"\u003e#707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/40cc6f578f6c317ebf9c740ec2acaf001f8d7d56\"\u003e\u003ccode\u003e40cc6f5\u003c/code\u003e\u003c/a\u003e fix: wait for graceful subprocess shutdown before SIGTERM (\u003ca href=\"https://redirect.github.com/anthropics/claude-agent-sdk-python/issues/642\"\u003e#642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/7e9b5025d51e2af15ee5450513e8913efc3b9fb7\"\u003e\u003ccode\u003e7e9b502\u003c/code\u003e\u003c/a\u003e chore: bump bundled CLI version to 2.1.79\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/commit/ba8dd0d0faf4b68c7ec6afda213535c81af4b851\"\u003e\u003ccode\u003eba8dd0d\u003c/code\u003e\u003c/a\u003e chore: bump bundled CLI version to 2.1.78\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/anthropics/claude-agent-sdk-python/compare/v0.1.48...v0.1.50\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 7.0.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0 (2026-03-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed total coverage computation to always be consistent, regardless of reporting settings.\nPreviously some reports could produce different total counts, and consequently can make --cov-fail-under behave different depending on\nreporting options.\nSee \u003ccode\u003e[#641](https://github.com/pytest-dev/pytest-cov/issues/641) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/641\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove handling of ResourceWarning from sqlite3.\u003c/p\u003e\n\u003cp\u003eThe plugin adds warning filter for sqlite3 \u003ccode\u003eResourceWarning\u003c/code\u003e unclosed database (since 6.2.0).\nIt checks if there is already existing plugin for this message by comparing filter regular expression.\nWhen filter is specified on command line the message is escaped and does not match an expected message.\nA check for an escaped regular expression is added to handle this case.\u003c/p\u003e\n\u003cp\u003eWith this fix one can suppress \u003ccode\u003eResourceWarning\u003c/code\u003e from sqlite3 from command line::\u003c/p\u003e\n\u003cp\u003epytest -W \u0026quot;ignore:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\u0026quot; ...\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to documentation.\nContributed by Art Pelling in \u003ccode\u003e[#718](https://github.com/pytest-dev/pytest-cov/issues/718) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/718\u0026gt;\u003c/code\u003e_ and\n\u0026quot;vivodi\u0026quot; in \u003ccode\u003e[#738](https://github.com/pytest-dev/pytest-cov/issues/738) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/738\u0026gt;\u003c/code\u003e\u003cem\u003e.\nAlso closed \u003ccode\u003e[#736](https://github.com/pytest-dev/pytest-cov/issues/736) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/736\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed some assertions in tests.\nContributed by in Markéta Machová in \u003ccode\u003e[#722](https://github.com/pytest-dev/pytest-cov/issues/722) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/722\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved unnecessary coverage configuration copying (meant as a backup because reporting commands had configuration side-effects before coverage 5.0).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/66c8a526b1246b5eb8fb1bc218878131bc628622\"\u003e\u003ccode\u003e66c8a52\u003c/code\u003e\u003c/a\u003e Bump version: 7.0.0 → 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f7076624784332594aa4cb3585d4757d295db15e\"\u003e\u003ccode\u003ef707662\u003c/code\u003e\u003c/a\u003e Make the examples use pypy 3.11.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/6049a7847872e3139e6c82e93787123df5dc8672\"\u003e\u003ccode\u003e6049a78\u003c/code\u003e\u003c/a\u003e Make context test use the old ctracer (seems the new sysmon tracer behaves di...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/8ebf20bbbc73478b3f8fd36d30237d9ea083f06b\"\u003e\u003ccode\u003e8ebf20b\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/861d30e60d571f97259c6b718b71c819d5dbc3b9\"\u003e\u003ccode\u003e861d30e\u003c/code\u003e\u003c/a\u003e Remove the backup context manager  - shouldn't be needed since coverage 5.0, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/fd4c956014035527f0c3c8d7faef3f8cfdadac7f\"\u003e\u003ccode\u003efd4c956\u003c/code\u003e\u003c/a\u003e Pass the precision on the nulled total (seems that there's some caching goion...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/78c9c4ecb005faf4962fd86ff7bf9c9cce9554d6\"\u003e\u003ccode\u003e78c9c4e\u003c/code\u003e\u003c/a\u003e Only run the 3.9 on older deps.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/4849a922e8be725c662a3d9175da571ace6545dc\"\u003e\u003ccode\u003e4849a92\u003c/code\u003e\u003c/a\u003e Punctuation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/197c35e2f37031fd1927715307ab6eed7cb3d2b7\"\u003e\u003ccode\u003e197c35e\u003c/code\u003e\u003c/a\u003e Update changelog and hopefully I don't forget to publish release again :))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/14dc1c92d44108384e39803888635fdbfc578b7f\"\u003e\u003ccode\u003e14dc1c9\u003c/code\u003e\u003c/a\u003e Update examples to use 3.11 and make the adhoc layout example look a bit more...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v7.0.0...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.6 to 0.15.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.7\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisplay output severity in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23845\"\u003e#23845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't show \u003ccode\u003enoqa\u003c/code\u003e hover for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24040\"\u003e#24040\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Recognize \u003ccode\u003epyrefly:\u003c/code\u003e as a pragma comment (\u003ccode\u003eE501\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24019\"\u003e#24019\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't return code actions for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23905\"\u003e#23905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd company AI policy to contributing guide (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24021\"\u003e#24021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument editor features for Markdown code formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23924\"\u003e#23924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Improve phrasing (\u003ccode\u003ePLC0208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24033\"\u003e#24033\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse PEP 639 license information (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19661\"\u003e#19661\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tmimmanuel\"\u003e\u003ccode\u003e@​tmimmanuel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statxc\"\u003e\u003ccode\u003e@​statxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.7\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.7/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/ruff/releases/download/0.15.7/ruff-installer.ps1 | iex\u0026quot;\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.7\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisplay output severity in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23845\"\u003e#23845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't show \u003ccode\u003enoqa\u003c/code\u003e hover for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24040\"\u003e#24040\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Recognize \u003ccode\u003epyrefly:\u003c/code\u003e as a pragma comment (\u003ccode\u003eE501\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24019\"\u003e#24019\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't return code actions for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23905\"\u003e#23905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd company AI policy to contributing guide (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24021\"\u003e#24021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument editor features for Markdown code formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23924\"\u003e#23924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Improve phrasing (\u003ccode\u003ePLC0208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24033\"\u003e#24033\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse PEP 639 license information (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19661\"\u003e#19661\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tmimmanuel\"\u003e\u003ccode\u003e@​tmimmanuel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statxc\"\u003e\u003ccode\u003e@​statxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0ef39de46c006994fb1e90f7bd4ba09c0b2c1f79\"\u003e\u003ccode\u003e0ef39de\u003c/code\u003e\u003c/a\u003e Bump 0.15.7 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24049\"\u003e#24049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/beb543b5c666be9fd3f13c88df818f202b63e9d0\"\u003e\u003ccode\u003ebeb543b\u003c/code\u003e\u003c/a\u003e [ty] ecosystem-analyzer: Fail on newly panicking projects (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24043\"\u003e#24043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/378fe730929ccd67a7f2426b3012093da814b31d\"\u003e\u003ccode\u003e378fe73\u003c/code\u003e\u003c/a\u003e Don't show noqa hover for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24040\"\u003e#24040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b5665bd18eecab4d3b5ab1256b36904cd99a4c57\"\u003e\u003ccode\u003eb5665bd\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epylint\u003c/code\u003e] Improve phrasing (\u003ccode\u003ePLC0208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24033\"\u003e#24033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6e20f2219020e61eeae29458013d2d3684f75a79\"\u003e\u003ccode\u003e6e20f22\u003c/code\u003e\u003c/a\u003e test: migrate \u003ccode\u003eshow_settings\u003c/code\u003e and \u003ccode\u003eversion\u003c/code\u003e tests to use \u003ccode\u003eCliTest\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23702\"\u003e#23702\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f99b284c1fe1399a82da7f6669467488017d44a7\"\u003e\u003ccode\u003ef99b284\u003c/code\u003e\u003c/a\u003e Drain file watcher events during test setup (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24030\"\u003e#24030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/744c996c35016a8c0e05aa2823f4f822ac7b842c\"\u003e\u003ccode\u003e744c996\u003c/code\u003e\u003c/a\u003e [ty] Filter out unsatisfiable inference attempts during generic call narrowin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/16160958bdafb6106b6fffc72ffe2e4db0c0ac33\"\u003e\u003ccode\u003e1616095\u003c/code\u003e\u003c/a\u003e [ty] Avoid inferring intersection types for call arguments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23933\"\u003e#23933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7f275f431bf8c60d59601b74d441e9f4bef89f35\"\u003e\u003ccode\u003e7f275f4\u003c/code\u003e\u003c/a\u003e [ty] Pin mypy_primer in \u003ccode\u003esetup_primer_project.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24020\"\u003e#24020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7255e362e4b171a641222279cd28d2ca88a74fdc\"\u003e\u003ccode\u003e7255e36\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epycodestyle\u003c/code\u003e] Recognize \u003ccode\u003epyrefly:\u003c/code\u003e as a pragma comment (\u003ccode\u003eE501\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24019\"\u003e#24019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.6...0.15.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e` 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)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/shotgun-sh/shotgun/pull/524","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/shotgun-sh%2Fshotgun/issues/524","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/524/packages"}},{"old_version":"4.48.2","new_version":"4.48.3","update_type":"patch","path":null,"pr_created_at":"2026-01-19T18:08:04.000Z","version_change":"4.48.2 → 4.48.3","issue":{"uuid":"3830734724","node_id":"PR_kwDOPUpNZM6-D6Z9","number":196,"state":"open","title":"deps(deps-dev): bump the python-development group with 17 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-19T18:08:04.000Z","updated_at":"2026-01-19T18:08:20.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps-dev): bump","group_name":"python-development","update_count":17,"packages":[{"name":"dependency-injector","old_version":"4.48.2","new_version":"4.48.3","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"flake8-pyproject","old_version":"1.2.3","new_version":"1.2.4","repository_url":"https://github.com/john-hen/Flake8-pyproject"},{"name":"freezegun","old_version":"1.5.3","new_version":"1.5.5","repository_url":"https://github.com/spulec/freezegun"},{"name":"ipython","old_version":"9.4.0","new_version":"9.9.0","repository_url":"https://github.com/ipython/ipython"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.5.1","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"pyfakefs","old_version":"5.10.2","new_version":"6.0.0","repository_url":"https://github.com/pytest-dev/pyfakefs"},{"name":"pytest-asyncio","old_version":"1.2.0","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pytest-cov","old_version":"6.1.1","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pytest-deadfixtures","old_version":"2.2.1","new_version":"3.1.0","repository_url":"https://github.com/jllorencetti/pytest-deadfixtures"},{"name":"pytest-mock","old_version":"3.14.1","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-randomly","old_version":"3.16.0","new_version":"4.0.1","repository_url":"https://github.com/pytest-dev/pytest-randomly"},{"name":"pytest-reportportal","old_version":"5.5.2","new_version":"5.6.0","repository_url":"https://github.com/reportportal/agent-python-pytest"},{"name":"pytest-xdist","old_version":"3.6.1","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"responses","old_version":"0.25.7","new_version":"0.25.8","repository_url":"https://github.com/getsentry/responses"},{"name":"ruff","old_version":"0.12.11","new_version":"0.14.13","repository_url":"https://github.com/astral-sh/ruff"},{"name":"typing-extensions","old_version":"4.13.2","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"wemake-python-styleguide","old_version":"1.3.0","new_version":"1.5.0","repository_url":"https://github.com/wemake-services/wemake-python-styleguide"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-development group with 17 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [dependency-injector](https://github.com/ets-labs/python-dependency-injector) | `4.48.2` | `4.48.3` |\n| [flake8-pyproject](https://github.com/john-hen/Flake8-pyproject) | `1.2.3` | `1.2.4` |\n| [freezegun](https://github.com/spulec/freezegun) | `1.5.3` | `1.5.5` |\n| [ipython](https://github.com/ipython/ipython) | `9.4.0` | `9.9.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.5.1` |\n| [pyfakefs](https://github.com/pytest-dev/pyfakefs) | `5.10.2` | `6.0.0` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.2.0` | `1.3.0` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.1.1` | `7.0.0` |\n| [pytest-deadfixtures](https://github.com/jllorencetti/pytest-deadfixtures) | `2.2.1` | `3.1.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.1` | `3.15.1` |\n| [pytest-randomly](https://github.com/pytest-dev/pytest-randomly) | `3.16.0` | `4.0.1` |\n| [pytest-reportportal](https://github.com/reportportal/agent-python-pytest) | `5.5.2` | `5.6.0` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.6.1` | `3.8.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.7` | `0.25.8` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.12.11` | `0.14.13` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.13.2` | `4.15.0` |\n| [wemake-python-styleguide](https://github.com/wemake-services/wemake-python-styleguide) | `1.3.0` | `1.5.0` |\n\nUpdates `dependency-injector` from 4.48.2 to 4.48.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.48.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix providers.Resource missing overloads for AbstractContextManager and AbstractAsyncContextManager by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/927\"\u003eets-labs/python-dependency-injector#927\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFast depends v3 compatibility fix by \u003ca href=\"https://github.com/AndrianEquestrian\"\u003e\u003ccode\u003e@​AndrianEquestrian\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/933\"\u003eets-labs/python-dependency-injector#933\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow explicit typing on selector using TypeVar with default Any by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/932\"\u003eets-labs/python-dependency-injector#932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert_type for Aggregate and Callable by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/935\"\u003eets-labs/python-dependency-injector#935\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eAnnotated\u003c/code\u003e marker to be anywhere in the annotation list. by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/939\"\u003eets-labs/python-dependency-injector#939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/927\"\u003eets-labs/python-dependency-injector#927\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/939\"\u003eets-labs/python-dependency-injector#939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.3\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1510a8479732229bd851f74b9cf28520f59760d7\"\u003e\u003ccode\u003e1510a84\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/51f818720211f7257d0372bda37372f067a3347d\"\u003e\u003ccode\u003e51f8187\u003c/code\u003e\u003c/a\u003e Allow annotated marker to be anywhere in the annotation list (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/244deee75ff87c43e92b81ccbe0a062ad8f44c3d\"\u003e\u003ccode\u003e244deee\u003c/code\u003e\u003c/a\u003e Retrofit assert_type for Aggregate and Callable (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/d72d07caf751669d6d40e7fc12a2aa97816e6069\"\u003e\u003ccode\u003ed72d07c\u003c/code\u003e\u003c/a\u003e Improve type annotations in providers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/009a86de2c4a44f747e4499b1ccdf475dd449ab9\"\u003e\u003ccode\u003e009a86d\u003c/code\u003e\u003c/a\u003e Imporve dict typings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/18e32521a00e54113fa442b2b0b506d5ca109609\"\u003e\u003ccode\u003e18e3252\u003c/code\u003e\u003c/a\u003e Allow explicit typing on Selector using TypeVar with default Any (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/932\"\u003e#932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/059f78b27ccecabc5f8cf68f181e3253002c8f34\"\u003e\u003ccode\u003e059f78b\u003c/code\u003e\u003c/a\u003e Fix FastDepends v3 compatibility (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/933\"\u003e#933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/9d3a43271e4cb3802a8fdf504656e126b99e0af8\"\u003e\u003ccode\u003e9d3a432\u003c/code\u003e\u003c/a\u003e Fix providers.Resource missing overloads for AbstractContextManager and Abstr...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.2...4.48.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flake8-pyproject` from 1.2.3 to 1.2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/john-hen/Flake8-pyproject/releases\"\u003eflake8-pyproject's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.2.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixes typo in name of meta variable in \u003ccode\u003e--toml-config\u003c/code\u003e help message. (\u003ca href=\"https://redirect.github.com/john-hen/Flake8-pyproject/issues/21\"\u003e#21\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRegisters GitHub repo as trusted publisher for PyPI releases. (\u003ca href=\"https://redirect.github.com/john-hen/Flake8-pyproject/issues/38\"\u003e#38\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/3c516a9319beee324f9a200dfb4e08677de4a63f\"\u003e\u003ccode\u003e3c516a9\u003c/code\u003e\u003c/a\u003e Bumped version to 1.2.4.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/df70f19558f784eb0cb7988440735d56f53f3cae\"\u003e\u003ccode\u003edf70f19\u003c/code\u003e\u003c/a\u003e Added GitHub workflow for releases on PyPI.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/d46e99c695149cd860a918c354de0d1d89166b7e\"\u003e\u003ccode\u003ed46e99c\u003c/code\u003e\u003c/a\u003e Only run scheduled test weekly instead of nightly.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/da0b9ed7d586490aff8503e38f2d481c1706bdee\"\u003e\u003ccode\u003eda0b9ed\u003c/code\u003e\u003c/a\u003e Added link to GitHub releases as a project URL.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/8e4b87fbe7291687f41b11180c8b3ae486ac538e\"\u003e\u003ccode\u003e8e4b87f\u003c/code\u003e\u003c/a\u003e Cosmetic changes to code format of dev tools in \u003ccode\u003etools\u003c/code\u003e folder.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/4227bd4a987b66a9ab46f0b4e04b098e388598e7\"\u003e\u003ccode\u003e4227bd4\u003c/code\u003e\u003c/a\u003e Use longer names for dev tools in \u003ccode\u003etools\u003c/code\u003e folder.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/3866f48fbcd63231622f54e848268273605be1a8\"\u003e\u003ccode\u003e3866f48\u003c/code\u003e\u003c/a\u003e Mention early on that we need to be called in \u003ccode\u003epyproject.toml\u003c/code\u003e folder.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/40bf63915dabd85a53a7d06c24232a3b278c4b25\"\u003e\u003ccode\u003e40bf639\u003c/code\u003e\u003c/a\u003e Removed configuration and documentation of pre-commit hook.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/9df7abb5a4b1b25f032c7d3f06fd3f074424c471\"\u003e\u003ccode\u003e9df7abb\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 in the github-actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/john-hen/Flake8-pyproject/commit/2c230622c7e81e3f2f6cd632272c92fd6bdda83b\"\u003e\u003ccode\u003e2c23062\u003c/code\u003e\u003c/a\u003e Fixed reporting of code coverage.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/john-hen/Flake8-pyproject/compare/1.2.3...1.2.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `freezegun` from 1.5.3 to 1.5.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/spulec/freezegun/blob/master/CHANGELOG\"\u003efreezegun's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.5.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow parametrized arguments called 'func' (Broken in 1.5.4)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.5.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: Ability to yield fixtures (broken in 1.5.3)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/c9bf52c5aa12ea1b5b8647a136a92504ea071f2f\"\u003e\u003ccode\u003ec9bf52c\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/0f2bd7ed8b420da73372f4cbb0207b777caa66e9\"\u003e\u003ccode\u003e0f2bd7e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/582\"\u003e#582\u003c/a\u003e from spulec/fixture-called-func\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/a6080557cbcbe4891843934c1334430bb1c5ead7\"\u003e\u003ccode\u003ea608055\u003c/code\u003e\u003c/a\u003e Allow parametrized arguments with name 'func'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/2bb47113a5f9f290d26630c92732e58f49557179\"\u003e\u003ccode\u003e2bb4711\u003c/code\u003e\u003c/a\u003e Increase version number\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/7599eeea16b8f206e881892dc104128a5b36de82\"\u003e\u003ccode\u003e7599eee\u003c/code\u003e\u003c/a\u003e Add 1.5.4 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/0d00e7ddd9ad33fc63fbed29af17853b18bc3c61\"\u003e\u003ccode\u003e0d00e7d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/spulec/freezegun/issues/579\"\u003e#579\u003c/a\u003e from zsh8/decorate_generator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/spulec/freezegun/commit/10c93f2d6c98f82e54470b05144cd0f17d3e1b46\"\u003e\u003ccode\u003e10c93f2\u003c/code\u003e\u003c/a\u003e fix: preserve functionality in pytest yield fixtures\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/spulec/freezegun/compare/1.5.3...1.5.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ipython` from 9.4.0 to 9.9.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/0c28fe5821b85b091bf5693ff5ba3eda7bcc49ec\"\u003e\u003ccode\u003e0c28fe5\u003c/code\u003e\u003c/a\u003e release 9.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/b33b1341ae21649744d45934b50697218af86e40\"\u003e\u003ccode\u003eb33b134\u003c/code\u003e\u003c/a\u003e whats new 9.9 (\u003ca href=\"https://redirect.github.com/ipython/ipython/issues/15113\"\u003e#15113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/3841c05af036bdbc31abbb9d012795c2a50bf71f\"\u003e\u003ccode\u003e3841c05\u003c/code\u003e\u003c/a\u003e whats new 99\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/0423da85d0eecfb7dad4d3b0f714b4c2376cd439\"\u003e\u003ccode\u003e0423da8\u003c/code\u003e\u003c/a\u003e Stop assuming that memory addresses are signed (\u003ca href=\"https://redirect.github.com/ipython/ipython/issues/15111\"\u003e#15111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/4d0cb19f4724133b102eca3b72b353125efa66ba\"\u003e\u003ccode\u003e4d0cb19\u003c/code\u003e\u003c/a\u003e Stop assuming that memory addresses are signed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/4d71bcf89fe04107f6b1ecb0cf52c047c13c31c0\"\u003e\u003ccode\u003e4d71bcf\u003c/code\u003e\u003c/a\u003e Fix completions for methods starting with \u003ccode\u003e_\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/ipython/ipython/issues/15106\"\u003e#15106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/28d83b9ef7054d8603a7d2d0466cd656b2df0778\"\u003e\u003ccode\u003e28d83b9\u003c/code\u003e\u003c/a\u003e fix-test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/74bf6d080d6a6cb917c44c45e54aa6620bcb3718\"\u003e\u003ccode\u003e74bf6d0\u003c/code\u003e\u003c/a\u003e add-end-to-end-test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/e62c4ba60fb720fe46758dd5f60f179a7e3f55cb\"\u003e\u003ccode\u003ee62c4ba\u003c/code\u003e\u003c/a\u003e fix-completions-for-private-attr\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/11e1f400eecbfa12bbf55cdfff758a256d41d34e\"\u003e\u003ccode\u003e11e1f40\u003c/code\u003e\u003c/a\u003e Add prompt_toolkit's unix_word_rubout to assignable commands for shortcuts (#...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ipython/ipython/compare/9.4.0...9.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pre-commit` from 4.2.0 to 4.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/releases\"\u003epre-commit's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epre-commit v4.5.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.5.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.4.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases for \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be deprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epre-commit v4.3.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pre-commit/pre-commit/blob/main/CHANGELOG.md\"\u003epre-commit's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e4.5.1 - 2025-12-16\u003c/h1\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003elanguage: python\u003c/code\u003e with \u003ccode\u003erepo: local\u003c/code\u003e without \u003ccode\u003eadditional_dependencies\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.5.0 - 2025-11-22\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre-commit hazmat\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3585\"\u003e#3585\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.4.0 - 2025-11-08\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--fail-fast\u003c/code\u003e option to \u003ccode\u003epre-commit run\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3528\"\u003e#3528\u003c/a\u003e PR by \u003ca href=\"https://github.com/JulianMaurin\"\u003e\u003ccode\u003e@​JulianMaurin\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpgrade \u003ccode\u003eruby-build\u003c/code\u003e / \u003ccode\u003erbenv\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3566\"\u003e#3566\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3565\"\u003e#3565\u003c/a\u003e issue by \u003ca href=\"https://github.com/MRigal\"\u003e\u003ccode\u003e@​MRigal\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003elanguage: unsupported\u003c/code\u003e / \u003ccode\u003elanguage: unsupported_script\u003c/code\u003e as aliases\nfor \u003ccode\u003elanguage: system\u003c/code\u003e / \u003ccode\u003elanguage: script\u003c/code\u003e (which will eventually be\ndeprecated).\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3577\"\u003e#3577\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdd support docker-in-docker detection for cgroups v2.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3535\"\u003e#3535\u003c/a\u003e PR by \u003ca href=\"https://github.com/br-rhrbacek\"\u003e\u003ccode\u003e@​br-rhrbacek\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3360\"\u003e#3360\u003c/a\u003e issue by \u003ca href=\"https://github.com/JasonAlt\"\u003e\u003ccode\u003e@​JasonAlt\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle when docker gives \u003ccode\u003eSecurityOptions: null\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3537\"\u003e#3537\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3514\"\u003e#3514\u003c/a\u003e issue by \u003ca href=\"https://github.com/jenstroeger\"\u003e\u003ccode\u003e@​jenstroeger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eFix error context for invalid \u003ccode\u003estages\u003c/code\u003e in \u003ccode\u003e.pre-commit-config.yaml\u003c/code\u003e.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3576\"\u003e#3576\u003c/a\u003e PR by \u003ca href=\"https://github.com/asottile\"\u003e\u003ccode\u003e@​asottile\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e4.3.0 - 2025-08-09\u003c/h1\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elanguage: docker\u003c/code\u003e / \u003ccode\u003elanguage: docker_image\u003c/code\u003e: detect rootless docker.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3446\"\u003e#3446\u003c/a\u003e PR by \u003ca href=\"https://github.com/matthewhughes934\"\u003e\u003ccode\u003e@​matthewhughes934\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/1243\"\u003e#1243\u003c/a\u003e issue by \u003ca href=\"https://github.com/dkolepp\"\u003e\u003ccode\u003e@​dkolepp\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: julia\u003c/code\u003e: avoid \u003ccode\u003estartup.jl\u003c/code\u003e when executing hooks.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3496\"\u003e#3496\u003c/a\u003e PR by \u003ca href=\"https://github.com/ericphanson\"\u003e\u003ccode\u003e@​ericphanson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elanguage: dart\u003c/code\u003e: support latest dart versions which require a higher sdk\nlower bound.\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3507\"\u003e#3507\u003c/a\u003e PR by \u003ca href=\"https://github.com/bc-lee\"\u003e\u003ccode\u003e@​bc-lee\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/8a0630ca1aa7f6d5665effe674ebe2022af17919\"\u003e\u003ccode\u003e8a0630c\u003c/code\u003e\u003c/a\u003e v4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fcbc745744377ef2c9fe6a7e1a21c67d797933dc\"\u003e\u003ccode\u003efcbc745\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3597\"\u003e#3597\u003c/a\u003e from pre-commit/empty-setup-py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/51592eececd13b99c40ec477ad8f810799147227\"\u003e\u003ccode\u003e51592ee\u003c/code\u003e\u003c/a\u003e fix python local template when artifact dirs are present\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/67e8faf80baffcb4b79c31b89ca9a413a1cd6776\"\u003e\u003ccode\u003e67e8faf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3596\"\u003e#3596\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/c251e6b6d011b3b262339dc8e109de29b0ff8db1\"\u003e\u003ccode\u003ec251e6b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/98ccafa3ce42b846b9a9be9ed73fbbec7415496d\"\u003e\u003ccode\u003e98ccafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3593\"\u003e#3593\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/48953556d06f8cdb4248002c1a0044e69e0916b3\"\u003e\u003ccode\u003e4895355\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/2cedd58e691f4d3bc6ab266c7d7c28464c3502be\"\u003e\u003ccode\u003e2cedd58\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3588\"\u003e#3588\u003c/a\u003e from pre-commit/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/465192d7de58d569776eaaa818c94cb2b962d436\"\u003e\u003ccode\u003e465192d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pre-commit/pre-commit/commit/fd42f96874279c4f65363bfea5238714419e54d7\"\u003e\u003ccode\u003efd42f96\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pre-commit/pre-commit/issues/3586\"\u003e#3586\u003c/a\u003e from pre-commit/zipapp-sha256-file-not-needed\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pre-commit/pre-commit/compare/v4.2.0...v4.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyfakefs` from 5.10.2 to 6.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pyfakefs/releases\"\u003epyfakefs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epyfakefs release version 6.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eremoves some deprecated functionality\u003c/li\u003e\n\u003cli\u003eremoves support for Python \u0026lt; 3.10\u003c/li\u003e\n\u003cli\u003esee the \u003ca href=\"https://github.com/pytest-dev/pyfakefs/blob/version-6.0/CHANGES.md#version-600-2025-12-21\"\u003erelease notes\u003c/a\u003e for a list of changes\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pyfakefs/blob/main/CHANGES.md\"\u003epyfakefs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://pypi.python.org/pypi/pyfakefs/6.0.0\"\u003eVersion 6.0.0\u003c/a\u003e (2025-12-21)\u003c/h2\u003e\n\u003cp\u003eRemoves some deprecated functionality, removes support for Python \u0026lt; 3.10.\u003c/p\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremoved support for Python versions \u0026lt; 3.10; patch releases based on \u003ccode\u003epyfakefs\u003c/code\u003e 5.10\nsupporting older versions may be made on demand\u003c/li\u003e\n\u003cli\u003eremoved support for patching legacy modules \u003ccode\u003escandir\u003c/code\u003e and \u003ccode\u003epathlib2\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003echanged the default for \u003ccode\u003eFakeFilesystem.shuffle_listdir_results\u003c/code\u003e to \u003ccode\u003eTrue\u003c/code\u003e to reflect\nthe real filesystem behavior\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadded some support for Python 3.15a3\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efixes a problem with \u003ccode\u003ePath\u003c/code\u003e type hints using the pipe symbol in wrapped functions\ninside an \u003ccode\u003efs\u003c/code\u003e dependent fixture (see \u003ca href=\"https://redirect.github.com/pytest-dev/pyfakefs/issues/1242\"\u003e#1242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efixes problem with new \u003ccode\u003ecoverage\u003c/code\u003e in Python 3.14 using the fake filesystem\n(see \u003ca href=\"https://redirect.github.com/pytest-dev/pyfakefs/issues/1245\"\u003e#1245\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadded project information to documentation pages\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInfrastructure\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadded CI tests for Python 3.15\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pyfakefs/commit/fe83300fa947d680afe687386c5d25a4c15819c6\"\u003e\u003ccode\u003efe83300\u003c/code\u003e\u003c/a\u003e Release 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pyfakefs/commit/326eaa377a4acf75ef5e1092778faf905d9329ac\"\u003e\u003ccode\u003e326eaa3\u003c/code\u003e\u003c/a\u003e Pin myst-parser to latest version 4.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pyfakefs/commit/ff7d90820b863726816b229cbe9f9c190ef7298e\"\u003e\u003ccode\u003eff7d908\u003c/code\u003e\u003c/a\u003e Add project info to documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pyfakefs/commit/42ad731dc9665d735d864208c21d862ba691c6a0\"\u003e\u003ccode\u003e42ad731\u003c/code\u003e\u003c/a\u003e Adapt to changes in Python 3.15a3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pyfakefs/commit/7613b9fb0ebb3c3bd15dbc6c089385f8986ef6a0\"\u003e\u003ccode\u003e7613b9f\u003c/code\u003e\u003c/a\u003e Add CI tests for Python 3.15\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pyfakefs/commit/4a4dea86226e8653f3ade74b85f562b0a1b5cc53\"\u003e\u003ccode\u003e4a4dea8\u003c/code\u003e\u003c/a\u003e Make old, deprecated \u0026quot;import py\u0026quot; optional (\u003ca href=\"https://redirect.github.com/pytest-dev/pyfakefs/issues/1257\"\u003e#1257\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pyfakefs/commit/f0794eebd424523eb2bb5d4280106379efebb4c4\"\u003e\u003ccode\u003ef0794ee\u003c/code\u003e\u003c/a\u003e Update furo from 2025.7.19 to 2025.12.19\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pyfakefs/commit/09a128334f49182a70dc8e671f83678e2a7ae9aa\"\u003e\u003ccode\u003e09a1283\u003c/code\u003e\u003c/a\u003e Update pre-commit from 4.5.0 to 4.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pyfakefs/commit/57e6dfeef6131665816121bf721135996b11aec5\"\u003e\u003ccode\u003e57e6dfe\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pyfakefs/commit/722ab00af67871af59bf28bb8c9c97931b75f016\"\u003e\u003ccode\u003e722ab00\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4 to 5\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pyfakefs/compare/v5.10.2...v6.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-asyncio` from 1.2.0 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/releases\"\u003epytest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epytest-asyncio 1.3.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.3.0\"\u003e1.3.0\u003c/a\u003e - 2025-11-10\u003c/h1\u003e\n\u003ch2\u003eRemoved\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.9 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1278\"\u003e#1278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for pytest 9 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1279\"\u003e#1279\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTested Python versions include free threaded Python 3.14t (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1274\"\u003e#1274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTests are run in the same pytest process, instead of spawning a subprocess with \u003ccode\u003epytest.Pytester.runpytest_subprocess\u003c/code\u003e. This prevents the test suite from accidentally using a system installation of pytest-asyncio, which could result in test errors. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1275\"\u003e#1275\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/2e9695fcf8c5c514f30f57b7d14ab83846357b96\"\u003e\u003ccode\u003e2e9695f\u003c/code\u003e\u003c/a\u003e docs: Compile changelog for v1.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/dd0e9ba3fa672fd6bf375004319742f8d3a50e12\"\u003e\u003ccode\u003edd0e9ba\u003c/code\u003e\u003c/a\u003e docs: Reference correct issue in news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4c31abe5bf46bca3c9bdc7b18405f3deba4145d0\"\u003e\u003ccode\u003e4c31abe\u003c/code\u003e\u003c/a\u003e Build(deps): Bump nh3 from 0.3.1 to 0.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/13e94770d7bb146c329ae0e02486c0a6b38f3772\"\u003e\u003ccode\u003e13e9477\u003c/code\u003e\u003c/a\u003e Link to migration guides from changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4d2cf3c36f47d7c4d563d401cdf229b35da34fbe\"\u003e\u003ccode\u003e4d2cf3c\u003c/code\u003e\u003c/a\u003e tests: handle Python 3.14 DefaultEventLoopPolicy deprecation warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/ee3549b6efb729b934e370e2be8040b25b034010\"\u003e\u003ccode\u003eee3549b\u003c/code\u003e\u003c/a\u003e test: Remove obsolete test for the event_loop fixture.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/7a67c82c5ae548f0968438e9dfa0f282d51c4597\"\u003e\u003ccode\u003e7a67c82\u003c/code\u003e\u003c/a\u003e tests: Fix failing test by preventing warning conversion to error.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/a17b689a750d05b6fc9369f5fb2b06baaba83536\"\u003e\u003ccode\u003ea17b689\u003c/code\u003e\u003c/a\u003e test: add pytest config to isolated test directories\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/18afc9df5a3153dc1fbdc4e11a56517ef95480df\"\u003e\u003ccode\u003e18afc9d\u003c/code\u003e\u003c/a\u003e fix(tests): replace runpytest_subprocess with runpytest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/cdc6bd1de75b4738289eafd546f5e27a0bfd3b41\"\u003e\u003ccode\u003ecdc6bd1\u003c/code\u003e\u003c/a\u003e Add support for pytest 9 and drop Python 3.9 support\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/compare/v1.2.0...v1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 6.1.1 to 7.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.0.0 (2025-09-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for subprocesses measurement.\u003c/p\u003e\n\u003cp\u003eIt was a feature added long time ago when coverage lacked a nice way to measure subprocesses created in tests.\nIt relied on a \u003ccode\u003e.pth\u003c/code\u003e file, there was no way to opt-out and it created bad interations\nwith \u003ccode\u003ecoverage's new patch system \u0026lt;https://coverage.readthedocs.io/en/latest/config.html#run-patch\u0026gt;\u003c/code\u003e_ added\nin \u003ccode\u003e7.10 \u0026lt;https://coverage.readthedocs.io/en/7.10.6/changes.html#version-7-10-0-2025-07-24\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eTo migrate to this release you might need to enable the suprocess patch, example for \u003ccode\u003e.coveragerc\u003c/code\u003e:\u003c/p\u003e\n\u003cp\u003e.. code-block:: ini\u003c/p\u003e\n\u003cp\u003e[run]\npatch = subprocess\u003c/p\u003e\n\u003cp\u003eThis release also requires at least coverage 7.10.6.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eSwitched packaging to have metadata completely in \u003ccode\u003epyproject.toml\u003c/code\u003e and use \u003ccode\u003ehatchling \u0026lt;https://pypi.org/project/hatchling/\u0026gt;\u003c/code\u003e_ for\nbuilding.\nContributed by Ofek Lev in \u003ccode\u003e[#551](https://github.com/pytest-dev/pytest-cov/issues/551) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/551\u0026gt;\u003c/code\u003e_\nwith some extras in \u003ccode\u003e[#716](https://github.com/pytest-dev/pytest-cov/issues/716) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/716\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved some not really necessary testing deps like \u003ccode\u003esix\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.3.0 (2025-09-06)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for markdown reports.\nContributed by Marcos Boger in \u003ccode\u003e[#712](https://github.com/pytest-dev/pytest-cov/issues/712) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/712\u0026gt;\u003c/code\u003e_\nand \u003ccode\u003e[#714](https://github.com/pytest-dev/pytest-cov/issues/714) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/714\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eFixed some formatting issues in docs.\nAnonymous contribution in \u003ccode\u003e[#706](https://github.com/pytest-dev/pytest-cov/issues/706) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/706\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.2.1 (2025-06-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a version requirement for pytest's pluggy dependency (1.2.0, released 2023-06-21) that has the required new-style hookwrapper API.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved deprecated license classifier (packaging).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDisabled coverage warnings in two more situations where they have no value:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u0026quot;module-not-measured\u0026quot; in workers\u003c/li\u003e\n\u003cli\u003e\u0026quot;already-imported\u0026quot; in subprocesses\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.2.0 (2025-06-11)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe plugin now adds 3 rules in the filter warnings configuration to prevent common coverage warnings being raised as obscure errors::\u003c/p\u003e\n\u003cp\u003edefault:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\nonce::PytestCovWarning\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/224d8964caad90074a8cf6dc8720b8f70f31629b\"\u003e\u003ccode\u003e224d896\u003c/code\u003e\u003c/a\u003e Bump version: 6.3.0 → 7.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/73424e3999f865eac72e27f09d5fe11b9703cfd6\"\u003e\u003ccode\u003e73424e3\u003c/code\u003e\u003c/a\u003e Cleanup the docs a bit.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/36f1cc2967831dbd4c8aa70086fc86dc495f8b9a\"\u003e\u003ccode\u003e36f1cc2\u003c/code\u003e\u003c/a\u003e Bump pins in template.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f299c590a63a48e51e3ae949993dc7bb1f1d480d\"\u003e\u003ccode\u003ef299c59\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/25f0b2e0cdbc345c0d3e49170f7a328c3e0d805f\"\u003e\u003ccode\u003e25f0b2e\u003c/code\u003e\u003c/a\u003e Update docs/config.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/bb23eacc5531fb8f499213d8420407e0d72f88e3\"\u003e\u003ccode\u003ebb23eac\u003c/code\u003e\u003c/a\u003e Improve configuration docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/a19531e91e1ab753ccf648a2d9bab08a6fddebb9\"\u003e\u003ccode\u003ea19531e\u003c/code\u003e\u003c/a\u003e Switch from build/pre-commit to uv/prek - this should make this faster.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/82f999391073f2fb8ae422af452602f310086a2a\"\u003e\u003ccode\u003e82f9993\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/211b5cd41c29916bc643b4a11b00578ba4fd6fe8\"\u003e\u003ccode\u003e211b5cd\u003c/code\u003e\u003c/a\u003e Fix links.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/97aadd74bcbc00a2078d240e8fe871dd62b83d80\"\u003e\u003ccode\u003e97aadd7\u003c/code\u003e\u003c/a\u003e Update some ci config, reformat and apply some lint fixes.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v6.1.1...v7.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-deadfixtures` from 2.2.1 to 3.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jllorencetti/pytest-deadfixtures/releases\"\u003epytest-deadfixtures's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.0.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds more test cases by \u003ca href=\"https://github.com/burkestar\"\u003e\u003ccode\u003e@​burkestar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/31\"\u003ejllorencetti/pytest-deadfixtures#31\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emove ci from travis to gh-actions by \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/40\"\u003ejllorencetti/pytest-deadfixtures#40\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix flak8 pre-commit url by \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/41\"\u003ejllorencetti/pytest-deadfixtures#41\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for parametrize fixtures by \u003ca href=\"https://github.com/jonatrios\"\u003e\u003ccode\u003e@​jonatrios\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/38\"\u003ejllorencetti/pytest-deadfixtures#38\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 3 to 4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/42\"\u003ejllorencetti/pytest-deadfixtures#42\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump codecov/codecov-action from 3 to 4 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/45\"\u003ejllorencetti/pytest-deadfixtures#45\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/44\"\u003ejllorencetti/pytest-deadfixtures#44\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump codecov/codecov-action from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/50\"\u003ejllorencetti/pytest-deadfixtures#50\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd support 3.12 and 3.13 python, min python set 3.8 by \u003ca href=\"https://github.com/even-even\"\u003e\u003ccode\u003e@​even-even\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/51\"\u003ejllorencetti/pytest-deadfixtures#51\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/53\"\u003ejllorencetti/pytest-deadfixtures#53\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/52\"\u003ejllorencetti/pytest-deadfixtures#52\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun tests on supported Python versions by \u003ca href=\"https://github.com/jairhenrique\"\u003e\u003ccode\u003e@​jairhenrique\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/54\"\u003ejllorencetti/pytest-deadfixtures#54\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd unused fixtures count by \u003ca href=\"https://github.com/Ivan-Feofanov\"\u003e\u003ccode\u003e@​Ivan-Feofanov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/36\"\u003ejllorencetti/pytest-deadfixtures#36\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burkestar\"\u003e\u003ccode\u003e@​burkestar\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/31\"\u003ejllorencetti/pytest-deadfixtures#31\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonatrios\"\u003e\u003ccode\u003e@​jonatrios\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/38\"\u003ejllorencetti/pytest-deadfixtures#38\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/42\"\u003ejllorencetti/pytest-deadfixtures#42\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/even-even\"\u003e\u003ccode\u003e@​even-even\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/51\"\u003ejllorencetti/pytest-deadfixtures#51\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Ivan-Feofanov\"\u003e\u003ccode\u003e@​Ivan-Feofanov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jllorencetti/pytest-deadfixtures/pull/36\"\u003ejllorencetti/pytest-deadfixtures#36\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jllorencetti/pytest-deadfixtures/compare/2.2.1...3.0.0\"\u003ehttps://github.com/jllorencetti/pytest-deadfixtures/compare/2.2.1...3.0.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jllorencetti/pytest-deadfixtures/blob/main/CHANGES.rst\"\u003epytest-deadfixtures's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.1.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Add `deadfixtures_ignore` decorator to ignore specific fixtures from being reported as unused\n\u003cp\u003e3.0.0\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.5\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.8 and 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jllorencetti/pytest-deadfixtures/commit/58fd8179d8cc86130e312888dba20bdb5d28f1e3\"\u003e\u003ccode\u003e58fd817\u003c/code\u003e\u003c/a\u003e Remove license classifier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jllorencetti/pytest-deadfixtures/commit/fef94a5c05632118dd64c3c8daa453bb93f624ae\"\u003e\u003ccode\u003efef94a5\u003c/code\u003e\u003c/a\u003e Add documentation for ignoring specific fixtures\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jllorencetti/pytest-deadfixtures/commit/33a4a02ba6589f9d6b9ee83e56da92d411c0ba48\"\u003e\u003ccode\u003e33a4a02\u003c/code\u003e\u003c/a\u003e Add support for ignoring specific fixtures\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jllorencetti/pytest-deadfixtures/commit/7eae1ae08955c521c8d54c69cb5b51dc633f5408\"\u003e\u003ccode\u003e7eae1ae\u003c/code\u003e\u003c/a\u003e Fixes code format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jllorencetti/pytest-deadfixtures/commit/e6dbe8e20b49ad07ef84dbf7b38a65627d562290\"\u003e\u003ccode\u003ee6dbe8e\u003c/code\u003e\u003c/a\u003e add unused fixtures count\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jllorencetti/pytest-deadfixtures/commit/28605dc26213f4cc557b60cba3c78dc8795bcc4d\"\u003e\u003ccode\u003e28605dc\u003c/code\u003e\u003c/a\u003e Run tests on supported Python versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jllorencetti/pytest-deadfixtures/commit/bdae857bc5e1fd3324037514ada0a953a1fb4c50\"\u003e\u003ccode\u003ebdae857\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jllorencetti/pytest-deadfixtures/commit/f5e6c4a16d93ef7e67721e28556584d2bd0ebc8f\"\u003e\u003ccode\u003ef5e6c4a\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jllorencetti/pytest-deadfixtures/commit/5abe1f11c199d369635c02a5574be1e7f67ab8f0\"\u003e\u003ccode\u003e5abe1f1\u003c/code\u003e\u003c/a\u003e add support 3.12 and 3.13 python, min python set 3.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jllorencetti/pytest-deadfixtures/commit/ff9bf35f14142396972aa00a221d3e6b2eab2ac6\"\u003e\u003ccode\u003eff9bf35\u003c/code\u003e\u003c/a\u003e add support 3.12 and 3.13 python, min python set 3.8\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jllorencetti/pytest-deadfixtures/compare/2.2.1...3.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-mock` from 3.14.1 to 3.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-mock/releases\"\u003epytest-mock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.15.1\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-16\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/529\"\u003e#529\u003c/a\u003e: Fixed \u003ccode\u003eitertools._tee object has no attribute error\u003c/code\u003e -- now \u003ccode\u003eduplicate_iterators=True\u003c/code\u003e must be passed to \u003ccode\u003emocker.spy\u003c/code\u003e to duplicate iterators.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.15.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-04\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 (EOL) is no longer supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/pull/524\"\u003e#524\u003c/a\u003e: Added \u003ccode\u003espy_return_iter\u003c/code\u003e to \u003ccode\u003emocker.spy\u003c/code\u003e, which contains a duplicate of the return value of the spied method if it is an \u003ccode\u003eIterator\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-mock/blob/main/CHANGELOG.rst\"\u003epytest-mock's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.15.1\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-16\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#529](https://github.com/pytest-dev/pytest-mock/issues/529) \u0026lt;https://github.com/pytest-dev/pytest-mock/issues/529\u0026gt;\u003c/code\u003e_: Fixed \u003ccode\u003eitertools._tee object has no attribute error\u003c/code\u003e -- now \u003ccode\u003eduplicate_iterators=True\u003c/code\u003e must be passed to \u003ccode\u003emocker.spy\u003c/code\u003e to duplicate iterators.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e3.15.0\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003e2025-09-04\u003c/em\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 (EOL) is no longer supported.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e[#524](https://github.com/pytest-dev/pytest-mock/issues/524) \u0026lt;https://github.com/pytest-dev/pytest-mock/pull/524\u0026gt;\u003c/code\u003e_: Added \u003ccode\u003espy_return_iter\u003c/code\u003e to \u003ccode\u003emocker.spy\u003c/code\u003e, which contains a duplicate of the return value of the spied method if it is an \u003ccode\u003eIterator\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/e1b5c62a38c5a05cae614aef3847f240ba50d269\"\u003e\u003ccode\u003ee1b5c62\u003c/code\u003e\u003c/a\u003e Release 3.15.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/184eb190d6be417f5f33727bcbc9704909479498\"\u003e\u003ccode\u003e184eb19\u003c/code\u003e\u003c/a\u003e Set \u003ccode\u003espy_return_iter\u003c/code\u003e only when explicitly requested (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/537\"\u003e#537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/4fa0088a0aa85eefb1313bd97adf43889bf1f647\"\u003e\u003ccode\u003e4fa0088\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/536\"\u003e#536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/f5aff33ce71ed4620acc43dc41cb3b198bcf4cb0\"\u003e\u003ccode\u003ef5aff33\u003c/code\u003e\u003c/a\u003e Fix test failure with pytest 8+ and verbose mode (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/535\"\u003e#535\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/adc41873c9d6aa69b87e3f108c93a29c847869aa\"\u003e\u003ccode\u003eadc4187\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 in the github-actions group (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/533\"\u003e#533\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/95ad5700609aae73c6f767b8cc2ccfb2483e0f5c\"\u003e\u003ccode\u003e95ad570\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/532\"\u003e#532\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/e696bf02c199b1f7d0c48adb450f40e5a75b699a\"\u003e\u003ccode\u003ee696bf0\u003c/code\u003e\u003c/a\u003e Fix standalone mock support (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/5b29b03ce9581cfcd867dd6c04a970fb2c861291\"\u003e\u003ccode\u003e5b29b03\u003c/code\u003e\u003c/a\u003e Fix gen-release-notes script\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/7d22ef4e560351832e60687d8bd15ebe2785ff3b\"\u003e\u003ccode\u003e7d22ef4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-mock/issues/528\"\u003e#528\u003c/a\u003e from pytest-dev/release-3.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-mock/commit/90b29f89e2086c139a7b4fea89202faa192ee5a9\"\u003e\u003ccode\u003e90b29f8\u003c/code\u003e\u003c/a\u003e Update CHANGELOG for 3.15.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-mock/compare/v3.14.1...v3.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-randomly` from 3.16.0 to 4.0.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-randomly/blob/main/CHANGELOG.rst\"\u003epytest-randomly's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.0.1 (2025-09-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRemove the random state caching, which would grow without bound, leaking memory in long test runs.\nThe caching was added to slightly speed up re-using the same (final) seed, but since the final seed is now different for each test, it has no effect.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#690](https://github.com/pytest-dev/pytest-randomly/issues/690) \u0026lt;https://github.com/pytest-dev/pytest-randomly/issues/687\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eModify Numpy seed restriction, replacing hashing with a modulo operation.\nThe extra work to hash is unnecessary now that we generate a final seed per test with CRC32.\nThis change saves ~500ns per test when Numpy is installed.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#691](https://github.com/pytest-dev/pytest-randomly/issues/691) \u0026lt;https://github.com/pytest-dev/pytest-randomly/issues/691\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.0.0 (2025-09-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eSupport Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUse a different random seed per test, based on the test ID.\u003c/p\u003e\n\u003cp\u003eThis change should mean that tests exercise more random data values in a given run, and that any randomly-generated identifiers have a lower chance of collision when stored in a shared resource like a database.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003ePR [#687](https://github.com/pytest-dev/pytest-randomly/issues/687) \u0026lt;https://github.com/pytest-dev/pytest-randomly/issues/687\u0026gt;\u003c/code\u003e\u003cstrong\u003e.\nThanks to Bryce Drennan for the suggestion in \u003ccode\u003eIssue [#600](https://github.com/pytest-dev/pytest-randomly/issues/600) \u0026lt;https://github.com/pytest-dev/pytest-randomly/issues/600\u0026gt;\u003c/code\u003e\u003c/strong\u003e and initial implementation in \u003ccode\u003ePR [#617](https://github.com/pytest-dev/pytest-randomly/issues/617) \u0026lt;https://github.com/pytest-dev/pytest-randomly/pull/617\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMove from MD5 to CRC32 for hashing test IDs, as it’s 5x faster and we don’t need cryptographic security.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eIssue [#686](https://github.com/pytest-dev/pytest-randomly/issues/686) \u0026lt;https://github.com/pytest-dev/pytest-randomly/issues/686\u0026gt;\u003c/code\u003e__.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/50de0961ad3479901a153a4a89ff58ca7898b550\"\u003e\u003ccode\u003e50de096\u003c/code\u003e\u003c/a\u003e Version 4.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/f9406ec4452d05a865ee67b83fed58bc8f914bac\"\u003e\u003ccode\u003ef9406ec\u003c/code\u003e\u003c/a\u003e Modify Numpy seed restriction (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/691\"\u003e#691\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/22049aabcd1e19012c878dccd5fb1ad728221331\"\u003e\u003ccode\u003e22049aa\u003c/code\u003e\u003c/a\u003e Remove the random state caching (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/ded2e547566368d8751a13bf6b6e6ac8b509caa2\"\u003e\u003ccode\u003eded2e54\u003c/code\u003e\u003c/a\u003e Version 4.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/cb9b86128c9e79284f1bfad0dbd5d4c5427b5dfc\"\u003e\u003ccode\u003ecb9b861\u003c/code\u003e\u003c/a\u003e Move from MD5 to CRC32 for hashing test IDs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/bd697bd670943c54b8d21e713dea58ab92508d08\"\u003e\u003ccode\u003ebd697bd\u003c/code\u003e\u003c/a\u003e Use a different random seed per test (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/687\"\u003e#687\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/acadf4684fd12e5e9ca14243167f44b8d302f093\"\u003e\u003ccode\u003eacadf46\u003c/code\u003e\u003c/a\u003e Generate default seed on demand (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/685\"\u003e#685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/f818056fa7933f9f08ff6c5cda0d78ecee14d0af\"\u003e\u003ccode\u003ef818056\u003c/code\u003e\u003c/a\u003e Support Python 3.14 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/684\"\u003e#684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/456f7877992809b4e152bf3a356c0a4658275fb7\"\u003e\u003ccode\u003e456f787\u003c/code\u003e\u003c/a\u003e Drop unused import of xdist\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-randomly/commit/e00b7822dff8061d26ff2b4bdf9dc1a3ea823092\"\u003e\u003ccode\u003ee00b782\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-randomly/issues/682\"\u003e#682\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-randomly/compare/3.16.0...4.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-reportportal` from 5.5.2 to 5.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/reportportal/agent-python-pytest/releases\"\u003epytest-reportportal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 5.6.0\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficial \u003ccode\u003ePython 3.14\u003c/code\u003e support, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue \u003ca href=\"https://redirect.github.com/reportportal/agent-python-pytest/issues/396\"\u003e#396\u003c/a\u003e parametrize marker IDs, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCustom log level handling with \u003ccode\u003erp_log_custom_levels\u003c/code\u003e configuration parameter, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClient version updated on \u003ca href=\"https://github.com/reportportal/client-Python/releases/tag/5.7.0\"\u003e5.7.0\u003c/a\u003e, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ePython 3.8\u003c/code\u003e support, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecated \u003ccode\u003eretries\u003c/code\u003e parameter, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 5.5.4\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReturn back deprecated \u003ccode\u003erp_log_batch_payload_size\u003c/code\u003e parameter for sake of backward compatibility, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eNOTE: This is the last agent version which supports Python 3.8\u003c/h1\u003e\n\u003ch2\u003eRelease 5.5.3\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOAuth 2.0 Password Grant authentication, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClient version updated to \u003ca href=\"https://github.com/reportportal/client-Python/releases/tag/5.6.7\"\u003e5.6.7\u003c/a\u003e, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSome configuration parameter names, which are different in the client, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003erp_uuid\u003c/code\u003e param support, as it was deprecated pretty while ago, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/reportportal/agent-python-pytest/blob/develop/CHANGELOG.md\"\u003epytest-reportportal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[5.6.0]\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficial \u003ccode\u003ePython 3.14\u003c/code\u003e support, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue \u003ca href=\"https://redirect.github.com/reportportal/agent-python-pytest/issues/396\"\u003e#396\u003c/a\u003e parametrize marker IDs, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCustom log level handling with \u003ccode\u003erp_log_custom_levels\u003c/code\u003e configuration parameter, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClient version updated on \u003ca href=\"https://github.com/reportportal/client-Python/releases/tag/5.7.0\"\u003e5.7.0\u003c/a\u003e, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ePython 3.8\u003c/code\u003e support, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecated \u003ccode\u003eretries\u003c/code\u003e parameter, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[5.5.4]\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReturn back deprecated \u003ccode\u003erp_log_batch_payload_size\u003c/code\u003e parameter for sake of backward compatibility, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[5.5.3]\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOAuth 2.0 Password Grant authentication, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClient version updated to \u003ca href=\"https://github.com/reportportal/client-Python/releases/tag/5.6.7\"\u003e5.6.7\u003c/a\u003e, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSome configuration parameter names, which are different in the client, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003erp_uuid\u003c/code\u003e param support, as it was deprecated pretty while ago, by \u003ca href=\"https://github.com/HardNorth\"\u003e\u003ccode\u003e@​HardNorth\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/reportportal/agent-python-pytest/commit/5c94b4b8fcdc1dd6473fc6399fe81d74776885bd\"\u003e\u003ccode\u003e5c94b4b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/reportportal/agent-python-pytest/issues/406\"\u003e#406\u003c/a\u003e from reportportal/develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/reportportal/agent-python-pytest/commit/655740c6fc2709c2ccf2f23bd104ec3a3ee0b556\"\u003e\u003ccode\u003e655740c\u003c/code\u003e\u003c/a\u003e Fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/reportportal/agent-python-pytest/commit/a7ac7ce6e6fc61f764f297558a173f3a752d5d82\"\u003e\u003ccode\u003ea7ac7ce\u003c/code\u003e\u003c/a\u003e Fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/reportportal/agent-python-pytest/commit/10c3f461e2911444ad41625322ae11f955e96c22\"\u003e\u003ccode\u003e10c3f46\u003c/code\u003e\u003c/a\u003e CHANGELOG.md update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/reportportal/agent-python-pytest/commit/84dff8f1f4f4dc73a167ddb5a45b55cddbd064fa\"\u003e\u003ccode\u003e84dff8f\u003c/code\u003e\u003c/a\u003e Add custom log level handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/reportportal/agent-python-pytest/commit/f828c91050cfb4fb2bca6808885856c9b1f97a90\"\u003e\u003ccode\u003ef828c91\u003c/code\u003e\u003c/a\u003e Update types\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/reportportal/agent-python-pytest/commit/7c8496a1dae27c0554ea80fec5edcf0dfc435371\"\u003e\u003ccode\u003e7c8496a\u003c/code\u003e\u003c/a\u003e Implements issue \u003ca href=\"https://redirect.github.com/reportportal/agent-python-pytest/issues/396\"\u003e#396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/reportportal/agent-python-pytest/commit/0887b2c9ae2d0153d4fcb7a29c298bbe7f49ca56\"\u003e\u003ccode\u003e0887b2c\u003c/code\u003e\u003c/a\u003e .gitignore update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/reportportal/agent-python-pytest/commit/cb2ecf4f5df8b08584da1a14b86b3be8c78ff8a5\"\u003e\u003ccode\u003ecb2ecf4\u003c/code\u003e\u003c/a\u003e Fix tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/reportportal/agent-python-pytest/commit/c59a1aa49744d2fa768251cb36bf96659572be73\"\u003e\u003ccode\u003ec59a1aa\u003c/code\u003e\u003c/a\u003e Minor version bump, Python 3.8 support remove, deprecated code remove\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/reportportal/agent-python-pytest/compare/5.5.2...5.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-xdist` from 3.6.1 to 3.8.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-xdist/blob/master/CHANGELOG.rst\"\u003epytest-xdist's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003epytest-xdist 3.8.0 (2025-06-30)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e[#1083](https://github.com/pytest-dev/pytest-xdist/issues/1083) \u0026lt;https://github.com/pytest-dev/pytest-xdist/issues/1083\u0026gt;\u003c/code\u003e_: Add \u003ccode\u003e--no-loadscope-reorder\u003c/code\u003e and \u003ccode\u003e--loadscope-reorder\u003c/code\u003e option to control whether to automatically reorder tests in loadscope for tests where relative ordering matters. This only applies when using \u003ccode\u003eloadscope\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eFor example, [test_file_1, test_file_2, ..., test_file_n] are given as input test files, if \u003ccode\u003e--no-loadscope-reorder\u003c/code\u003e is used, for either worker, the \u003ccode\u003etest_file_a\u003c/code\u003e will be executed before \u003ccode\u003etest_file_b\u003c/code\u003e only if \u003ccode\u003ea \u0026lt; b\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThe default behavior is to reorder the tests to maximize the number of tests that can be executed in parallel.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003epytest-xdist 3.7.0 (2025-05-26)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e[#1142](https://github.com/pytest-dev/pytest-xdist/issues/1142) \u0026lt;https://github.com/pytest-dev/pytest-xdist/issues/1142\u0026gt;\u003c/code\u003e_: Added support for Python 3.13.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e[#1144](https://github.com/pytest-dev/pytest-xdist/issues/1144) \u0026lt;https://github.com/pytest-dev/pytest-xdist/issues/1144\u0026gt;\u003c/code\u003e_: The internal \u003ccode\u003esteal\u003c/code\u003e command is now atomic - it unschedules either all requested tests or none.\u003c/p\u003e\n\u003cp\u003eThis is a prerequisite for group/scope support in the \u003ccode\u003eworksteal\u003c/code\u003e scheduler, so test groups won't be broken up incorrectly.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e[#1170](https://github.com/pytest-dev/pytest-xdist/issues/1170) \u0026lt;https://github.com/pytest-dev/pytest-xdist/issues/1170\u0026gt;\u003c/code\u003e_: Add the \u003ccode\u003e--px\u003c/code\u003e arg to create proxy gateways.\u003c/p\u003e\n\u003cp\u003eProxy gateways are passed to additional gateways using the \u003ccode\u003evia\u003c/code\u003e keyword.\nThey can serve as a way to run multiple workers on remote machines.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e[#1200](https://github.com/pytest-dev/pytest-xdist/issues/1200) \u0026lt;https://github.com/pytest-dev/pytest-xdist/issues/1200\u0026gt;\u003c/code\u003e_: Now multiple \u003ccode\u003exdist_group\u003c/code\u003e markers are considered when assigning tests to groups (order does not matter).\u003c/p\u003e\n\u003cp\u003ePreviously, only the last marker would assign a test to a group, but now if a test has multiple \u003ccode\u003exdist_group\u003c/code\u003e marks applied (for example via parametrization or via fixtures), they are merged to make a new group.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRemovals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e[#1162](https://github.com/pytest-dev/pytest-xdist/issues/1162) \u0026lt;https://github.com/pytest-dev/pytest-xdist/issues/1162\u0026gt;\u003c/code\u003e_: Dropped support for EOL Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTrivial Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e[#1092](https://github.com/pytest-dev/pytest-xdist/issues/1092) \u0026lt;https://github.com/pytest-dev/pytest-xdist/issues/1092\u0026gt;\u003c/code\u003e_: Update an error message to better indicate where users should go for more information.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003e[#1190](https://github.com/pytest-dev/pytest-xdist/issues/1190) \u0026lt;https://github.com/pytest-dev/pytest-xdist/issues/1190\u0026gt;\u003c/code\u003e_: Switched to using a SPDX license identifier introduced in PEP 639.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/1e3e4dc16523c8a8f6c67d95a950166420718c99\"\u003e\u003ccode\u003e1e3e4dc\u003c/code\u003e\u003c/a\u003e Release 3.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/600aad575a4e4382855145b0c464d51b8f0b7242\"\u003e\u003ccode\u003e600aad5\u003c/code\u003e\u003c/a\u003e Ensure all xdist group names are strings (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-xdist/issues/1216\"\u003e#1216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/9d7ba5b5fbbbe26793fbfb7cb1903eb69425cf09\"\u003e\u003ccode\u003e9d7ba5b\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--no-loadscope-reorder\u003c/code\u003e and \u003ccode\u003e--loadscope-reorder\u003c/code\u003e options (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-xdist/issues/1217\"\u003e#1217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/532f07fb181bb1546eda79bbe6b46bdb56c699e1\"\u003e\u003ccode\u003e532f07f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-xdist/issues/1210\"\u003e#1210\u003c/a\u003e from pytest-dev/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/0883ad085e0cf039c8ae13eb2789c1076544d225\"\u003e\u003ccode\u003e0883ad0\u003c/code\u003e\u003c/a\u003e Fix Path usage in \u003ccode\u003etest_rsync_roots_no_roots\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/58a51bc14015d211761e44c2bdacab09c3893668\"\u003e\u003ccode\u003e58a51bc\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/59a2ad0150697b9ff837f3ae8dcf6e074d5a114b\"\u003e\u003ccode\u003e59a2ad0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-xdist/issues/1220\"\u003e#1220\u003c/a\u003e from pytest-dev/dependabot/github_actions/github-act...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/d42b9c72044855236c68286ca3bdb34486a05872\"\u003e\u003ccode\u003ed42b9c7\u003c/code\u003e\u003c/a\u003e build(deps): bump hynek/build-and-inspect-python-package\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/ebfcb99072aed3503fda5175245f28895a0204bb\"\u003e\u003ccode\u003eebfcb99\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-xdist/issues/1206\"\u003e#1206\u003c/a\u003e from pytest-dev/release-3.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-xdist/commit/23b7fd6054298a530b02b33d07007b3082a36277\"\u003e\u003ccode\u003e23b7fd6\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-xdist/issues/1207\"\u003e#1207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-xdist/compare/v3.6.1...v3.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `responses` from 0.25.7 to 0.25.8\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/responses/releases\"\u003eresponses's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.25.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where the content type is always recorded as either text/plain or application/json. See \u003ca href=\"https://redirect.github.com/getsentry/responses/issues/770\"\u003e#770\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow asserts on add_callback() matches. See ...\n\n_Description has been truncated_","html_url":"https://github.com/softwareone-platform/mpt-api-python-client/pull/196","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/softwareone-platform%2Fmpt-api-python-client/issues/196","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/196/packages"}},{"old_version":"4.48.2","new_version":"4.48.3","update_type":"patch","path":null,"pr_created_at":"2025-12-22T04:36:55.000Z","version_change":"4.48.2 → 4.48.3","issue":{"uuid":"3752284921","node_id":"PR_kwDOPl_8vc66EBlq","number":230,"state":"closed","title":"chore(deps): bump dependency-injector from 4.48.2 to 4.48.3","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-12-23T22:50:39.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-22T04:36:55.000Z","updated_at":"2025-12-23T22:51:05.000Z","time_to_close":152024,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"dependency-injector","old_version":"4.48.2","new_version":"4.48.3","repository_url":"https://github.com/ets-labs/python-dependency-injector"}],"path":null,"ecosystem":"pip"},"body":"Bumps [dependency-injector](https://github.com/ets-labs/python-dependency-injector) from 4.48.2 to 4.48.3.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.48.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix providers.Resource missing overloads for AbstractContextManager and AbstractAsyncContextManager by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/927\"\u003eets-labs/python-dependency-injector#927\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFast depends v3 compatibility fix by \u003ca href=\"https://github.com/AndrianEquestrian\"\u003e\u003ccode\u003e@​AndrianEquestrian\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/933\"\u003eets-labs/python-dependency-injector#933\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow explicit typing on selector using TypeVar with default Any by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/932\"\u003eets-labs/python-dependency-injector#932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRetrofit assert_type for Aggregate and Callable by \u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/935\"\u003eets-labs/python-dependency-injector#935\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eAnnotated\u003c/code\u003e marker to be anywhere in the annotation list. by \u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/939\"\u003eets-labs/python-dependency-injector#939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/leonarduschen\"\u003e\u003ccode\u003e@​leonarduschen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/927\"\u003eets-labs/python-dependency-injector#927\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/BrianPugh\"\u003e\u003ccode\u003e@​BrianPugh\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/939\"\u003eets-labs/python-dependency-injector#939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.3\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1510a8479732229bd851f74b9cf28520f59760d7\"\u003e\u003ccode\u003e1510a84\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/51f818720211f7257d0372bda37372f067a3347d\"\u003e\u003ccode\u003e51f8187\u003c/code\u003e\u003c/a\u003e Allow annotated marker to be anywhere in the annotation list (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/939\"\u003e#939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/244deee75ff87c43e92b81ccbe0a062ad8f44c3d\"\u003e\u003ccode\u003e244deee\u003c/code\u003e\u003c/a\u003e Retrofit assert_type for Aggregate and Callable (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/935\"\u003e#935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/d72d07caf751669d6d40e7fc12a2aa97816e6069\"\u003e\u003ccode\u003ed72d07c\u003c/code\u003e\u003c/a\u003e Improve type annotations in providers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/009a86de2c4a44f747e4499b1ccdf475dd449ab9\"\u003e\u003ccode\u003e009a86d\u003c/code\u003e\u003c/a\u003e Imporve dict typings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/18e32521a00e54113fa442b2b0b506d5ca109609\"\u003e\u003ccode\u003e18e3252\u003c/code\u003e\u003c/a\u003e Allow explicit typing on Selector using TypeVar with default Any (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/932\"\u003e#932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/059f78b27ccecabc5f8cf68f181e3253002c8f34\"\u003e\u003ccode\u003e059f78b\u003c/code\u003e\u003c/a\u003e Fix FastDepends v3 compatibility (\u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/issues/933\"\u003e#933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/9d3a43271e4cb3802a8fdf504656e126b99e0af8\"\u003e\u003ccode\u003e9d3a432\u003c/code\u003e\u003c/a\u003e Fix providers.Resource missing overloads for AbstractContextManager and Abstr...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.2...4.48.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=dependency-injector\u0026package-manager=pip\u0026previous-version=4.48.2\u0026new-version=4.48.3)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/OmniNode-ai/omnibase_core/pull/230","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/OmniNode-ai%2Fomnibase_core/issues/230","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/230/packages"}},{"old_version":"4.48.1","new_version":"4.48.2","update_type":"patch","path":null,"pr_created_at":"2025-10-13T08:39:58.000Z","version_change":"4.48.1 → 4.48.2","issue":{"uuid":"3509032870","node_id":"PR_kwDON6HsE86taKq6","number":13,"state":"closed","title":"Bump the python-packages group with 2 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-15T08:16:10.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-13T08:39:58.000Z","updated_at":"2025-12-15T08:16:12.000Z","time_to_close":5441772,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-packages","update_count":2,"packages":[{"name":"dependency-injector","old_version":"4.48.1","new_version":"4.48.2","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"psycopg2","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-packages group with 2 updates: [dependency-injector](https://github.com/ets-labs/python-dependency-injector) and [psycopg2](https://github.com/psycopg/psycopg2).\n\nUpdates `dependency-injector` from 4.48.1 to 4.48.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.48.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix grammar in Declarative Container documentation by \u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd warnings for unresolved markers by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\"\u003ehttps://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild ABI3 wheels only for Python\u0026gt;=3.10 by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\"\u003ehttps://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.2\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5a1aef920372da6a95d14865caab10061aea7104\"\u003e\u003ccode\u003e5a1aef9\u003c/code\u003e\u003c/a\u003e Merge branch 'release/4.48.2'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5acddac9c15e87edff76846e8903a3c4552da22b\"\u003e\u003ccode\u003e5acddac\u003c/code\u003e\u003c/a\u003e Add changelog entry for v4.48.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/9f77976a294d7eeda6176610155f1fe0b91eea2d\"\u003e\u003ccode\u003e9f77976\u003c/code\u003e\u003c/a\u003e Fix typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\"\u003e\u003ccode\u003e891f8b4\u003c/code\u003e\u003c/a\u003e Build ABI3 wheels only for Python\u0026gt;=3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/8c2a32213a71c82334d009fbf3ee69dc85221b78\"\u003e\u003ccode\u003e8c2a322\u003c/code\u003e\u003c/a\u003e Add wheels Makefile target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/91a741a6332ba9e0130e3d80b4191b4010f9f726\"\u003e\u003ccode\u003e91a741a\u003c/code\u003e\u003c/a\u003e Bump Cython version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\"\u003e\u003ccode\u003e1222827\u003c/code\u003e\u003c/a\u003e Add warnings for unresolved markers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/759d89e9bdc35f0146361e5ff89fd36e99cc6184\"\u003e\u003ccode\u003e759d89e\u003c/code\u003e\u003c/a\u003e Add reprs to wiring markers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1500a1de364cd97ccebd812a28a9b6f4c344a0ef\"\u003e\u003ccode\u003e1500a1d\u003c/code\u003e\u003c/a\u003e docs(declarative.rst): fix grammar in Declarative Container documentation  (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/7df26d1ac76aabf52f74ce75e5f908ccf28b4898\"\u003e\u003ccode\u003e7df26d1\u003c/code\u003e\u003c/a\u003e docs(declarative.rst): fix grammar in Declarative Container documentation  (#...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e` 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)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/njohnson-oss/altspell/pull/13","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/njohnson-oss%2Faltspell/issues/13","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/13/packages"}},{"old_version":"4.46.0","new_version":"4.48.2","update_type":"minor","path":null,"pr_created_at":"2025-10-06T00:21:39.000Z","version_change":"4.46.0 → 4.48.2","issue":{"uuid":"2888501676","node_id":"PR_kwDON6D7-86sKwms","number":96,"state":"open","title":"pip(deps): bump the all-dependencies group across 1 directory with 24 updates","user":"dependabot[bot]","labels":["dependencies","backend"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-06T00:21:39.000Z","updated_at":"2025-10-06T00:21:40.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"pip(deps): bump","group_name":"all-dependencies","update_count":24,"packages":[{"name":"fastapi","old_version":"0.115.12","new_version":"0.118.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.34.2","new_version":"0.37.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"python-dotenv","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"atlassian-python-api","old_version":"4.0.3","new_version":"4.0.7","repository_url":"https://github.com/atlassian-api/atlassian-python-api"},{"name":"pandas","old_version":"2.2.3","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"pyarrow","old_version":"19.0.1","new_version":"21.0.0","repository_url":"https://github.com/apache/arrow"},{"name":"pydantic","old_version":"2.11.3","new_version":"2.11.10","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.9.1","new_version":"2.11.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"sqlalchemy","old_version":"2.0.40","new_version":"2.0.43","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"alembic","old_version":"1.15.2","new_version":"1.16.5","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"psycopg","old_version":"3.2.6","new_version":"3.2.10","repository_url":"https://github.com/psycopg/psycopg"},{"name":"psycopg-c","old_version":"3.2.6","new_version":"3.2.10","repository_url":"https://github.com/psycopg/psycopg"},{"name":"greenlet","old_version":"3.2.0","new_version":"3.2.4","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"python-jose","old_version":"3.4.0","new_version":"3.5.0"},{"name":"dependency-injector","old_version":"4.46.0","new_version":"4.48.2","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"black","old_version":"25.1.0","new_version":"25.9.0","repository_url":"https://github.com/psf/black"},{"name":"flake8","old_version":"7.2.0","new_version":"7.3.0","repository_url":"https://github.com/pycqa/flake8"},{"name":"flake8-import-order","old_version":"0.18.2","new_version":"0.19.2","repository_url":"https://github.com/PyCQA/flake8-import-order"},{"name":"isort","old_version":"6.0.1","new_version":"6.1.0","repository_url":"https://github.com/PyCQA/isort"},{"name":"pytest","old_version":"8.3.5","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"0.26.0","new_version":"1.2.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pytest-cov","old_version":"6.1.1","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"yamllint","old_version":"1.37.0","new_version":"1.37.1","repository_url":"https://github.com/adrienverge/yamllint"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-dependencies group with 24 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.115.12` | `0.118.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.34.2` | `0.37.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.0` | `1.1.1` |\n| [atlassian-python-api](https://github.com/atlassian-api/atlassian-python-api) | `4.0.3` | `4.0.7` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.2.3` | `2.3.3` |\n| [pyarrow](https://github.com/apache/arrow) | `19.0.1` | `21.0.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.11.10` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.9.1` | `2.11.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.43` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.16.5` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.2.10` |\n| [psycopg-c](https://github.com/psycopg/psycopg) | `3.2.6` | `3.2.10` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.0` | `3.2.4` |\n| [python-jose[cryptography]](https://github.com/mpdavis/python-jose) | `3.4.0` | `3.5.0` |\n| [dependency-injector](https://github.com/ets-labs/python-dependency-injector) | `4.46.0` | `4.48.2` |\n| [black](https://github.com/psf/black) | `25.1.0` | `25.9.0` |\n| [flake8](https://github.com/pycqa/flake8) | `7.2.0` | `7.3.0` |\n| [flake8-import-order](https://github.com/PyCQA/flake8-import-order) | `0.18.2` | `0.19.2` |\n| [isort](https://github.com/PyCQA/isort) | `6.0.1` | `6.1.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `8.4.2` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.26.0` | `1.2.0` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.1.1` | `7.0.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.3.0` |\n| [yamllint](https://github.com/adrienverge/yamllint) | `1.37.0` | `1.37.1` |\n\n\nUpdates `fastapi` from 0.115.12 to 0.118.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.118.0\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix support for \u003ccode\u003eStreamingResponse\u003c/code\u003es with dependencies with \u003ccode\u003eyield\u003c/code\u003e or \u003ccode\u003eUploadFile\u003c/code\u003es, close after the response is done. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14099\"\u003e#14099\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBefore FastAPI 0.118.0, if you used a dependency with \u003ccode\u003eyield\u003c/code\u003e, it would run the exit code after the \u003cem\u003epath operation function\u003c/em\u003e returned but right before sending the response.\u003c/p\u003e\n\u003cp\u003eThis change also meant that if you returned a \u003ccode\u003eStreamingResponse\u003c/code\u003e, the exit code of the dependency with \u003ccode\u003eyield\u003c/code\u003e would have been already run.\u003c/p\u003e\n\u003cp\u003eFor example, if you had a database session in a dependency with \u003ccode\u003eyield\u003c/code\u003e, the \u003ccode\u003eStreamingResponse\u003c/code\u003e would not be able to use that session while streaming data because the session would have already been closed in the exit code after \u003ccode\u003eyield\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eThis behavior was reverted in 0.118.0, to make the exit code after \u003ccode\u003eyield\u003c/code\u003e be executed after the response is sent.\u003c/p\u003e\n\u003cp\u003eYou can read more about it in the docs for \u003ca href=\"https://fastapi.tiangolo.com/advanced/advanced-dependencies#dependencies-with-yield-httpexception-except-and-background-tasks\"\u003eAdvanced Dependencies - Dependencies with \u003ccode\u003eyield\u003c/code\u003e, \u003ccode\u003eHTTPException\u003c/code\u003e, \u003ccode\u003eexcept\u003c/code\u003e and Background Tasks\u003c/a\u003e. Including what you could do if you wanted to close a database session earlier, before returning the response to the client.\u003c/p\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update \u003ccode\u003etutorial/security/oauth2-jwt/\u003c/code\u003e to use \u003ccode\u003epwdlib\u003c/code\u003e with Argon2 instead of \u003ccode\u003epasslib\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13917\"\u003e#13917\u003c/a\u003e by \u003ca href=\"https://github.com/Neizvestnyj\"\u003e\u003ccode\u003e@​Neizvestnyj\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✏️ Fix typos in OAuth2 password request forms. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14112\"\u003e#14112\u003c/a\u003e by \u003ca href=\"https://github.com/alv2017\"\u003e\u003ccode\u003e@​alv2017\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update contributing guidelines for installing requirements. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14095\"\u003e#14095\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Sync German docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14098\"\u003e#14098\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ [pre-commit.ci] pre-commit autoupdate. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14103\"\u003e#14103\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e♻️ Refactor sponsor image handling. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14102\"\u003e#14102\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix sponsor display issue by hiding element on image error. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14097\"\u003e#14097\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Hide sponsor badge when sponsor image is not displayed. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14096\"\u003e#14096\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.117.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix validation error when \u003ccode\u003eFile\u003c/code\u003e is declared after \u003ccode\u003eForm\u003c/code\u003e parameter. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/11194\"\u003e#11194\u003c/a\u003e by \u003ca href=\"https://github.com/thomasleveil\"\u003e\u003ccode\u003e@​thomasleveil\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.117.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨  Allow \u003ccode\u003eNone\u003c/code\u003e as return type for bodiless responses. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/9425\"\u003e#9425\u003c/a\u003e by \u003ca href=\"https://github.com/hofrob\"\u003e\u003ccode\u003e@​hofrob\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Allow array values for OpenAPI schema \u003ccode\u003etype\u003c/code\u003e field. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13639\"\u003e#13639\u003c/a\u003e by \u003ca href=\"https://github.com/sammasak\"\u003e\u003ccode\u003e@​sammasak\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add OpenAPI \u003ccode\u003eexternal_docs\u003c/code\u003e parameter to \u003ccode\u003eFastAPI\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13713\"\u003e#13713\u003c/a\u003e by \u003ca href=\"https://github.com/cmtoro\"\u003e\u003ccode\u003e@​cmtoro\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⚡️ Fix \u003ccode\u003edefault_factory\u003c/code\u003e for response model field with Pydantic V1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/9704\"\u003e#9704\u003c/a\u003e by \u003ca href=\"https://github.com/vvanglro\"\u003e\u003ccode\u003e@​vvanglro\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix inconsistent processing of model docstring formfeed char with Pydantic V1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/6039\"\u003e#6039\u003c/a\u003e by \u003ca href=\"https://github.com/MaxwellPayne\"\u003e\u003ccode\u003e@​MaxwellPayne\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003ejsonable_encoder\u003c/code\u003e alters \u003ccode\u003ejson_encoders\u003c/code\u003e of Pydantic v1 objects. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/4972\"\u003e#4972\u003c/a\u003e by \u003ca href=\"https://github.com/aboubacs\"\u003e\u003ccode\u003e@​aboubacs\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/333f1ba737be6507fc707278f6b69cf1f81efdc1\"\u003e\u003ccode\u003e333f1ba\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.118.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1d5168a4a1293fbc44799fbab615a120c6fdb85e\"\u003e\u003ccode\u003e1d5168a\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/bfa54b406d298155edbdfe8fdd173479857d5ad6\"\u003e\u003ccode\u003ebfa54b4\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e329d78f866a12893699f786f1209a666e1688e3\"\u003e\u003ccode\u003ee329d78\u003c/code\u003e\u003c/a\u003e 🐛 Fix support for \u003ccode\u003eStreamingResponse\u003c/code\u003es with dependencies with \u003ccode\u003eyield\u003c/code\u003e or `Upl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/861b22c40897a03d2d7e5926923d962121ed5e2e\"\u003e\u003ccode\u003e861b22c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/efdafa43613f084d198e51f6858e8610beddb5ed\"\u003e\u003ccode\u003eefdafa4\u003c/code\u003e\u003c/a\u003e 📝 Update \u003ccode\u003etutorial/security/oauth2-jwt/\u003c/code\u003e to use \u003ccode\u003epwdlib\u003c/code\u003e with Argon2 instead ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/450a334253b1426aab08b4dea17b16ba8b4c098c\"\u003e\u003ccode\u003e450a334\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3eb2ee7510905447a36abe628708f102e09cfa59\"\u003e\u003ccode\u003e3eb2ee7\u003c/code\u003e\u003c/a\u003e ✏️ Fix typos in OAuth2 password request forms (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14112\"\u003e#14112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/287eb316df5b7c35dd1e5da27ca2a8d345bee8d1\"\u003e\u003ccode\u003e287eb31\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cca3341cb93cb4d0267dd8e862db9235aeaac11c\"\u003e\u003ccode\u003ecca3341\u003c/code\u003e\u003c/a\u003e 🌐 Sync German docs (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14098\"\u003e#14098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.115.12...0.118.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.34.2 to 0.37.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.37.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e setting by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2711\"\u003eKludex/uvicorn#2711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e by \u003ca href=\"https://github.com/rnv812\"\u003e\u003ccode\u003e@​rnv812\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2676\"\u003eKludex/uvicorn#2676\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LincolnPuzey\"\u003e\u003ccode\u003e@​LincolnPuzey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2669\"\u003eKludex/uvicorn#2669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rnv812\"\u003e\u003ccode\u003e@​rnv812\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2676\"\u003eKludex/uvicorn#2676\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.36.1...0.37.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.36.1...0.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.36.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2709\"\u003eKludex/uvicorn#2709\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.36.0...0.36.1\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.36.0...0.36.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.36.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport custom IOLOOPs by \u003ca href=\"https://github.com/gnir-work\"\u003e\u003ccode\u003e@​gnir-work\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2435\"\u003eKludex/uvicorn#2435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow to provide importable string in \u003ccode\u003e--http\u003c/code\u003e, \u003ccode\u003e--ws\u003c/code\u003e and \u003ccode\u003e--loop\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2658\"\u003eKludex/uvicorn#2658\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eNew Contributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gnir-work\"\u003e\u003ccode\u003e@​gnir-work\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2435\"\u003eKludex/uvicorn#2435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/musicinmybrain\"\u003e\u003ccode\u003e@​musicinmybrain\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2659\"\u003eKludex/uvicorn#2659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/secrett2633\"\u003e\u003ccode\u003e@​secrett2633\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2684\"\u003eKludex/uvicorn#2684\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.35.0...0.36.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.35.0...0.36.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.35.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eWebSocketsSansIOProtocol\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2540\"\u003eencode/uvicorn#2540\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefine help message for option \u003ccode\u003e--proxy-headers\u003c/code\u003e by \u003ca href=\"https://github.com/zhangyoufu\"\u003e\u003ccode\u003e@​zhangyoufu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2653\"\u003eencode/uvicorn#2653\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zhangyoufu\"\u003e\u003ccode\u003e@​zhangyoufu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2653\"\u003eencode/uvicorn#2653\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/uvicorn/compare/0.34.3...0.35.0\"\u003ehttps://github.com/encode/uvicorn/compare/0.34.3...0.35.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.34.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDon't include \u003ccode\u003ecwd()\u003c/code\u003e when non-empty \u003ccode\u003e--reload-dirs\u003c/code\u003e is passed by \u003ca href=\"https://github.com/stinovlas\"\u003e\u003ccode\u003e@​stinovlas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2598\"\u003eencode/uvicorn#2598\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.37.0 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2711\"\u003e#2711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2676\"\u003e#2676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.1 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.0 (September 20, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport custom IOLOOPs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2435\"\u003e#2435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow to provide importable string in \u003ccode\u003e--http\u003c/code\u003e, \u003ccode\u003e--ws\u003c/code\u003e and \u003ccode\u003e--loop\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2658\"\u003e#2658\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.35.0 (June 28, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eWebSocketsSansIOProtocol\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2540\"\u003e#2540\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefine help message for option \u003ccode\u003e--proxy-headers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2653\"\u003e#2653\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.34.3 (June 1, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't include \u003ccode\u003ecwd()\u003c/code\u003e when non-empty \u003ccode\u003e--reload-dirs\u003c/code\u003e is passed (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2598\"\u003e#2598\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eApply \u003ccode\u003eget_client_addr\u003c/code\u003e formatting to WebSocket logging (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2636\"\u003e#2636\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/4098bcac97aa0fbda2f4e73278fbbe3b128be940\"\u003e\u003ccode\u003e4098bca\u003c/code\u003e\u003c/a\u003e Version 0.37.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2712\"\u003e#2712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/8c057fa3fc407f1e5e58e6bf0b46494732ebfd1f\"\u003e\u003ccode\u003e8c057fa\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2676\"\u003e#2676\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/bbe119e4e83517a230487658f864d3ad67131772\"\u003e\u003ccode\u003ebbe119e\u003c/code\u003e\u003c/a\u003e Add note about \u003ccode\u003e--timeout-keep-alive\u003c/code\u003e being measured in seconds (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2669\"\u003e#2669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/2744f14c9906d90d235f9fcd5289da0c47e4abe4\"\u003e\u003ccode\u003e2744f14\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e setting (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2711\"\u003e#2711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/1dfb0bd885bbb0c466c19eee8bb2001bed59ca8c\"\u003e\u003ccode\u003e1dfb0bd\u003c/code\u003e\u003c/a\u003e Version 0.36.1 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2710\"\u003e#2710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3d0d46a704b772ec68596d8e1c9d9264b1499f34\"\u003e\u003ccode\u003e3d0d46a\u003c/code\u003e\u003c/a\u003e Raise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/ad9e5b90dda248b08afdffd18a02b73a5b9d405c\"\u003e\u003ccode\u003ead9e5b9\u003c/code\u003e\u003c/a\u003e docs: redirect uvicorn.org to uvicorn.dev (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2705\"\u003e#2705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0e3b18c39959ad4ec8bfe6cb7e11c82664aaa702\"\u003e\u003ccode\u003e0e3b18c\u003c/code\u003e\u003c/a\u003e Version 0.36.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2704\"\u003e#2704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/f84661d56eb14bbd29b995af8774c73856e3ce04\"\u003e\u003ccode\u003ef84661d\u003c/code\u003e\u003c/a\u003e chore: drop mention to scripts/publish (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2696\"\u003e#2696\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/dcd7e6c94e87b6ffbce378e4ada3d67654af975d\"\u003e\u003ccode\u003edcd7e6c\u003c/code\u003e\u003c/a\u003e docs: replace uvicorn.org by uvicorn.dev (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2703\"\u003e#2703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.34.2...0.37.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.1.0 to 1.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure find_dotenv work reliably on python 3.13 by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003etheskumar/python-dotenv#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(cli): issue with execvpe on Windows by \u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.1.1] - 2025-06-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCLI: Ensure \u003ccode\u003efind_dotenv\u003c/code\u003e work reliably on python 3.13 by [\u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003e#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI: revert the use of execvpe on Windows by [\u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003e#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/16e660d384b942b11879b44500afbbe021650448\"\u003e\u003ccode\u003e16e660d\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.0 → 1.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/667e82f18d6e5306894c8746c46b1da2d031bd23\"\u003e\u003ccode\u003e667e82f\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/9d85edb3b8652de4601f9ad8a7a49ad9909f898a\"\u003e\u003ccode\u003e9d85edb\u003c/code\u003e\u003c/a\u003e fix(cli): issue with execvpe on Windows (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/566\"\u003e#566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8411987b9301f716245074872afa30646e9b9eb7\"\u003e\u003ccode\u003e8411987\u003c/code\u003e\u003c/a\u003e fix: ensure find_dotenv work reliably on python 3.13 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/563\"\u003e#563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/01f899733de664cda0550207067eb36a1795062f\"\u003e\u003ccode\u003e01f8997\u003c/code\u003e\u003c/a\u003e docs update\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `atlassian-python-api` from 4.0.3 to 4.0.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/releases\"\u003eatlassian-python-api's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.0.7: Bugfix release notes\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSearch endpoint for Jira DC isn't working with /search/jql by \u003ca href=\"https://github.com/FallenAtticus\"\u003e\u003ccode\u003e@​FallenAtticus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1571\"\u003eatlassian-api/atlassian-python-api#1571\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FallenAtticus\"\u003e\u003ccode\u003e@​FallenAtticus\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1571\"\u003eatlassian-api/atlassian-python-api#1571\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/compare/4.0.6...4.0.7\"\u003ehttps://github.com/atlassian-api/atlassian-python-api/compare/4.0.6...4.0.7\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.6: Confluence, Jira Cloud and BB\u003c/h2\u003e\n\u003cp\u003eHi!\nin that path release, adjustments for Confluence, Jira Cloud and Bitbucket\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/a32f6d1f23e3ed9635660554d783e6a2fab72b7d\"\u003eConfluence: get_all_pages_from_space add workaround\u003c/a\u003e \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1547\"\u003eatlassian-api/atlassian-python-api#1547\u003c/a\u003e\n\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/eebf86ec8cc26dfb9299dc70e33d6b4a60e78eda\"\u003eBitbucket: Add AppUser enrollments for User class appears\u003c/a\u003e \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1570\"\u003eatlassian-api/atlassian-python-api#1570\u003c/a\u003e\n[Jira Cloud]: adjustment of jql search](\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/b090c2e9da7de45ab3607a83d4d112e33307fdd2\"\u003ehttps://github.com/atlassian-api/atlassian-python-api/commit/b090c2e9da7de45ab3607a83d4d112e33307fdd2\u003c/a\u003e)\n\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/compare/4.0.5...4.0.6\"\u003ehttps://github.com/atlassian-api/atlassian-python-api/compare/4.0.5...4.0.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.5 Confluence next step for cloud, BB and Jira bugfixes\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Confluence]: Prepare dedicated module by \u003ca href=\"https://github.com/gonchik\"\u003e\u003ccode\u003e@​gonchik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1537\"\u003eatlassian-api/atlassian-python-api#1537\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: add an example to jira_add_comment.py by \u003ca href=\"https://github.com/dunterov\"\u003e\u003ccode\u003e@​dunterov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1540\"\u003eatlassian-api/atlassian-python-api#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Bitbucket] Adding filterText REST parameter for Get pull requests for by \u003ca href=\"https://github.com/thopx14\"\u003e\u003ccode\u003e@​thopx14\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1542\"\u003eatlassian-api/atlassian-python-api#1542\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVisualization for the atlassian-python-api codebase by \u003ca href=\"https://github.com/ivanmilevtues\"\u003e\u003ccode\u003e@​ivanmilevtues\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1543\"\u003eatlassian-api/atlassian-python-api#1543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Confluence] Sanitize attachment filenames to prevent download failures by \u003ca href=\"https://github.com/AntonioContrerasO\"\u003e\u003ccode\u003e@​AntonioContrerasO\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1549\"\u003eatlassian-api/atlassian-python-api#1549\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Doc] [Jira] Update info about jira.get_issue_tree_recursive method by \u003ca href=\"https://github.com/bore-alex\"\u003e\u003ccode\u003e@​bore-alex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1544\"\u003eatlassian-api/atlassian-python-api#1544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Confluence] Update confluence/\u003cstrong\u003einit\u003c/strong\u003e.py with add space permissions by \u003ca href=\"https://github.com/neyrat-salvator\"\u003e\u003ccode\u003e@​neyrat-salvator\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1557\"\u003eatlassian-api/atlassian-python-api#1557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Wrapper ]Update errors.py for JSON-RPC Errors by \u003ca href=\"https://github.com/neyrat-salvator\"\u003e\u003ccode\u003e@​neyrat-salvator\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1564\"\u003eatlassian-api/atlassian-python-api#1564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate license identifier by \u003ca href=\"https://github.com/leifdreizler\"\u003e\u003ccode\u003e@​leifdreizler\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1563\"\u003eatlassian-api/atlassian-python-api#1563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake using session the default by \u003ca href=\"https://github.com/Matthew-Jenkins\"\u003e\u003ccode\u003e@​Matthew-Jenkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1566\"\u003eatlassian-api/atlassian-python-api#1566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Jira] Update jira.py by adding set_issue_status_by_transition_name by \u003ca href=\"https://github.com/neyrat-salvator\"\u003e\u003ccode\u003e@​neyrat-salvator\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1567\"\u003eatlassian-api/atlassian-python-api#1567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Bitbucket] Added Download class to retrieve pipeline-generated artifacts by \u003ca href=\"https://github.com/denisab85\"\u003e\u003ccode\u003e@​denisab85\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1551\"\u003eatlassian-api/atlassian-python-api#1551\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thopx14\"\u003e\u003ccode\u003e@​thopx14\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1542\"\u003eatlassian-api/atlassian-python-api#1542\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ivanmilevtues\"\u003e\u003ccode\u003e@​ivanmilevtues\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1543\"\u003eatlassian-api/atlassian-python-api#1543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AntonioContrerasO\"\u003e\u003ccode\u003e@​AntonioContrerasO\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1549\"\u003eatlassian-api/atlassian-python-api#1549\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bore-alex\"\u003e\u003ccode\u003e@​bore-alex\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1544\"\u003eatlassian-api/atlassian-python-api#1544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/neyrat-salvator\"\u003e\u003ccode\u003e@​neyrat-salvator\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1557\"\u003eatlassian-api/atlassian-python-api#1557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/leifdreizler\"\u003e\u003ccode\u003e@​leifdreizler\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1563\"\u003eatlassian-api/atlassian-python-api#1563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Matthew-Jenkins\"\u003e\u003ccode\u003e@​Matthew-Jenkins\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1566\"\u003eatlassian-api/atlassian-python-api#1566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denisab85\"\u003e\u003ccode\u003e@​denisab85\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1551\"\u003eatlassian-api/atlassian-python-api#1551\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/compare/4.0.4...4.0.5\"\u003ehttps://github.com/atlassian-api/atlassian-python-api/compare/4.0.4...4.0.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.4 : BB, Confluence, Jira\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/412f6b37bced32b184c2166cba0b8d306bac63bb\"\u003e\u003ccode\u003e412f6b3\u003c/code\u003e\u003c/a\u003e Jira: Clarification for cloud create searcher field \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1552\"\u003e#1552\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/d16700a1831a6f1d61a9347cdf38e3ec1d7108bd\"\u003e\u003ccode\u003ed16700a\u003c/code\u003e\u003c/a\u003e rollback changes with session and fix typo in condition\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/d224880e3e6ce42d2107f7c4e1334463027a5e6d\"\u003e\u003ccode\u003ed224880\u003c/code\u003e\u003c/a\u003e Update jira.py (\u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1571\"\u003e#1571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/a32f6d1f23e3ed9635660554d783e6a2fab72b7d\"\u003e\u003ccode\u003ea32f6d1\u003c/code\u003e\u003c/a\u003e Confluence: get_all_pages_from_space add workaround \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1547\"\u003e#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/eebf86ec8cc26dfb9299dc70e33d6b4a60e78eda\"\u003e\u003ccode\u003eeebf86e\u003c/code\u003e\u003c/a\u003e Bitbucket: Add AppUser enrollments for User class appears \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1570\"\u003e#1570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/b090c2e9da7de45ab3607a83d4d112e33307fdd2\"\u003e\u003ccode\u003eb090c2e\u003c/code\u003e\u003c/a\u003e Jira Cloud: adjustment of jql search\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/46239bd80e8c6ad3eb9f7637543291ba997a4c7c\"\u003e\u003ccode\u003e46239bd\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1570\"\u003e#1570\u003c/a\u003e Workaround of traceback\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/a1b2f5c26ef3b4cc1d9b3ebe0e6ff29e1af9c111\"\u003e\u003ccode\u003ea1b2f5c\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1568\"\u003e#1568\u003c/a\u003e Add doc of create_issue method\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/c98bb64cf717f77e7be012d089804c11d3c779ef\"\u003e\u003ccode\u003ec98bb64\u003c/code\u003e\u003c/a\u003e Fix build and adjust imports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/5c5ff35706c4f7291b149020072409168e47cc0c\"\u003e\u003ccode\u003e5c5ff35\u003c/code\u003e\u003c/a\u003e [Bitbucket] Added Download class to retrieve pipeline-generated artifacts (Cl...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/compare/4.0.3...4.0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 2.2.3 to 2.3.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePandas 2.3.3\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.3.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3/whatsnew/v2.3.3.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.3 supports Python 3.9 and higher, and is the first release to support Python 3.14.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install --upgrade pandas\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003ePandas 2.3.2\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.2.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3/whatsnew/v2.3.2.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.2 supports Python 3.9 and higher.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install --upgrade pandas\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003ePandas 2.3.1\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.1.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3.1/whatsnew/v2.3.1.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.1 supports Python 3.9 and higher.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/9c8bc3e55188c8aff37207a74f1dd144980b8874\"\u003e\u003ccode\u003e9c8bc3e\u003c/code\u003e\u003c/a\u003e RLS: 2.3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/6aa788a00bda9b0f004302076dad94df3edeafc7\"\u003e\u003ccode\u003e6aa788a\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] DOC: prepare 2.3.3 whatsnew notes for release (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62499\"\u003e#62499\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62508\"\u003e#62508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/b64f0df403d11ac733d9f460f89a5e99c8044ed0\"\u003e\u003ccode\u003eb64f0df\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG: avoid validation error for ufunc with string[python] ar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/058eb2b0edfc408dae9966ef1f03372f2a3ff04c\"\u003e\u003ccode\u003e058eb2b\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG: String[pyarrow] comparison with mixed object (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62424\"\u003e#62424\u003c/a\u003e) (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/2ca088daef6a9d9333fea8aedffc7e50d28dfdee\"\u003e\u003ccode\u003e2ca088d\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] DEPR: remove the Period resampling deprecation (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62480\"\u003e#62480\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62\"\u003e#62\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/92bf98f623572ed053d48be5818c8503f1b61888\"\u003e\u003ccode\u003e92bf98f\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG: fix .str.isdigit to honor unicode superscript for older...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e57c7d6a2247316188fba0ba2a0db3c11028d75c\"\u003e\u003ccode\u003ee57c7d6\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62452\"\u003e#62452\u003c/a\u003e on branch 2.3.x (TST: Adjust tests for numexpr 2.13) (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62454\"\u003e#62454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/e0fe9a03c90e560c34a3bbbdd1735a8b64f7b281\"\u003e\u003ccode\u003ee0fe9a0\u003c/code\u003e\u003c/a\u003e Backport to 2.3.x: REGR: from_records not initializing subclasses properly (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/23a1085e641c8e3a5b500e319c5973e4160b9236\"\u003e\u003ccode\u003e23a1085\u003c/code\u003e\u003c/a\u003e BUG: improve future warning for boolean operations with missaligned indexes (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/61136969fb18b438b6660bd5d485d0236dbf4a71\"\u003e\u003ccode\u003e6113696\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62396\"\u003e#62396\u003c/a\u003e on branch 2.3.x (PKG/DOC: indicate Python 3.14 support in ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v2.2.3...v2.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyarrow` from 19.0.1 to 21.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/arrow/releases\"\u003epyarrow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Arrow 21.0.0\u003c/h2\u003e\n\u003cp\u003eRelease Notes URL: \u003ca href=\"https://arrow.apache.org/release/21.0.0.html\"\u003ehttps://arrow.apache.org/release/21.0.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eApache Arrow 21.0.0 RC6\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 21.0.0 RC6\u003c/p\u003e\n\u003ch2\u003eApache Arrow 21.0.0 RC5\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 21.0.0 RC5\u003c/p\u003e\n\u003ch2\u003eApache Arrow 21.0.0 RC4\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 21.0.0 RC4\u003c/p\u003e\n\u003ch2\u003eApache Arrow 21.0.0 RC3\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 21.0.0 RC3\u003c/p\u003e\n\u003ch2\u003eApache Arrow 21.0.0 RC2\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 21.0.0 RC2\u003c/p\u003e\n\u003ch2\u003eApache Arrow 20.0.0\u003c/h2\u003e\n\u003cp\u003eRelease Notes URL: \u003ca href=\"https://arrow.apache.org/release/20.0.0.html\"\u003ehttps://arrow.apache.org/release/20.0.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eApache Arrow 20.0.0 RC2\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 20.0.0 RC2\u003c/p\u003e\n\u003ch2\u003eApache Arrow 20.0.0 RC1\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 20.0.0 RC1\u003c/p\u003e\n\u003ch2\u003eApache Arrow 20.0.0 RC0\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 20.0.0 RC0\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/ee4d09ebef61c663c1efbfa4c18e518a03b798be\"\u003e\u003ccode\u003eee4d09e\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update versions for 21.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/f13a5796008e3a5e546af1a7b2be0fbd3c148c26\"\u003e\u003ccode\u003ef13a579\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update .deb/.rpm changelogs for 21.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/6fd2a167e0ed74dbe4c059e579a561fcc2aae11f\"\u003e\u003ccode\u003e6fd2a16\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update CHANGELOG.md for 21.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/cf261bf58ae74a1f7fa99d81c201ca8e1d679c9b\"\u003e\u003ccode\u003ecf261bf\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47078\"\u003eGH-47078\u003c/a\u003e: [Release] Ensure using cloned apache/arrow for reproducible check (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/ddbc3dc005dfdde5a79d42cb5953190479b12b73\"\u003e\u003ccode\u003eddbc3dc\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47074\"\u003eGH-47074\u003c/a\u003e: [Release] Use reproducible mtime for csharp/ in source archive (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47\"\u003e#47\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/0534eb2d279f445ac67b99a22eca344484749b6f\"\u003e\u003ccode\u003e0534eb2\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47071\"\u003eGH-47071\u003c/a\u003e: [Release] Dereference all hard links in source archive (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47072\"\u003e#47072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/f845b4184664aee522f7fd73864d3093e84b6580\"\u003e\u003ccode\u003ef845b41\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47069\"\u003eGH-47069\u003c/a\u003e: [Release] Add missing \u0026quot;needs: target\u0026quot; (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47070\"\u003e#47070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/1c08f8ee6947bd2a9bffb441af946c6a7373015b\"\u003e\u003ccode\u003e1c08f8e\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47067\"\u003eGH-47067\u003c/a\u003e: [Release] Fix wrong GitHub Actions context in verify_rc.yml (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47068\"\u003e#47068\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/70e5c51e6d5de1ca6f669b47ff0b98e1075336d0\"\u003e\u003ccode\u003e70e5c51\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47065\"\u003eGH-47065\u003c/a\u003e: [Release] Fix timeout key in verify_rc.yml (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47066\"\u003e#47066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/254a85c8bddb52eef03d623882836717f027061d\"\u003e\u003ccode\u003e254a85c\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47063\"\u003eGH-47063\u003c/a\u003e: [Release] Define missing RELEASE_TARBALL (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47064\"\u003e#47064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/arrow/compare/apache-arrow-19.0.1...apache-arrow-21.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.11.3 to 2.11.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.9 2025-09-13\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBackport v1.10.23 changes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.8...v2.11.9\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.11.8...v2.11.9\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.8 2025-09-13\u003c/h2\u003e\n\u003ch2\u003ev2.11.8 (2025-09-13)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix mypy plugin for mypy 1.18 by \u003ca href=\"https://github.com/cdce8p\"\u003e\u003ccode\u003e@​cdce8p\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12209\"\u003e#12209\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.7...v2.11.8\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.11.7...v2.11.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.7 2025-06-14\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCopy \u003ccode\u003eFieldInfo\u003c/code\u003e instance if necessary during \u003ccode\u003eFieldInfo\u003c/code\u003e build by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11980\"\u003epydantic/pydantic#11980\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.6...v2.11.7\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.11.6...v2.11.7\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.6 2025-06-13\u003c/h2\u003e\n\u003ch2\u003ev2.11.6 (2025-06-13)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRebuild dataclass fields before schema generation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11949\"\u003e#11949\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlways store the original field assignment on \u003ccode\u003eFieldInfo\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11946\"\u003e#11946\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.5...v2.11.6\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.11.5...v2.11.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.5 2025-05-22\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCheck if \u003ccode\u003eFieldInfo\u003c/code\u003e is complete after applying type variable map by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11855\"\u003e#11855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not delete mock validator/serializer in \u003ccode\u003emodel_rebuild()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11890\"\u003e#11890\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not duplicate metadata on model rebuild by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11902\"\u003e#11902\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.11.10/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.10 (2025-10-04)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.11.10\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBackport v1.10.24 changes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.11.9 (2025-09-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.11.9\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBackport v1.10.23 changes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.11.8 (2025-09-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.11.8\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix mypy plugin for mypy 1.18 by \u003ca href=\"https://github.com/cdce8p\"\u003e\u003ccode\u003e@​cdce8p\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12209\"\u003e#12209\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.11.7 (2025-06-14)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.11.7\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCopy \u003ccode\u003eFieldInfo\u003c/code\u003e instance if necessary during \u003ccode\u003eFieldInfo\u003c/code\u003e build by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11898\"\u003e#11898\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.11.6 (2025-06-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.11.6\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRebuild dataclass fields before schema generation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11949\"\u003e#11949\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlways store the original field assignment on \u003ccode\u003eFieldInfo\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11946\"\u003e#11946\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/162b806fa1dcc7d99ec165023d572ac2ca421566\"\u003e\u003ccode\u003e162b806\u003c/code\u003e\u003c/a\u003e Prepare release v2.11.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1f5915685083ba97db2787834f15f686f9253966\"\u003e\u003ccode\u003e1f59156\u003c/code\u003e\u003c/a\u003e Backport v1.10.24 changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/92310953c146a2ac668a0141be820c083e325f5d\"\u003e\u003ccode\u003e9231095\u003c/code\u003e\u003c/a\u003e Prepare release v2.11.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f003a89eeaff35ee18f220a2c790d20536e3d0ab\"\u003e\u003ccode\u003ef003a89\u003c/code\u003e\u003c/a\u003e Backport v1.10.23 changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/96b81ddaf93a1f2e19ff1609080c33de10b8d931\"\u003e\u003ccode\u003e96b81dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.11.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/966f377692194b3f1d6d5155ac78052bec0a751d\"\u003e\u003ccode\u003e966f377\u003c/code\u003e\u003c/a\u003e Fix mypy v2 plugin for upcoming \u003ccode\u003e1.18\u003c/code\u003e mypy release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5f033e46c54fea1b59b6894d6527daf49475e690\"\u003e\u003ccode\u003e5f033e4\u003c/code\u003e\u003c/a\u003e Prepare release v2.11.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c3368b83c411f421a7322959bc29f3bea4bd252a\"\u003e\u003ccode\u003ec3368b8\u003c/code\u003e\u003c/a\u003e Copy \u003ccode\u003eFieldInfo\u003c/code\u003e instance if necessary during \u003ccode\u003eFieldInfo\u003c/code\u003e build (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/11980\"\u003e#11980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/3987b23db4b31ff35e9fa15c21c0c1d1c9808838\"\u003e\u003ccode\u003e3987b23\u003c/code\u003e\u003c/a\u003e Prepare release v2.11.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/dc7a9d20bee55a3a6e7397ee46abfcd9057b627b\"\u003e\u003ccode\u003edc7a9d2\u003c/code\u003e\u003c/a\u003e Always store the original field assignment on \u003ccode\u003eFieldInfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.3...v2.11.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.9.1 to 2.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCLI Serialize Support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/643\"\u003epydantic/pydantic-settings#643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInspect type aliases to determine if an annotation is complex by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/644\"\u003epydantic/pydantic-settings#644\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;fix: Respect 'cli_parse_args' from model_config with settings_customise_sources (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/611\"\u003e#611\u003c/a\u003e)\u0026quot; by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/655\"\u003epydantic/pydantic-settings#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove parsing of command line arguments from \u003ccode\u003eCliSettingsSource.__init__\u003c/code\u003e. by \u003ca href=\"https://github.com/trygve-baerland\"\u003e\u003ccode\u003e@​trygve-baerland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/656\"\u003epydantic/pydantic-settings#656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eturn off allow_abbrev on subparsers by \u003ca href=\"https://github.com/mroch\"\u003e\u003ccode\u003e@​mroch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/658\"\u003epydantic/pydantic-settings#658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Serialization Fixes by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/649\"\u003epydantic/pydantic-settings#649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix PydanticModel type checking. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/659\"\u003epydantic/pydantic-settings#659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid env_prefix falling back to env vars without prefix by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/648\"\u003epydantic/pydantic-settings#648\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWarn if model_config sets unused keys for missing settings sources by \u003ca href=\"https://github.com/HomerusJa\"\u003e\u003ccode\u003e@​HomerusJa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/663\"\u003epydantic/pydantic-settings#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncluded endpoint_url kwarg in AWSSecretsManagerSettingsSource class by \u003ca href=\"https://github.com/adrianohrl\"\u003e\u003ccode\u003e@​adrianohrl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/664\"\u003epydantic/pydantic-settings#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo (\u0026quot;Accesing\u0026quot;) in the \u0026quot;Adding sources\u0026quot; docs by \u003ca href=\"https://github.com/deepyaman\"\u003e\u003ccode\u003e@​deepyaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/668\"\u003epydantic/pydantic-settings#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Windows Path Fix by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/669\"\u003epydantic/pydantic-settings#669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCli root model support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/677\"\u003epydantic/pydantic-settings#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSnake case conversion in Azure Key Vault by \u003ca href=\"https://github.com/AndreuCodina\"\u003e\u003ccode\u003e@​AndreuCodina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/680\"\u003epydantic/pydantic-settings#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eInitSettingsSource\u003c/code\u003e resolution deterministic by \u003ca href=\"https://github.com/enrico-stauss\"\u003e\u003ccode\u003e@​enrico-stauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/681\"\u003epydantic/pydantic-settings#681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate deps by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/683\"\u003epydantic/pydantic-settings#683\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/644\"\u003epydantic/pydantic-settings#644\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trygve-baerland\"\u003e\u003ccode\u003e@​trygve-baerland\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/656\"\u003epydantic/pydantic-settings#656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mroch\"\u003e\u003ccode\u003e@​mroch\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/658\"\u003epydantic/pydantic-settings#658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HomerusJa\"\u003e\u003ccode\u003e@​HomerusJa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/663\"\u003epydantic/pydantic-settings#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adrianohrl\"\u003e\u003ccode\u003e@​adrianohrl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/664\"\u003epydantic/pydantic-settings#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deepyaman\"\u003e\u003ccode\u003e@​deepyaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/668\"\u003epydantic/pydantic-settings#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enrico-stauss\"\u003e\u003ccode\u003e@​enrico-stauss\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/681\"\u003epydantic/pydantic-settings#681\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.10.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix UnboundLocalError error in _replace_field_names_case_insensitively by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/639\"\u003epydantic/pydantic-settings#639\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unknown file reference in documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/640\"\u003epydantic/pydantic-settings#640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.10.1 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/642\"\u003epydantic/pydantic-settings#642\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/2.10.0...2.10.1\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/2.10.0...2.10.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix running tests when azure-keyvault-secrets is not installed by \u003ca href=\"https://github.com/CyberTailor\"\u003e\u003ccode\u003e@​CyberTailor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/601\"\u003epydantic/pydantic-settings#601\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix running tests when google-cloud-secret-manager is not installed by \u003ca href=\"https://github.com/CyberTailor\"\u003e\u003ccode\u003e@​CyberTailor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/602\"\u003epydantic/pydantic-settings#602\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport loading a specific nested key from YAML in YamlConfigSettingsSource by \u003ca href=\"https://github.com/Seunghan-Jung\"\u003e\u003ccode\u003e@​Seunghan-Jung\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/603\"\u003epydantic/pydantic-settings#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI suppression for model group help by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/604\"\u003epydantic/pydantic-settings#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing DEFAULT_PATH import by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/606\"\u003epydantic/pydantic-settings#606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix case-insensitive handling of nested aliases in EnvironmentSettingsSource by \u003ca href=\"https://github.com/d15ky\"\u003e\u003ccode\u003e@​d15ky\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/608\"\u003epydantic/pydantic-settings#608\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAzure Key Vault case insensitive support and dash-underscore translation by \u003ca href=\"https://github.com/d15ky\"\u003e\u003ccode\u003e@​d15ky\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/607\"\u003epydantic/pydantic-settings#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect 'cli_parse_args' from model_config with settings_customise_sources by \u003ca href=\"https://github.com/karta9821\"\u003e\u003ccode\u003e@​karta9821\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/611\"\u003epydantic/pydantic-settings#611\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/612\"\u003epydantic/pydantic-settings#612\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/3e664300f38a4ad1e1ff4b431147f18d63930028\"\u003e\u003ccode\u003e3e66430\u003c/code\u003e\u003c/a\u003e Prepare release 2.11.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/684\"\u003e#684\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/44fb5b7a97ed82d09d3895bee49b82ae4ac55fd9\"\u003e\u003ccode\u003e44fb5b7\u003c/code\u003e\u003c/a\u003e Update deps (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/683\"\u003e#683\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/0497ef23314dbd63ea41d07ab9c301e628f2f9f9\"\u003e\u003ccode\u003e0497ef2\u003c/code\u003e\u003c/a\u003e Make \u003ccode\u003eInitSettingsSource\u003c/code\u003e resolution deterministic (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/681\"\u003e#681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/c22cef44ff7d3ca058eee188bf1967650146fcda\"\u003e\u003ccode\u003ec22cef4\u003c/code\u003e\u003c/a\u003e Snake case conversion in Azure Key Vault (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/680\"\u003e#680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/9c6c9b55e27ab78e48eaa570965c6e52c32c9f38\"\u003e\u003ccode\u003e9c6c9b5\u003c/code\u003e\u003c/a\u003e Cli root model support (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/677\"\u003e#677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/a164b73fcf8d802c1a7db7c6d9d830f11b70244e\"\u003e\u003ccode\u003ea164b73\u003c/code\u003e\u003c/a\u003e CLI Windows Path Fix (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/669\"\u003e#669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/d81f8d861d01eff563b8b91a1694d48b6eade92e\"\u003e\u003ccode\u003ed81f8d8\u003c/code\u003e\u003c/a\u003e Fix typo (\u0026quot;Accesing\u0026quot;) in the \u0026quot;Adding sources\u0026quot; docs (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/668\"\u003e#668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/53ade971d122b9fef88da85a8ff489180e06c796\"\u003e\u003ccode\u003e53ade97\u003c/code\u003e\u003c/a\u003e Included endpoint_url kwarg in AWSSecretsManagerSettingsSource class (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/664\"\u003e#664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/1967d6f5c18db30ddbcffe4856ea941a71189abc\"\u003e\u003ccode\u003e1967d6f\u003c/code\u003e\u003c/a\u003e Warn if model_config sets unused keys for missing settings sources (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/1fc20873d208979dfac0fa336f99fc05c0562ae8\"\u003e\u003ccode\u003e1fc2087\u003c/code\u003e\u003c/a\u003e Avoid env_prefix falling back to env vars without prefix (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/648\"\u003e#648\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.9.1...v2.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.40 to 2.0.43\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.43\u003c/h1\u003e\n\u003cp\u003eReleased: August 11, 2025\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where using the \u003ccode\u003epost_update\u003c/code\u003e feature would apply incorrect\n\u0026quot;pre-fetched\u0026quot; values to the ORM objects after a multi-row UPDATE process\ncompleted.  These \u0026quot;pre-fetched\u0026quot; values would come from any column that had\nan \u003ccode\u003eColumn.onupdate\u003c/code\u003e callable or a version id generator used by\n\u003ccode\u003eorm.Mapper.version_id_generator\u003c/code\u003e; for a version id generator\nthat delivered random identifiers like timestamps or UUIDs, this incorrect\ndata would lead to a DELETE statement against those same rows to fail in\nthe next step.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12748\"\u003e#12748\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where \u003ccode\u003e_orm.mapped_column.use_existing_column\u003c/code\u003e\nparameter in \u003ccode\u003e_orm.mapped_column()\u003c/code\u003e would not work when the\n\u003ccode\u003e_orm.mapped_column()\u003c/code\u003e is used inside of an \u003ccode\u003eAnnotated\u003c/code\u003e type alias in\npolymorphic inheritance scenarios. The parameter is now properly recognized\nand processed during declarative mapping configuration.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12787\"\u003e#12787\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Improved the implementation of the \u003ccode\u003e_orm.selectin_polymorphic()\u003c/code\u003e\ninheritance loader strategy to properly render the IN expressions using\nchunks of 500 records each, in the same manner as that of the\n\u003ccode\u003e_orm.selectinload()\u003c/code\u003e relationship loader strategy.  Previously, the IN\nexpression would be arbitrarily large, leading to failures on databases\nthat have limits on the size of IN expressions including Oracle Database.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12790\"\u003e#12790\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eengine\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[engine] [usecase]\u003c/strong\u003e Added new parameter \u003ccode\u003ecreate_engine.skip_autocommit_rollback\u003c/code\u003e\nwhich provides for a per-dialect feature of preventing the DBAPI\n\u003ccode\u003e.rollback()\u003c/code\u003e from being called under any circumstances, if the\nconnection is detected as being in \u0026quot;autocommit\u0026quot; mode.   This improves upon\na critical performance issue identified in MySQL dialects where the network\noverhead of the \u003ccode\u003e.rollback()\u003c/code\u003e call remains prohibitive even if autocommit\nmode is set.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12784\"\u003e#12784\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epostgresql\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.15.2 to 1.16.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.16.5\u003c/h1\u003e\n\u003cp\u003eReleased: August 27, 2025\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [mysql]\u003c/strong\u003e Fixed Python-side autogenerate rendering of index expressions in MySQL\ndialect by aligning it with SQLAlchemy's MySQL index expression rules. Pull\nrequest courtesy david-fed.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1492\"\u003e#1492\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [config]\u003c/strong\u003e Fixed issue where new pyproject.toml config would fail to parse the integer\nvalue used for the \u003ccode\u003etruncate_slug_length\u003c/code\u003e parameter.  Pull request\ncourtesy Luís Henrique Allebrandt Schunemann.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1709\"\u003e#1709\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.16.4\u003c/h1\u003e\n\u003cp\u003eReleased: July 10, 2025\u003c/p\u003e\n\u003ch2\u003ebug...\n\n_Description has been truncated_","html_url":"https://github.com/MrReasonable/jira-analyzer/pull/96","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrReasonable%2Fjira-analyzer/issues/96","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/96/packages"}},{"old_version":"4.39.1","new_version":"4.48.2","update_type":"minor","path":"/packages/core/minos-microservice-common","pr_created_at":"2025-10-01T04:02:51.000Z","version_change":"4.39.1 → 4.48.2","issue":{"uuid":"3471921900","node_id":"PR_kwDOGulfmM6reAu9","number":848,"state":"closed","title":"Bump dependency-injector from 4.39.1 to 4.48.2 in /packages/core/minos-microservice-common","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-01T04:02:00.000Z","author_association":null,"state_reason":null,"created_at":"2025-10-01T04:02:51.000Z","updated_at":"2026-01-01T04:02:01.000Z","time_to_close":7948749,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"dependency-injector","old_version":"4.39.1","new_version":"4.48.2","repository_url":"https://github.com/ets-labs/python-dependency-injector"}],"path":"/packages/core/minos-microservice-common","ecosystem":"pip"},"body":"Bumps [dependency-injector](https://github.com/ets-labs/python-dependency-injector) from 4.39.1 to 4.48.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.48.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix grammar in Declarative Container documentation by \u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd warnings for unresolved markers by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\"\u003ehttps://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild ABI3 wheels only for Python\u0026gt;=3.10 by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\"\u003ehttps://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.2\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.48.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove performance of \u003ccode\u003edependency_injector._cwiring.DependencyResolver\u003c/code\u003e by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/eb74b1e9d0b681008de531a697c7caeaafbd1e30\"\u003ehttps://github.com/ets-labs/python-dependency-injector/commit/eb74b1e9d0b681008de531a697c7caeaafbd1e30\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003etyping-extensions\u003c/code\u003e as a dependency for older Python versions (\u0026lt;3.11) by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/be7d25518de833ef02f97567b8def9f5d1b80ab1\"\u003ehttps://github.com/ets-labs/python-dependency-injector/commit/be7d25518de833ef02f97567b8def9f5d1b80ab1\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eProduce warning on \u003ccode\u003e@inject\u003c/code\u003es without \u003ccode\u003eProvide[...]\u003c/code\u003e marks by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/04b5907f21d40a6ddba57dbad46690e27cbaade4\"\u003ehttps://github.com/ets-labs/python-dependency-injector/commit/04b5907f21d40a6ddba57dbad46690e27cbaade4\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eresource_type\u003c/code\u003e in \u003ccode\u003eLifespan\u003c/code\u003es by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/e6cc12762f0355f2aff866b08eb1a3427b8b6403\"\u003ehttps://github.com/ets-labs/python-dependency-injector/commit/e6cc12762f0355f2aff866b08eb1a3427b8b6403\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.0...4.48.1\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.0...4.48.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.48.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse cache in _fetch_reference_injections() by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/897\"\u003eets-labs/python-dependency-injector#897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Context Manager support to Resource provider by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/899\"\u003eets-labs/python-dependency-injector#899\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for async generator injections by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/900\"\u003eets-labs/python-dependency-injector#900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Fast Depends by \u003ca href=\"https://github.com/AndrianEquestrian\"\u003e\u003ccode\u003e@​AndrianEquestrian\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/898\"\u003eets-labs/python-dependency-injector#898\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd resource type parameter to init and shutdown resources using specialized providers by \u003ca href=\"https://github.com/amoncusir\"\u003e\u003ccode\u003e@​amoncusir\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/858\"\u003eets-labs/python-dependency-injector#858\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AndrianEquestrian\"\u003e\u003ccode\u003e@​AndrianEquestrian\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/898\"\u003eets-labs/python-dependency-injector#898\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amoncusir\"\u003e\u003ccode\u003e@​amoncusir\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/858\"\u003eets-labs/python-dependency-injector#858\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.47.1...4.48.0\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.47.1...4.48.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.47.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix wiring marker typing by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/896\"\u003eets-labs/python-dependency-injector#896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStrip debug symbols in wheels\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.47.0...4.47.1\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.47.0...4.47.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.47.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with Closing+ConfigurationOption by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/871\"\u003eets-labs/python-dependency-injector#871\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unused \u003ccode\u003eroot\u003c/code\u003e property from ConfigurationOption by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/875\"\u003eets-labs/python-dependency-injector#875\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrect monkeypatching during \u003ccode\u003ewire()\u003c/code\u003e that could violate MRO in some classes by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/886\"\u003eets-labs/python-dependency-injector#886\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eAnnotated\u003c/code\u003e type for module and class attribute injection in wiring, with updated documentation and examples by \u003ca href=\"https://github.com/rmk135\"\u003e\u003ccode\u003e@​rmk135\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/889\"\u003eets-labs/python-dependency-injector#889\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePublish ABI3 wheels for CPython by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/888\"\u003eets-labs/python-dependency-injector#888\u003c/a\u003e \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/887\"\u003eets-labs/python-dependency-injector#887\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5a1aef920372da6a95d14865caab10061aea7104\"\u003e\u003ccode\u003e5a1aef9\u003c/code\u003e\u003c/a\u003e Merge branch 'release/4.48.2'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5acddac9c15e87edff76846e8903a3c4552da22b\"\u003e\u003ccode\u003e5acddac\u003c/code\u003e\u003c/a\u003e Add changelog entry for v4.48.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/9f77976a294d7eeda6176610155f1fe0b91eea2d\"\u003e\u003ccode\u003e9f77976\u003c/code\u003e\u003c/a\u003e Fix typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\"\u003e\u003ccode\u003e891f8b4\u003c/code\u003e\u003c/a\u003e Build ABI3 wheels only for Python\u0026gt;=3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/8c2a32213a71c82334d009fbf3ee69dc85221b78\"\u003e\u003ccode\u003e8c2a322\u003c/code\u003e\u003c/a\u003e Add wheels Makefile target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/91a741a6332ba9e0130e3d80b4191b4010f9f726\"\u003e\u003ccode\u003e91a741a\u003c/code\u003e\u003c/a\u003e Bump Cython version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\"\u003e\u003ccode\u003e1222827\u003c/code\u003e\u003c/a\u003e Add warnings for unresolved markers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/759d89e9bdc35f0146361e5ff89fd36e99cc6184\"\u003e\u003ccode\u003e759d89e\u003c/code\u003e\u003c/a\u003e Add reprs to wiring markers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1500a1de364cd97ccebd812a28a9b6f4c344a0ef\"\u003e\u003ccode\u003e1500a1d\u003c/code\u003e\u003c/a\u003e docs(declarative.rst): fix grammar in Declarative Container documentation  (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/7df26d1ac76aabf52f74ce75e5f908ccf28b4898\"\u003e\u003ccode\u003e7df26d1\u003c/code\u003e\u003c/a\u003e docs(declarative.rst): fix grammar in Declarative Container documentation  (#...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.39.1...4.48.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=dependency-injector\u0026package-manager=pip\u0026previous-version=4.39.1\u0026new-version=4.48.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nYou can trigger a rebase of this PR by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e\n\n\u003e **Note**\n\u003e Automatic rebases have been disabled on this pull request as it has been open for over 30 days.\n","html_url":"https://github.com/minos-framework/minos-python/pull/848","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/minos-framework%2Fminos-python/issues/848","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/848/packages"}},{"old_version":"4.48.1","new_version":"4.48.2","update_type":"patch","path":null,"pr_created_at":"2025-09-22T09:04:25.000Z","version_change":"4.48.1 → 4.48.2","issue":{"uuid":"2848528151","node_id":"PR_kwDOPYR9a86pyRcX","number":1051,"state":"open","title":"deps(deps): bump the minor-patches group with 6 updates","user":"dependabot[bot]","labels":["dependencies","python","security"],"assignees":["Josh-moreton"],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-22T09:04:25.000Z","updated_at":"2025-09-22T09:04:26.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps): bump","group_name":"minor-patches","update_count":6,"packages":[{"name":"typer","old_version":"0.17.4","new_version":"0.19.1","repository_url":"https://github.com/fastapi/typer"},{"name":"dependency-injector","old_version":"4.48.1","new_version":"4.48.2","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/giampaolo/psutil"},{"name":"click","old_version":"8.2.1","new_version":"8.3.0","repository_url":"https://github.com/pallets/click"},{"name":"pydantic-core","old_version":"2.33.2","new_version":"2.39.0","repository_url":"https://github.com/pydantic/pydantic-core"},{"name":"pyparsing","old_version":"3.2.4","new_version":"3.2.5","repository_url":"https://github.com/pyparsing/pyparsing"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-patches group with 6 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [typer](https://github.com/fastapi/typer) | `0.17.4` | `0.19.1` |\n| [dependency-injector](https://github.com/ets-labs/python-dependency-injector) | `4.48.1` | `4.48.2` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.0` |\n| [click](https://github.com/pallets/click) | `8.2.1` | `8.3.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic-core) | `2.33.2` | `2.39.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.4` | `3.2.5` |\n\nUpdates `typer` from 0.17.4 to 0.19.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/typer/releases\"\u003etyper's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.19.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNote\u003c/strong\u003e: this is the last version to support Python 3.7, going forward Typer will require Python 3.8+. And soon Python 3.8 will also be dropped as \u003ca href=\"https://devguide.python.org/versions/\"\u003ePython 3.8 reached it's end of life\u003c/a\u003e almost a year ago.\u003c/p\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Ensure that \u003ccode\u003eOptional[list]\u003c/code\u003e values work correctly with callbacks. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1018\"\u003e#1018\u003c/a\u003e by \u003ca href=\"https://github.com/solesensei\"\u003e\u003ccode\u003e@​solesensei\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.19.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Support \u003ccode\u003etyping.Literal\u003c/code\u003e to define a set of predefined choices. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/429\"\u003e#429\u003c/a\u003e by \u003ca href=\"https://github.com/blackary\"\u003e\u003ccode\u003e@​blackary\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Allow setting an environment variable to \u003ccode\u003eNone\u003c/code\u003e in \u003ccode\u003eCliRunner.invoke\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1303\"\u003e#1303\u003c/a\u003e by \u003ca href=\"https://github.com/arjenzorgdoc\"\u003e\u003ccode\u003e@​arjenzorgdoc\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Use Ruff rules to ensure safe lazy-loading of \u003ccode\u003erich\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1297\"\u003e#1297\u003c/a\u003e by \u003ca href=\"https://github.com/nathanjmcdougall\"\u003e\u003ccode\u003e@​nathanjmcdougall\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✅ Avoid rich formatting in number test. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1305\"\u003e#1305\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Clarify single-command vs multi-command behaviour in README. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1268\"\u003e#1268\u003c/a\u003e by \u003ca href=\"https://github.com/MorgenPronk\"\u003e\u003ccode\u003e@​MorgenPronk\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👽️ Ensure compatibility with Click 8.3.0 by restoring the original \u003ccode\u003evalue_is_missing\u003c/code\u003e function. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1333\"\u003e#1333\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📌 Remove pin for Click \u0026lt; 8.3.0 now that there's a fix for the changes. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1346\"\u003e#1346\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.17.5\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬇️ Restrict Click to below 8.3.0 to handle changes in the new version. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1336\"\u003e#1336\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.6.14 to 9.6.20. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1308\"\u003e#1308\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.5.50 to 9.6.14. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1223\"\u003e#1223\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/download-artifact from 4 to 5. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1269\"\u003e#1269\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.12.12 to 0.13.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1302\"\u003e#1302\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ [pre-commit.ci] pre-commit autoupdate. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1307\"\u003e#1307\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Update pytest-cov requirement from \u0026lt;7.0.0,\u0026gt;=2.10.0 to \u0026gt;=2.10.0,\u0026lt;8.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1301\"\u003e#1301\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/setup-python from 5 to 6. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1291\"\u003e#1291\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.12.11 to 0.12.12. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1295\"\u003e#1295\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ [pre-commit.ci] pre-commit autoupdate. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1300\"\u003e#1300\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/labeler from 5 to 6. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1296\"\u003e#1296\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/typer/blob/master/docs/release-notes.md\"\u003etyper's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.19.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eNote\u003c/strong\u003e: this is the last version to support Python 3.7, going forward Typer will require Python 3.8+. And soon Python 3.8 will also be dropped as \u003ca href=\"https://devguide.python.org/versions/\"\u003ePython 3.8 reached it's end of life\u003c/a\u003e almost a year ago.\u003c/p\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Ensure that \u003ccode\u003eOptional[list]\u003c/code\u003e values work correctly with callbacks. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1018\"\u003e#1018\u003c/a\u003e by \u003ca href=\"https://github.com/solesensei\"\u003e\u003ccode\u003e@​solesensei\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.19.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Support \u003ccode\u003etyping.Literal\u003c/code\u003e to define a set of predefined choices. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/429\"\u003e#429\u003c/a\u003e by \u003ca href=\"https://github.com/blackary\"\u003e\u003ccode\u003e@​blackary\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Allow setting an environment variable to \u003ccode\u003eNone\u003c/code\u003e in \u003ccode\u003eCliRunner.invoke\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1303\"\u003e#1303\u003c/a\u003e by \u003ca href=\"https://github.com/arjenzorgdoc\"\u003e\u003ccode\u003e@​arjenzorgdoc\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Use Ruff rules to ensure safe lazy-loading of \u003ccode\u003erich\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1297\"\u003e#1297\u003c/a\u003e by \u003ca href=\"https://github.com/nathanjmcdougall\"\u003e\u003ccode\u003e@​nathanjmcdougall\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✅ Avoid rich formatting in number test. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1305\"\u003e#1305\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Clarify single-command vs multi-command behaviour in README. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1268\"\u003e#1268\u003c/a\u003e by \u003ca href=\"https://github.com/MorgenPronk\"\u003e\u003ccode\u003e@​MorgenPronk\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.18.0\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👽️ Ensure compatibility with Click 8.3.0 by restoring the original \u003ccode\u003evalue_is_missing\u003c/code\u003e function. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1333\"\u003e#1333\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📌 Remove pin for Click \u0026lt; 8.3.0 now that there's a fix for the changes. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1346\"\u003e#1346\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.17.5\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬇️ Restrict Click to below 8.3.0 to handle changes in the new version. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1336\"\u003e#1336\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.6.14 to 9.6.20. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1308\"\u003e#1308\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump mkdocs-material from 9.5.50 to 9.6.14. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1223\"\u003e#1223\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/download-artifact from 4 to 5. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1269\"\u003e#1269\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.12.12 to 0.13.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1302\"\u003e#1302\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ [pre-commit.ci] pre-commit autoupdate. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1307\"\u003e#1307\u003c/a\u003e by \u003ca href=\"https://github.com/apps/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Update pytest-cov requirement from \u0026lt;7.0.0,\u0026gt;=2.10.0 to \u0026gt;=2.10.0,\u0026lt;8.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1301\"\u003e#1301\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/setup-python from 5 to 6. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1291\"\u003e#1291\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.12.11 to 0.12.12. PR \u003ca href=\"https://redirect.github.com/fastapi/typer/pull/1295\"\u003e#1295\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/7afa6361e8b61c1905899f5e9b6fd303bfa7dffa\"\u003e\u003ccode\u003e7afa636\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/82e27e97c9b6bc1b5c52cfe3840cdb329caf12de\"\u003e\u003ccode\u003e82e27e9\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/53ae9eeb6f0f2d564f3a6bebfad3e4de69210117\"\u003e\u003ccode\u003e53ae9ee\u003c/code\u003e\u003c/a\u003e 🐛 Ensure that \u003ccode\u003eOptional[list]\u003c/code\u003e values work correctly with callbacks (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1018\"\u003e#1018\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/13619fb4a35ee92a276215889c68ea03633c24dd\"\u003e\u003ccode\u003e13619fb\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.19.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/7a0f0028c069ee71d5e17274de8f83eb80ac3acd\"\u003e\u003ccode\u003e7a0f002\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/05400d913b1493e370ba1edec519788098303ba0\"\u003e\u003ccode\u003e05400d9\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/6774f1df002b0de80d2af502b831d4aa5357b03e\"\u003e\u003ccode\u003e6774f1d\u003c/code\u003e\u003c/a\u003e ✨ Support \u003ccode\u003etyping.Literal\u003c/code\u003e to define a set of predefined choices (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/429\"\u003e#429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/2ece3e6445f5e585f6118be9ff68d6afe85fe5fe\"\u003e\u003ccode\u003e2ece3e6\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/2b05c7c2c1f97a10e9da7579313cff855236b0cb\"\u003e\u003ccode\u003e2b05c7c\u003c/code\u003e\u003c/a\u003e ✅ Avoid rich formatting in number test (\u003ca href=\"https://redirect.github.com/fastapi/typer/issues/1305\"\u003e#1305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/typer/commit/9dfdd51075031c592b614c360e42a3857226413d\"\u003e\u003ccode\u003e9dfdd51\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/typer/compare/0.17.4...0.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dependency-injector` from 4.48.1 to 4.48.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.48.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix grammar in Declarative Container documentation by \u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd warnings for unresolved markers by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\"\u003ehttps://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild ABI3 wheels only for Python\u0026gt;=3.10 by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\"\u003ehttps://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.2\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5a1aef920372da6a95d14865caab10061aea7104\"\u003e\u003ccode\u003e5a1aef9\u003c/code\u003e\u003c/a\u003e Merge branch 'release/4.48.2'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5acddac9c15e87edff76846e8903a3c4552da22b\"\u003e\u003ccode\u003e5acddac\u003c/code\u003e\u003c/a\u003e Add changelog entry for v4.48.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/9f77976a294d7eeda6176610155f1fe0b91eea2d\"\u003e\u003ccode\u003e9f77976\u003c/code\u003e\u003c/a\u003e Fix typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\"\u003e\u003ccode\u003e891f8b4\u003c/code\u003e\u003c/a\u003e Build ABI3 wheels only for Python\u0026gt;=3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/8c2a32213a71c82334d009fbf3ee69dc85221b78\"\u003e\u003ccode\u003e8c2a322\u003c/code\u003e\u003c/a\u003e Add wheels Makefile target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/91a741a6332ba9e0130e3d80b4191b4010f9f726\"\u003e\u003ccode\u003e91a741a\u003c/code\u003e\u003c/a\u003e Bump Cython version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\"\u003e\u003ccode\u003e1222827\u003c/code\u003e\u003c/a\u003e Add warnings for unresolved markers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/759d89e9bdc35f0146361e5ff89fd36e99cc6184\"\u003e\u003ccode\u003e759d89e\u003c/code\u003e\u003c/a\u003e Add reprs to wiring markers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1500a1de364cd97ccebd812a28a9b6f4c344a0ef\"\u003e\u003ccode\u003e1500a1d\u003c/code\u003e\u003c/a\u003e docs(declarative.rst): fix grammar in Declarative Container documentation  (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/7df26d1ac76aabf52f74ce75e5f908ccf28b4898\"\u003e\u003ccode\u003e7df26d1\u003c/code\u003e\u003c/a\u003e docs(declarative.rst): fix grammar in Declarative Container documentation  (#...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psutil` from 7.0.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/giampaolo/psutil/blob/master/HISTORY.rst\"\u003epsutil's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e7.1.0\u003c/h1\u003e\n\u003cp\u003e2025-09-17\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eEnhancements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2581_, [Windows]: publish ARM64 wheels.  (patch by Matthieu Darbois)\u003c/li\u003e\n\u003cli\u003e2571_, [FreeBSD]: Dropped support for FreeBSD 8 and earlier. FreeBSD 8 was\nmaintained from 2009 to 2013.\u003c/li\u003e\n\u003cli\u003e2575_: introduced \u003ccode\u003edprint\u003c/code\u003e CLI tool to format .yml and .md files.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e2473_, [macOS]: Fix build issue on macOS 11 and lower.\u003c/li\u003e\n\u003cli\u003e2494_, [Windows]: All APIs dealing with paths, such as\n\u003ccode\u003eProcess.memory_maps()\u003c/code\u003e\u003cem\u003e, \u003ccode\u003eProcess.exe()\u003c/code\u003e\u003c/em\u003e and \u003ccode\u003eProcess.open_files()\u003c/code\u003e_ does\nnot properly handle UNC paths. Paths such as \u003ccode\u003e\\\\??\\\\C:\\\\Windows\\\\Temp\u003c/code\u003e and\n\u003ccode\u003e'\\\\Device\\\\HarddiskVolume1\\\\Windows\\\\Temp'\u003c/code\u003e are now converted to\n\u003ccode\u003eC:\\\\Windows\\\\Temp\u003c/code\u003e.  (patch by Ben Peddell)\u003c/li\u003e\n\u003cli\u003e2506_, [Windows]: Windows service APIs had issues with unicode services using\nspecial characters in their name.\u003c/li\u003e\n\u003cli\u003e2514_, [Linux]: \u003ccode\u003eProcess.cwd()\u003c/code\u003e_ sometimes fail with \u003ccode\u003eFileNotFoundError\u003c/code\u003e due\nto a race condition.\u003c/li\u003e\n\u003cli\u003e2526_, [Linux]: \u003ccode\u003eProcess.create_time()\u003c/code\u003e\u003cem\u003e, which is used to univocally\nidentify a process over time, is subject to system clock updates, and as such\ncan lead to \u003ccode\u003eProcess.is_running()\u003c/code\u003e\u003c/em\u003e returning a wrong result. A monotonic\ncreation time is now used instead.  (patch by Jonathan Kohler)\u003c/li\u003e\n\u003cli\u003e2528_, [Linux]: \u003ccode\u003eProcess.children()\u003c/code\u003e_ may raise \u003ccode\u003ePermissionError\u003c/code\u003e. It will\nnow raise \u003ccode\u003eAccessDenied\u003c/code\u003e_ instead.\u003c/li\u003e\n\u003cli\u003e2540_, [macOS]: \u003ccode\u003eboot_time()\u003c/code\u003e_ is off by 45 seconds (C precision issue).\u003c/li\u003e\n\u003cli\u003e2541_, 2570_, 2578_ [Linux], [macOS], [NetBSD]: \u003ccode\u003eProcess.create_time()\u003c/code\u003e_ does\nnot reflect system clock updates.\u003c/li\u003e\n\u003cli\u003e2542_: if system clock is updated \u003ccode\u003eProcess.children()\u003c/code\u003e_ and\n\u003ccode\u003eProcess.parent()\u003c/code\u003e_ may not be able to return the right information.\u003c/li\u003e\n\u003cli\u003e2545_: [Illumos]: Fix handling of MIB2_UDP_ENTRY in \u003ccode\u003enet_connections()\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003e2552_, [Windows]: \u003ccode\u003eboot_time()\u003c/code\u003e_ didn't take into account the time spent\nduring suspend / hibernation.\u003c/li\u003e\n\u003cli\u003e2560_, [Linux]: \u003ccode\u003eProcess.memory_maps()\u003c/code\u003e_ may crash with \u003ccode\u003eIndexError\u003c/code\u003e on\nRISCV64 due to a malformed \u003ccode\u003e/proc/{PID}/smaps\u003c/code\u003e file.  (patch by Julien\nStephan)\u003c/li\u003e\n\u003cli\u003e2586_, [macOS], [CRITICAL]: fixed different places in C code which can\ntrigger a segfault.\u003c/li\u003e\n\u003cli\u003e2604_, [Linux]: \u003ccode\u003evirtual_memory()\u003c/code\u003e_ \u0026quot;used\u0026quot; memory does not match recent\nversions of \u003ccode\u003efree\u003c/code\u003e CLI utility.  (patch by Isaac K. Ko)\u003c/li\u003e\n\u003cli\u003e2605_, [Linux]: \u003ccode\u003epsutil.sensors_battery()\u003c/code\u003e reports a negative amount for\nseconds left.\u003c/li\u003e\n\u003cli\u003e2607_, [Windows]: \u003ccode\u003eWindowsService.description()\u003c/code\u003e method may fail with\n\u003ccode\u003eERROR_NOT_FOUND\u003c/code\u003e. Now it returns an empty string instead.\u003c/li\u003e\n\u003cli\u003e2610:, [macOS], [CRITICAL]: fix \u003ccode\u003ecpu_freq()\u003c/code\u003e_ segfault on ARM architectures.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/0d18187e79b349e577fadabd3589f8fdbf99bf5a\"\u003e\u003ccode\u003e0d18187\u003c/code\u003e\u003c/a\u003e Revert HISTORY notes about \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2629\"\u003e#2629\u003c/a\u003e. We still do publish 3.6 and 3.7 wheels.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/229e2de232860fe22e2c2884c20b8979c643d5c6\"\u003e\u003ccode\u003e229e2de\u003c/code\u003e\u003c/a\u003e Pre-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/fb75b28226ec8e6b9e5b9eefa05a62de579cc114\"\u003e\u003ccode\u003efb75b28\u003c/code\u003e\u003c/a\u003e Chore: skip CI tests except on Python 3.8 and 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/3a4c01638bc61c77f43a05aea5bc6e1ddc81c6c4\"\u003e\u003ccode\u003e3a4c016\u003c/code\u003e\u003c/a\u003e Stop publishing wheels for Python 3.6 and 3.7 (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2629\"\u003e#2629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/83e4f7fdd76051dd8e0eeed99e2bf5fc881a2960\"\u003e\u003ccode\u003e83e4f7f\u003c/code\u003e\u003c/a\u003e OSX: disable failing test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/df0d4e2637917377bd5971f1745e881b75f2c6e2\"\u003e\u003ccode\u003edf0d4e2\u003c/code\u003e\u003c/a\u003e Call GetExtended[Tcp|Udp]Table twice under free-threaded build (round 2) (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2627\"\u003e#2627\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/dcbfb81e863fa2b8688ccd8da27b09b539404688\"\u003e\u003ccode\u003edcbfb81\u003c/code\u003e\u003c/a\u003e [Windows] fix unicode issues around service APIs (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2626\"\u003e#2626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/ef72dcd076f1cec94ba50ec30b5dbebb272845d0\"\u003e\u003ccode\u003eef72dcd\u003c/code\u003e\u003c/a\u003e revert \u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2590\"\u003e#2590\u003c/a\u003e (Call GetExtended[Tcp|Udp]Table twice under free-threaded build)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/8773698006d387db90b3982d78fd4ff6b2ebe71c\"\u003e\u003ccode\u003e8773698\u003c/code\u003e\u003c/a\u003e small refact around UTXENT_MUTEX_LOCK\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/giampaolo/psutil/commit/13b711fc3ffa384d481e03881e46ae48009c4eeb\"\u003e\u003ccode\u003e13b711f\u003c/code\u003e\u003c/a\u003e Lock around uses of getutent/setutent/endutent (\u003ca href=\"https://redirect.github.com/giampaolo/psutil/issues/2615\"\u003e#2615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/giampaolo/psutil/compare/release-7.0.0...release-7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.2.1 to 8.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.0\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.0 feature release. A feature release may include new features, remove previously deprecated code, add new deprecation, or introduce potentially breaking changes.\u003c/p\u003e\n\u003cp\u003eWe encourage everyone to upgrade. You can read more about our \u003ca href=\"https://palletsprojects.com/versions\"\u003eVersion Support Policy\u003c/a\u003e on our website.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.0/\"\u003ehttps://pypi.org/project/click/8.3.0/\u003c/a\u003e\nChanges:  \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-0\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-0\u003c/a\u003e\nMilestone \u003ca href=\"https://github.com/pallets/click/milestone/27\"\u003ehttps://github.com/pallets/click/milestone/27\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: \u003ca href=\"https://redirect.github.com/pallets/click/issues/1992\"\u003e#1992\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2514\"\u003e#2514\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2610\"\u003e#2610\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3024\"\u003e#3024\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2164\"\u003e#2164\u003c/a\u003e\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3030\"\u003e#3030\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option \u003ca href=\"https://redirect.github.com/pallets/click/issues/2813\"\u003e#2813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2995\"\u003e#2995\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3013\"\u003e#3013\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3023\"\u003e#3023\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner.  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2939\"\u003e#2939\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.2.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.2.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.2.2/\"\u003ehttps://pypi.org/project/click/8.2.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-2-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-2-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/25\"\u003ehttps://github.com/pallets/click/milestone/25\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/2952\"\u003e#2952\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2956\"\u003e#2956\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying functino \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2777\"\u003e#2777\u003c/a\u003e  \u003ca href=\"https://redirect.github.com/pallets/click/issues/2990\"\u003e#2990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2911\"\u003e#2911\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3004\"\u003e#3004\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2703\"\u003e#2703\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2846\"\u003e#2846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. \u003ca href=\"https://redirect.github.com/pallets/click/issues/2971\"\u003e#2971\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2972\"\u003e#2972\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.0\u003c/h2\u003e\n\u003cp\u003eReleased 2025-09-15\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eImproved flag option handling\u003c/strong\u003e: Reworked the relationship between \u003ccode\u003eflag_value\u003c/code\u003e\nand \u003ccode\u003edefault\u003c/code\u003e parameters for better consistency:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter value is now preserved as-is and passed directly\nto CLI functions (no more unexpected transformations)\u003c/li\u003e\n\u003cli\u003eException: flag options with \u003ccode\u003edefault=True\u003c/code\u003e maintain backward compatibility\nby defaulting to their \u003ccode\u003eflag_value\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003edefault\u003c/code\u003e parameter can now be any type (\u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003eNone\u003c/code\u003e, etc.)\u003c/li\u003e\n\u003cli\u003eFixes inconsistencies reported in: :issue:\u003ccode\u003e1992\u003c/code\u003e :issue:\u003ccode\u003e2514\u003c/code\u003e :issue:\u003ccode\u003e2610\u003c/code\u003e\n:issue:\u003ccode\u003e3024\u003c/code\u003e :pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow \u003ccode\u003edefault\u003c/code\u003e to be set on \u003ccode\u003eArgument\u003c/code\u003e for \u003ccode\u003enargs = -1\u003c/code\u003e. :issue:\u003ccode\u003e2164\u003c/code\u003e\n:pr:\u003ccode\u003e3030\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for \u003ccode\u003enargs\u003c/code\u003e option in combination with flag\noption :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eShow correct auto complete value for nargs option in combination with flag option :issue:\u003ccode\u003e2813\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix handling of quoted and escaped parameters in Fish autocompletion. :issue:\u003ccode\u003e2995\u003c/code\u003e :pr:\u003ccode\u003e3013\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLazily import \u003ccode\u003eshutil\u003c/code\u003e. :pr:\u003ccode\u003e3023\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eProperly forward exception information to resources registered with\n\u003ccode\u003eclick.core.Context.with_resource()\u003c/code\u003e. :issue:\u003ccode\u003e2447\u003c/code\u003e :pr:\u003ccode\u003e3058\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix regression related to EOF handling in CliRunner. :issue:\u003ccode\u003e2939\u003c/code\u003e:pr:\u003ccode\u003e2940\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 8.2.2\u003c/h2\u003e\n\u003cp\u003eReleased 2025-07-31\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix reconciliation of \u003ccode\u003edefault\u003c/code\u003e, \u003ccode\u003eflag_value\u003c/code\u003e and \u003ccode\u003etype\u003c/code\u003e parameters for\nflag options, as well as parsing and normalization of environment variables.\n:issue:\u003ccode\u003e2952\u003c/code\u003e :pr:\u003ccode\u003e2956\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix typing issue in \u003ccode\u003eBadParameter\u003c/code\u003e and \u003ccode\u003eMissingParameter\u003c/code\u003e exceptions for the\nparameter \u003ccode\u003eparam_hint\u003c/code\u003e that did not allow for a sequence of string where the\nunderlying function \u003ccode\u003e_join_param_hints\u003c/code\u003e allows for it. :issue:\u003ccode\u003e2777\u003c/code\u003e :pr:\u003ccode\u003e2990\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eUse the value of \u003ccode\u003eEnum\u003c/code\u003e choices to render their default value in help\nscreen. Refs :issue:\u003ccode\u003e2911\u003c/code\u003e :pr:\u003ccode\u003e3004\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix completion for the Z shell (\u003ccode\u003ezsh\u003c/code\u003e) for completion items containing\ncolons. :issue:\u003ccode\u003e2703\u003c/code\u003e :pr:\u003ccode\u003e2846\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eDon't include envvar in error hint when not configured. :issue:\u003ccode\u003e2971\u003c/code\u003e :pr:\u003ccode\u003e2972\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix a rare race in \u003ccode\u003eclick.testing.StreamMixer\u003c/code\u003e's finalization that manifested\nas a \u003ccode\u003eValueError\u003c/code\u003e on close in a multi-threaded test session.\n:issue:\u003ccode\u003e2993\u003c/code\u003e :pr:\u003ccode\u003e2991\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/00fadb8904387158ce6e9aa1573be770446895c1\"\u003e\u003ccode\u003e00fadb8\u003c/code\u003e\u003c/a\u003e Release version 8.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/2a0e3ba907927ade6951d5732b775f11b54cb766\"\u003e\u003ccode\u003e2a0e3ba\u003c/code\u003e\u003c/a\u003e testing/CliRunner: Fix regression related to EOF introduced in 262bdf0 (\u003ca href=\"https://redirect.github.com/pallets/click/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/e11a1efc3395e998a1521a0dc35672a799e78d30\"\u003e\u003ccode\u003ee11a1ef\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into fix-cli-runner-prompt-eof-handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/36deba8a95a2585de1a2aa4475b7f054f52830ac\"\u003e\u003ccode\u003e36deba8\u003c/code\u003e\u003c/a\u003e Forward exception information to resources registered in a context (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3058\"\u003e#3058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/f2cae7ae997cd32311cab3dede4c2b89fe05e191\"\u003e\u003ccode\u003ef2cae7a\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Add summary of PR to changelog for 8.3.x\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/7c7ec36354f49d1a092cb077fa4881ea4d70ba01\"\u003e\u003ccode\u003e7c7ec36\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Split resource exception handling tests in single and nested\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/92129c552da88ac30b578132031efa4b003ecc46\"\u003e\u003ccode\u003e92129c5\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Added exception forwarding to context tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/555fa9bb37770a6845a98be60b0c84876775552e\"\u003e\u003ccode\u003e555fa9b\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2447\"\u003e#2447\u003c/a\u003e Forward exception data to exit stack when calling \u003ccode\u003e__exit__\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/16fe802a3f96c4c8fa3cd382f1a7577fda0c5321\"\u003e\u003ccode\u003e16fe802\u003c/code\u003e\u003c/a\u003e Add more tests on \u003ccode\u003eEnum\u003c/code\u003e rendering (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/d36de6fc67882f23d7a7d61cd4c0e25e0f88b0ac\"\u003e\u003ccode\u003ed36de6f\u003c/code\u003e\u003c/a\u003e Add more tests on Enum rendering their item's names and not values\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.2.1...8.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-core` from 2.33.2 to 2.39.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-core/releases\"\u003epydantic-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.39.0 2025-08-11\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: improve onboarding by \u003ca href=\"https://github.com/PrettyWood\"\u003e\u003ccode\u003e@​PrettyWood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1775\"\u003epydantic/pydantic-core#1775\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild: bump pytest to 8.4 by \u003ca href=\"https://github.com/PrettyWood\"\u003e\u003ccode\u003e@​PrettyWood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1781\"\u003epydantic/pydantic-core#1781\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eexclude_computed_fields\u003c/code\u003e serialization option by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1780\"\u003epydantic/pydantic-core#1780\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-core/compare/v2.38.0...v2.39.0\"\u003ehttps://github.com/pydantic/pydantic-core/compare/v2.38.0...v2.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.38.0 2025-08-04\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSwitch to PEP 639 license information by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1769\"\u003epydantic/pydantic-core#1769\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSimplify \u003ccode\u003eValidationError.from_exception_data()\u003c/code\u003e docstring by \u003ca href=\"https://github.com/kinuax\"\u003e\u003ccode\u003e@​kinuax\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1768\"\u003epydantic/pydantic-core#1768\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: make TzInfo instantiable without any arguments by \u003ca href=\"https://github.com/PrettyWood\"\u003e\u003ccode\u003e@​PrettyWood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1777\"\u003epydantic/pydantic-core#1777\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: make everything work on nightly by \u003ca href=\"https://github.com/PrettyWood\"\u003e\u003ccode\u003e@​PrettyWood\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1776\"\u003epydantic/pydantic-core#1776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump serde_json from 1.0.140 to 1.0.142 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1772\"\u003epydantic/pydantic-core#1772\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild wheels for GraalPy by \u003ca href=\"https://github.com/msimacek\"\u003e\u003ccode\u003e@​msimacek\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1771\"\u003epydantic/pydantic-core#1771\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebump speedate to 0.17 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1778\"\u003epydantic/pydantic-core#1778\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImplement val_temporal_unit for deciding how datetimes and dates timestamps get validated. by \u003ca href=\"https://github.com/ollz272\"\u003e\u003ccode\u003e@​ollz272\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1751\"\u003epydantic/pydantic-core#1751\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kinuax\"\u003e\u003ccode\u003e@​kinuax\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1768\"\u003epydantic/pydantic-core#1768\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/msimacek\"\u003e\u003ccode\u003e@​msimacek\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1771\"\u003epydantic/pydantic-core#1771\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-core/compare/v2.37.2...v2.38.0\"\u003ehttps://github.com/pydantic/pydantic-core/compare/v2.37.2...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.37.2 2025-07-26\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing entries in \u003ccode\u003emissing-sentinel\u003c/code\u003e core schema by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1765\"\u003epydantic/pydantic-core#1765\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-core/compare/v2.37.1...v2.37.2\"\u003ehttps://github.com/pydantic/pydantic-core/compare/v2.37.1...v2.37.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.37.1 2025-07-25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eIdentical to \u003ca href=\"https://github.com/pydantic/pydantic-core/releases/tag/v2.37.0\"\u003ev2.37.0\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003ev2.37.0 2025-07-25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eMISSING\u003c/code\u003e sentinel by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1711\"\u003epydantic/pydantic-core#1711\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-core/compare/v2.36.0...v2.37.0\"\u003ehttps://github.com/pydantic/pydantic-core/compare/v2.36.0...v2.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.36.0 2025-07-23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eStop testing free-threaded on 3.13 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1738\"\u003epydantic/pydantic-core#1738\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump smallvec from 1.15.0 to 1.15.1 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1752\"\u003epydantic/pydantic-core#1752\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump uuid from 1.16.0 to 1.17.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1754\"\u003epydantic/pydantic-core#1754\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-core/commit/e0bc980764ec5d5f59c7d451948df937b5a1921f\"\u003e\u003ccode\u003ee0bc980\u003c/code\u003e\u003c/a\u003e Bump version to v2.39.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/issues/1783\"\u003e#1783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-core/commit/5da40643c7210f2099a399291b625c95099c99b8\"\u003e\u003ccode\u003e5da4064\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eexclude_computed_fields\u003c/code\u003e serialization option (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/issues/1780\"\u003e#1780\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-core/commit/4ba86e8b4c78c0631d354ca5469fdd2789775ab0\"\u003e\u003ccode\u003e4ba86e8\u003c/code\u003e\u003c/a\u003e build: bump pytest to 8.4 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/issues/1781\"\u003e#1781\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-core/commit/17cbe988de187701dd21d5cd2306086ced5a8872\"\u003e\u003ccode\u003e17cbe98\u003c/code\u003e\u003c/a\u003e docs: improve onboarding (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/issues/1775\"\u003e#1775\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-core/commit/57e44118099881e4efb61f99be273a721549d892\"\u003e\u003ccode\u003e57e4411\u003c/code\u003e\u003c/a\u003e release: 2.38.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/issues/1779\"\u003e#1779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-core/commit/a1b87573124a7c2e7009ff20ac15d2deacc6f431\"\u003e\u003ccode\u003ea1b8757\u003c/code\u003e\u003c/a\u003e Implement val_temporal_unit for deciding how datetimes and dates timestamps g...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-core/commit/4c4ac6ed8485c1208dbca8e8f194ae155175c53d\"\u003e\u003ccode\u003e4c4ac6e\u003c/code\u003e\u003c/a\u003e bump speedate to 0.17 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/issues/1778\"\u003e#1778\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-core/commit/46796b60bc9e3d36cc0e58e1df29cdf99b1bccec\"\u003e\u003ccode\u003e46796b6\u003c/code\u003e\u003c/a\u003e Build wheels for GraalPy (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/issues/1771\"\u003e#1771\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-core/commit/1a945f6d3ac7cab49ec6e99e48abfdfc2e2cb316\"\u003e\u003ccode\u003e1a945f6\u003c/code\u003e\u003c/a\u003e Bump serde_json from 1.0.140 to 1.0.142 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/issues/1772\"\u003e#1772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-core/commit/1ea1fef1c4e6160c5ebc2e7d837027f62283ca60\"\u003e\u003ccode\u003e1ea1fef\u003c/code\u003e\u003c/a\u003e fix: make everything work on nightly (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/issues/1776\"\u003e#1776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-core/compare/v2.33.2...v2.39.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyparsing` from 3.2.4 to 3.2.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyparsing/pyparsing/blob/master/CHANGES\"\u003epyparsing's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.2.5 - September, 2025\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eJINX! Well, 3.2.4 had a bug for \u003ccode\u003eWord\u003c/code\u003e expressions that include a space\ncharacter, if that expression was then copied, either directly with .copy() or\nby adding a results name, or including in another construct (like \u003ccode\u003eDelimitedList\u003c/code\u003e)\nthat makes a copy internally. Issue \u003ca href=\"https://redirect.github.com/pyparsing/pyparsing/issues/618\"\u003e#618\u003c/a\u003e, reported by mstinberg, among others -\nthanks, and sorry for the inconvenience.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyparsing/pyparsing/commit/dbbd53ad1cd0ab31ae2a8fee5a64a718788b63fb\"\u003e\u003ccode\u003edbbd53a\u003c/code\u003e\u003c/a\u003e More unit tests and some comments for traceability to Issue \u003ca href=\"https://redirect.github.com/pyparsing/pyparsing/issues/618\"\u003e#618\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyparsing/pyparsing/commit/f5bdb2deff92859e068937f2ae502136b38ad16f\"\u003e\u003ccode\u003ef5bdb2d\u003c/code\u003e\u003c/a\u003e Issue \u003ca href=\"https://redirect.github.com/pyparsing/pyparsing/issues/618\"\u003e#618\u003c/a\u003e - fix reference to re_match attribute in copy of Word object to fi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyparsing/pyparsing/commit/8c61893d362b21d66fa3646c073295235ef166fd\"\u003e\u003ccode\u003e8c61893\u003c/code\u003e\u003c/a\u003e Prep for 3.2.5 release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyparsing/pyparsing/compare/3.2.4...3.2.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e` 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)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/Josh-moreton/alchemiser-quant/pull/1051","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Josh-moreton%2Falchemiser-quant/issues/1051","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1051/packages"}},{"old_version":"4.48.1","new_version":"4.48.2","update_type":"patch","path":null,"pr_created_at":"2025-09-22T03:11:23.000Z","version_change":"4.48.1 → 4.48.2","issue":{"uuid":"2847763833","node_id":"PR_kwDOLG5FhM6pvW15","number":284,"state":"closed","title":"Bump dependency-injector from 4.48.1 to 4.48.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":["uriyyo"],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-09-22T03:11:35.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-22T03:11:23.000Z","updated_at":"2025-09-22T03:11:36.000Z","time_to_close":12,"merged_at":"2025-09-22T03:11:35.000Z","merged_by":"github-actions[bot]","closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"dependency-injector","old_version":"4.48.1","new_version":"4.48.2","repository_url":"https://github.com/ets-labs/python-dependency-injector"}],"path":null,"ecosystem":"pip"},"body":"Bumps [dependency-injector](https://github.com/ets-labs/python-dependency-injector) from 4.48.1 to 4.48.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.48.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix grammar in Declarative Container documentation by \u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd warnings for unresolved markers by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\"\u003ehttps://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild ABI3 wheels only for Python\u0026gt;=3.10 by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\"\u003ehttps://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.2\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5a1aef920372da6a95d14865caab10061aea7104\"\u003e\u003ccode\u003e5a1aef9\u003c/code\u003e\u003c/a\u003e Merge branch 'release/4.48.2'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5acddac9c15e87edff76846e8903a3c4552da22b\"\u003e\u003ccode\u003e5acddac\u003c/code\u003e\u003c/a\u003e Add changelog entry for v4.48.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/9f77976a294d7eeda6176610155f1fe0b91eea2d\"\u003e\u003ccode\u003e9f77976\u003c/code\u003e\u003c/a\u003e Fix typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\"\u003e\u003ccode\u003e891f8b4\u003c/code\u003e\u003c/a\u003e Build ABI3 wheels only for Python\u0026gt;=3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/8c2a32213a71c82334d009fbf3ee69dc85221b78\"\u003e\u003ccode\u003e8c2a322\u003c/code\u003e\u003c/a\u003e Add wheels Makefile target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/91a741a6332ba9e0130e3d80b4191b4010f9f726\"\u003e\u003ccode\u003e91a741a\u003c/code\u003e\u003c/a\u003e Bump Cython version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\"\u003e\u003ccode\u003e1222827\u003c/code\u003e\u003c/a\u003e Add warnings for unresolved markers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/759d89e9bdc35f0146361e5ff89fd36e99cc6184\"\u003e\u003ccode\u003e759d89e\u003c/code\u003e\u003c/a\u003e Add reprs to wiring markers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1500a1de364cd97ccebd812a28a9b6f4c344a0ef\"\u003e\u003ccode\u003e1500a1d\u003c/code\u003e\u003c/a\u003e docs(declarative.rst): fix grammar in Declarative Container documentation  (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/7df26d1ac76aabf52f74ce75e5f908ccf28b4898\"\u003e\u003ccode\u003e7df26d1\u003c/code\u003e\u003c/a\u003e docs(declarative.rst): fix grammar in Declarative Container documentation  (#...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=dependency-injector\u0026package-manager=pip\u0026previous-version=4.48.1\u0026new-version=4.48.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/uriyyo/fastapi-async-safe-dependencies/pull/284","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/uriyyo%2Ffastapi-async-safe-dependencies/issues/284","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/284/packages"}},{"old_version":"4.46.0","new_version":"4.48.2","update_type":"minor","path":null,"pr_created_at":"2025-09-22T00:26:52.000Z","version_change":"4.46.0 → 4.48.2","issue":{"uuid":"2847552748","node_id":"PR_kwDON6D7-86pujTs","number":95,"state":"open","title":"pip(deps): bump the all-dependencies group across 1 directory with 23 updates","user":"dependabot[bot]","labels":["dependencies","backend"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-22T00:26:52.000Z","updated_at":"2025-09-22T00:26:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"pip(deps): bump","group_name":"all-dependencies","update_count":23,"packages":[{"name":"fastapi","old_version":"0.115.12","new_version":"0.117.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.34.2","new_version":"0.36.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"python-dotenv","old_version":"1.1.0","new_version":"1.1.1","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"atlassian-python-api","old_version":"4.0.3","new_version":"4.0.7","repository_url":"https://github.com/atlassian-api/atlassian-python-api"},{"name":"pandas","old_version":"2.2.3","new_version":"2.3.2","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"pyarrow","old_version":"19.0.1","new_version":"21.0.0","repository_url":"https://github.com/apache/arrow"},{"name":"pydantic","old_version":"2.11.3","new_version":"2.11.9","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.9.1","new_version":"2.10.1","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"sqlalchemy","old_version":"2.0.40","new_version":"2.0.43","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"alembic","old_version":"1.15.2","new_version":"1.16.5","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"psycopg","old_version":"3.2.6","new_version":"3.2.10","repository_url":"https://github.com/psycopg/psycopg"},{"name":"psycopg-c","old_version":"3.2.6","new_version":"3.2.10","repository_url":"https://github.com/psycopg/psycopg"},{"name":"greenlet","old_version":"3.2.0","new_version":"3.2.4","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"python-jose","old_version":"3.4.0","new_version":"3.5.0"},{"name":"dependency-injector","old_version":"4.46.0","new_version":"4.48.2","repository_url":"https://github.com/ets-labs/python-dependency-injector"},{"name":"black","old_version":"25.1.0","new_version":"25.9.0","repository_url":"https://github.com/psf/black"},{"name":"flake8","old_version":"7.2.0","new_version":"7.3.0","repository_url":"https://github.com/pycqa/flake8"},{"name":"flake8-import-order","old_version":"0.18.2","new_version":"0.19.2","repository_url":"https://github.com/PyCQA/flake8-import-order"},{"name":"pytest","old_version":"8.3.5","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"0.26.0","new_version":"1.2.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pytest-cov","old_version":"6.1.1","new_version":"7.0.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"yamllint","old_version":"1.37.0","new_version":"1.37.1","repository_url":"https://github.com/adrienverge/yamllint"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-dependencies group with 23 updates in the /backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.115.12` | `0.117.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.34.2` | `0.36.0` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.0` | `1.1.1` |\n| [atlassian-python-api](https://github.com/atlassian-api/atlassian-python-api) | `4.0.3` | `4.0.7` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.2.3` | `2.3.2` |\n| [pyarrow](https://github.com/apache/arrow) | `19.0.1` | `21.0.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.3` | `2.11.9` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.9.1` | `2.10.1` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.40` | `2.0.43` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.15.2` | `1.16.5` |\n| [psycopg](https://github.com/psycopg/psycopg) | `3.2.6` | `3.2.10` |\n| [psycopg-c](https://github.com/psycopg/psycopg) | `3.2.6` | `3.2.10` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.0` | `3.2.4` |\n| [python-jose[cryptography]](https://github.com/mpdavis/python-jose) | `3.4.0` | `3.5.0` |\n| [dependency-injector](https://github.com/ets-labs/python-dependency-injector) | `4.46.0` | `4.48.2` |\n| [black](https://github.com/psf/black) | `25.1.0` | `25.9.0` |\n| [flake8](https://github.com/pycqa/flake8) | `7.2.0` | `7.3.0` |\n| [flake8-import-order](https://github.com/PyCQA/flake8-import-order) | `0.18.2` | `0.19.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `8.4.2` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.26.0` | `1.2.0` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `6.1.1` | `7.0.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.3.0` |\n| [yamllint](https://github.com/adrienverge/yamllint) | `1.37.0` | `1.37.1` |\n\n\nUpdates `fastapi` from 0.115.12 to 0.117.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.117.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix validation error when \u003ccode\u003eFile\u003c/code\u003e is declared after \u003ccode\u003eForm\u003c/code\u003e parameter. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/11194\"\u003e#11194\u003c/a\u003e by \u003ca href=\"https://github.com/thomasleveil\"\u003e\u003ccode\u003e@​thomasleveil\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.117.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨  Allow \u003ccode\u003eNone\u003c/code\u003e as return type for bodiless responses. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/9425\"\u003e#9425\u003c/a\u003e by \u003ca href=\"https://github.com/hofrob\"\u003e\u003ccode\u003e@​hofrob\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Allow array values for OpenAPI schema \u003ccode\u003etype\u003c/code\u003e field. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13639\"\u003e#13639\u003c/a\u003e by \u003ca href=\"https://github.com/sammasak\"\u003e\u003ccode\u003e@​sammasak\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✨ Add OpenAPI \u003ccode\u003eexternal_docs\u003c/code\u003e parameter to \u003ccode\u003eFastAPI\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13713\"\u003e#13713\u003c/a\u003e by \u003ca href=\"https://github.com/cmtoro\"\u003e\u003ccode\u003e@​cmtoro\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⚡️ Fix \u003ccode\u003edefault_factory\u003c/code\u003e for response model field with Pydantic V1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/9704\"\u003e#9704\u003c/a\u003e by \u003ca href=\"https://github.com/vvanglro\"\u003e\u003ccode\u003e@​vvanglro\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix inconsistent processing of model docstring formfeed char with Pydantic V1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/6039\"\u003e#6039\u003c/a\u003e by \u003ca href=\"https://github.com/MaxwellPayne\"\u003e\u003ccode\u003e@​MaxwellPayne\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003ejsonable_encoder\u003c/code\u003e alters \u003ccode\u003ejson_encoders\u003c/code\u003e of Pydantic v1 objects. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/4972\"\u003e#4972\u003c/a\u003e by \u003ca href=\"https://github.com/aboubacs\"\u003e\u003ccode\u003e@​aboubacs\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Reenable \u003ccode\u003eallow_arbitrary_types\u003c/code\u003e when only 1 argument is used on the API endpoint. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13694\"\u003e#13694\u003c/a\u003e by \u003ca href=\"https://github.com/rmawatson\"\u003e\u003ccode\u003e@​rmawatson\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🐛 Fix \u003ccode\u003einspect.getcoroutinefunction()\u003c/code\u003e can break testing with \u003ccode\u003eunittest.mock.patch()\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14022\"\u003e#14022\u003c/a\u003e by \u003ca href=\"https://github.com/secrett2633\"\u003e\u003ccode\u003e@​secrett2633\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Create \u003ccode\u003edependency-cache\u003c/code\u003e dict in \u003ccode\u003esolve_dependencies\u003c/code\u003e only if \u003ccode\u003eNone\u003c/code\u003e (don't re-create if empty). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13689\"\u003e#13689\u003c/a\u003e by \u003ca href=\"https://github.com/bokshitsky\"\u003e\u003ccode\u003e@​bokshitsky\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✅ Enable test case for duplicated headers in \u003ccode\u003etest_tutorial/test_header_params/test_tutorial003.py\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13864\"\u003e#13864\u003c/a\u003e by \u003ca href=\"https://github.com/Amogha-ark\"\u003e\u003ccode\u003e@​Amogha-ark\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📌 Pin \u003ccode\u003ehttpx\u003c/code\u003e to \u003ccode\u003e\u0026gt;=0.23.0,\u0026lt;1.0.0\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14086\"\u003e#14086\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add note about Cookies and JavaScript on \u003ccode\u003etutorial/cookie-params.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13510\"\u003e#13510\u003c/a\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Remove outdated formatting from \u003ccode\u003epath-params-numeric-validations.md\u003c/code\u003e for languages \u003ccode\u003een\u003c/code\u003e, \u003ccode\u003ees\u003c/code\u003e and \u003ccode\u003euk\u003c/code\u003e.. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14059\"\u003e#14059\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix and Improve English Documentation. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14048\"\u003e#14048\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update prompts and German translation. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14015\"\u003e#14015\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Simplify tests for response_model. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14062\"\u003e#14062\u003c/a\u003e by \u003ca href=\"https://github.com/dynamicy\"\u003e\u003ccode\u003e@​dynamicy\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🚨 Install pydantic.mypy plugin. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14081\"\u003e#14081\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✅ Add LLM test file. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14049\"\u003e#14049\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Update translations script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13968\"\u003e#13968\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🛠️ Update \u003ccode\u003edocs.py generate-readme\u003c/code\u003e command to remove permalinks from headers. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14055\"\u003e#14055\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆️ Update mypy to 1.14.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/12970\"\u003e#12970\u003c/a\u003e by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.116.2\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Upgrade Starlette supported version range to \u0026gt;=0.40.0,\u0026lt;0.49.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14077\"\u003e#14077\u003c/a\u003e by \u003ca href=\"https://github.com/musicinmybrain\"\u003e\u003ccode\u003e@​musicinmybrain\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/784f06cb9b7cc63f6a0cb2bc9cf238473eef93e2\"\u003e\u003ccode\u003e784f06c\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.117.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b5c05893b4c43c93ff94761270ea750c0bd9e30e\"\u003e\u003ccode\u003eb5c0589\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/44fc67632bcdae4d078cb11b1a319ac122cbb06f\"\u003e\u003ccode\u003e44fc676\u003c/code\u003e\u003c/a\u003e 🐛 Fix validation error when \u003ccode\u003eFile\u003c/code\u003e is declared after \u003ccode\u003eForm\u003c/code\u003e parameter (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/11194\"\u003e#11194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/a84001000e59ff362e74f93b8d9a58a4309dac2d\"\u003e\u003ccode\u003ea840010\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/382d083e26a28e95c731e85345c85c6dc99b08b4\"\u003e\u003ccode\u003e382d083\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.117.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/a7f2dbe976bf72703376f0cd04487bfc4a849f83\"\u003e\u003ccode\u003ea7f2dbe\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/f1e6f978ce10a6f9b4c668350a79462e9ac330a8\"\u003e\u003ccode\u003ef1e6f97\u003c/code\u003e\u003c/a\u003e ⚡️ Fix \u003ccode\u003edefault_factory\u003c/code\u003e for response model field with Pydantic V1 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/9704\"\u003e#9704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b01d5c97a09b8f4f95b9e9b0d6bc083a23cdea20\"\u003e\u003ccode\u003eb01d5c9\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b51ec36f2e442495de5e4c22ae51a8f5c44917eb\"\u003e\u003ccode\u003eb51ec36\u003c/code\u003e\u003c/a\u003e ✨  Allow \u003ccode\u003eNone\u003c/code\u003e as return type for bodiless responses (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/9425\"\u003e#9425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/0bdc3ca3732e3742e094bea2b320e9774659ac38\"\u003e\u003ccode\u003e0bdc3ca\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.115.12...0.117.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.34.2 to 0.36.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.36.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport custom IOLOOPs by \u003ca href=\"https://github.com/gnir-work\"\u003e\u003ccode\u003e@​gnir-work\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2435\"\u003eKludex/uvicorn#2435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow to provide importable string in \u003ccode\u003e--http\u003c/code\u003e, \u003ccode\u003e--ws\u003c/code\u003e and \u003ccode\u003e--loop\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2658\"\u003eKludex/uvicorn#2658\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch3\u003eNew Contributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gnir-work\"\u003e\u003ccode\u003e@​gnir-work\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2435\"\u003eKludex/uvicorn#2435\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/musicinmybrain\"\u003e\u003ccode\u003e@​musicinmybrain\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2659\"\u003eKludex/uvicorn#2659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/secrett2633\"\u003e\u003ccode\u003e@​secrett2633\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2684\"\u003eKludex/uvicorn#2684\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.35.0...0.36.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.35.0...0.36.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.35.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eWebSocketsSansIOProtocol\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2540\"\u003eencode/uvicorn#2540\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefine help message for option \u003ccode\u003e--proxy-headers\u003c/code\u003e by \u003ca href=\"https://github.com/zhangyoufu\"\u003e\u003ccode\u003e@​zhangyoufu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2653\"\u003eencode/uvicorn#2653\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zhangyoufu\"\u003e\u003ccode\u003e@​zhangyoufu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2653\"\u003eencode/uvicorn#2653\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/uvicorn/compare/0.34.3...0.35.0\"\u003ehttps://github.com/encode/uvicorn/compare/0.34.3...0.35.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.34.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDon't include \u003ccode\u003ecwd()\u003c/code\u003e when non-empty \u003ccode\u003e--reload-dirs\u003c/code\u003e is passed by \u003ca href=\"https://github.com/stinovlas\"\u003e\u003ccode\u003e@​stinovlas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2598\"\u003eencode/uvicorn#2598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApply \u003ccode\u003eget_client_addr\u003c/code\u003e formatting to WebSocket logging by \u003ca href=\"https://github.com/Harry-Lees\"\u003e\u003ccode\u003e@​Harry-Lees\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2636\"\u003eencode/uvicorn#2636\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: improve type hints by \u003ca href=\"https://github.com/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2638\"\u003eencode/uvicorn#2638\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stinovlas\"\u003e\u003ccode\u003e@​stinovlas\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2598\"\u003eencode/uvicorn#2598\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/LifeLex\"\u003e\u003ccode\u003e@​LifeLex\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2621\"\u003eencode/uvicorn#2621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Harry-Lees\"\u003e\u003ccode\u003e@​Harry-Lees\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2636\"\u003eencode/uvicorn#2636\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/waketzheng\"\u003e\u003ccode\u003e@​waketzheng\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2638\"\u003eencode/uvicorn#2638\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/encode/uvicorn/compare/0.34.2...0.34.3\"\u003ehttps://github.com/encode/uvicorn/compare/0.34.2...0.34.3\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.36.0 (September 20, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport custom IOLOOPs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2435\"\u003e#2435\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow to provide importable string in \u003ccode\u003e--http\u003c/code\u003e, \u003ccode\u003e--ws\u003c/code\u003e and \u003ccode\u003e--loop\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2658\"\u003e#2658\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.35.0 (June 28, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eWebSocketsSansIOProtocol\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2540\"\u003e#2540\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRefine help message for option \u003ccode\u003e--proxy-headers\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2653\"\u003e#2653\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.34.3 (June 1, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't include \u003ccode\u003ecwd()\u003c/code\u003e when non-empty \u003ccode\u003e--reload-dirs\u003c/code\u003e is passed (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2598\"\u003e#2598\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eApply \u003ccode\u003eget_client_addr\u003c/code\u003e formatting to WebSocket logging (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2636\"\u003e#2636\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0e3b18c39959ad4ec8bfe6cb7e11c82664aaa702\"\u003e\u003ccode\u003e0e3b18c\u003c/code\u003e\u003c/a\u003e Version 0.36.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2704\"\u003e#2704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/f84661d56eb14bbd29b995af8774c73856e3ce04\"\u003e\u003ccode\u003ef84661d\u003c/code\u003e\u003c/a\u003e chore: drop mention to scripts/publish (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2696\"\u003e#2696\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/dcd7e6c94e87b6ffbce378e4ada3d67654af975d\"\u003e\u003ccode\u003edcd7e6c\u003c/code\u003e\u003c/a\u003e docs: replace uvicorn.org by uvicorn.dev (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2703\"\u003e#2703\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/e5e7344a2554a0e4cd2f942c8699289edaf7b220\"\u003e\u003ccode\u003ee5e7344\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 6.6.1 to 6.7.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2701\"\u003e#2701\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/b40c4288c7283e3568642fa9e0c330f45ce5020d\"\u003e\u003ccode\u003eb40c428\u003c/code\u003e\u003c/a\u003e docs: add docs to uvicorn.dev (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2702\"\u003e#2702\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/dca6b1c529f2727ebb451726a69680c8dab06b9d\"\u003e\u003ccode\u003edca6b1c\u003c/code\u003e\u003c/a\u003e ci: update dependabot ecosystem from pip to uv (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2700\"\u003e#2700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/fe50e5d9933fc09c347b991d6376c02ada3f0f21\"\u003e\u003ccode\u003efe50e5d\u003c/code\u003e\u003c/a\u003e Add Marcelo Trylesinski to the license (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2699\"\u003e#2699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d41737158f9f1dec770f7e1607de000b546d41dd\"\u003e\u003ccode\u003ed417371\u003c/code\u003e\u003c/a\u003e ci: publish docs on \u003ccode\u003eworkflow_dispatch\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2695\"\u003e#2695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/bf337d62d5d645bd00f25777fd0740158814d2ed\"\u003e\u003ccode\u003ebf337d6\u003c/code\u003e\u003c/a\u003e Use uv instead of plain pip (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2693\"\u003e#2693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/ea9e01e3b06ad149e099de4d172abedf722fd971\"\u003e\u003ccode\u003eea9e01e\u003c/code\u003e\u003c/a\u003e chore: rename pipeline file to match starlette (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2692\"\u003e#2692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.34.2...0.36.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.1.0 to 1.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.1.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: ensure find_dotenv work reliably on python 3.13 by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003etheskumar/python-dotenv#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(cli): issue with execvpe on Windows by \u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003etheskumar/python-dotenv#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.1.1] - 2025-06-24\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCLI: Ensure \u003ccode\u003efind_dotenv\u003c/code\u003e work reliably on python 3.13 by [\u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/563\"\u003e#563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI: revert the use of execvpe on Windows by [\u003ca href=\"https://github.com/wrongontheinternet\"\u003e\u003ccode\u003e@​wrongontheinternet\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/566\"\u003e#566\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/16e660d384b942b11879b44500afbbe021650448\"\u003e\u003ccode\u003e16e660d\u003c/code\u003e\u003c/a\u003e Bump version: 1.1.0 → 1.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/667e82f18d6e5306894c8746c46b1da2d031bd23\"\u003e\u003ccode\u003e667e82f\u003c/code\u003e\u003c/a\u003e update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/9d85edb3b8652de4601f9ad8a7a49ad9909f898a\"\u003e\u003ccode\u003e9d85edb\u003c/code\u003e\u003c/a\u003e fix(cli): issue with execvpe on Windows (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/566\"\u003e#566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/8411987b9301f716245074872afa30646e9b9eb7\"\u003e\u003ccode\u003e8411987\u003c/code\u003e\u003c/a\u003e fix: ensure find_dotenv work reliably on python 3.13 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/563\"\u003e#563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/01f899733de664cda0550207067eb36a1795062f\"\u003e\u003ccode\u003e01f8997\u003c/code\u003e\u003c/a\u003e docs update\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.0...v1.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `atlassian-python-api` from 4.0.3 to 4.0.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/releases\"\u003eatlassian-python-api's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.0.7: Bugfix release notes\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSearch endpoint for Jira DC isn't working with /search/jql by \u003ca href=\"https://github.com/FallenAtticus\"\u003e\u003ccode\u003e@​FallenAtticus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1571\"\u003eatlassian-api/atlassian-python-api#1571\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/FallenAtticus\"\u003e\u003ccode\u003e@​FallenAtticus\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1571\"\u003eatlassian-api/atlassian-python-api#1571\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/compare/4.0.6...4.0.7\"\u003ehttps://github.com/atlassian-api/atlassian-python-api/compare/4.0.6...4.0.7\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.6: Confluence, Jira Cloud and BB\u003c/h2\u003e\n\u003cp\u003eHi!\nin that path release, adjustments for Confluence, Jira Cloud and Bitbucket\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/a32f6d1f23e3ed9635660554d783e6a2fab72b7d\"\u003eConfluence: get_all_pages_from_space add workaround\u003c/a\u003e \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1547\"\u003eatlassian-api/atlassian-python-api#1547\u003c/a\u003e\n\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/eebf86ec8cc26dfb9299dc70e33d6b4a60e78eda\"\u003eBitbucket: Add AppUser enrollments for User class appears\u003c/a\u003e \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1570\"\u003eatlassian-api/atlassian-python-api#1570\u003c/a\u003e\n[Jira Cloud]: adjustment of jql search](\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/b090c2e9da7de45ab3607a83d4d112e33307fdd2\"\u003ehttps://github.com/atlassian-api/atlassian-python-api/commit/b090c2e9da7de45ab3607a83d4d112e33307fdd2\u003c/a\u003e)\n\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/compare/4.0.5...4.0.6\"\u003ehttps://github.com/atlassian-api/atlassian-python-api/compare/4.0.5...4.0.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.5 Confluence next step for cloud, BB and Jira bugfixes\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Confluence]: Prepare dedicated module by \u003ca href=\"https://github.com/gonchik\"\u003e\u003ccode\u003e@​gonchik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1537\"\u003eatlassian-api/atlassian-python-api#1537\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: add an example to jira_add_comment.py by \u003ca href=\"https://github.com/dunterov\"\u003e\u003ccode\u003e@​dunterov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1540\"\u003eatlassian-api/atlassian-python-api#1540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Bitbucket] Adding filterText REST parameter for Get pull requests for by \u003ca href=\"https://github.com/thopx14\"\u003e\u003ccode\u003e@​thopx14\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1542\"\u003eatlassian-api/atlassian-python-api#1542\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVisualization for the atlassian-python-api codebase by \u003ca href=\"https://github.com/ivanmilevtues\"\u003e\u003ccode\u003e@​ivanmilevtues\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1543\"\u003eatlassian-api/atlassian-python-api#1543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Confluence] Sanitize attachment filenames to prevent download failures by \u003ca href=\"https://github.com/AntonioContrerasO\"\u003e\u003ccode\u003e@​AntonioContrerasO\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1549\"\u003eatlassian-api/atlassian-python-api#1549\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Doc] [Jira] Update info about jira.get_issue_tree_recursive method by \u003ca href=\"https://github.com/bore-alex\"\u003e\u003ccode\u003e@​bore-alex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1544\"\u003eatlassian-api/atlassian-python-api#1544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Confluence] Update confluence/\u003cstrong\u003einit\u003c/strong\u003e.py with add space permissions by \u003ca href=\"https://github.com/neyrat-salvator\"\u003e\u003ccode\u003e@​neyrat-salvator\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1557\"\u003eatlassian-api/atlassian-python-api#1557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Wrapper ]Update errors.py for JSON-RPC Errors by \u003ca href=\"https://github.com/neyrat-salvator\"\u003e\u003ccode\u003e@​neyrat-salvator\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1564\"\u003eatlassian-api/atlassian-python-api#1564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate license identifier by \u003ca href=\"https://github.com/leifdreizler\"\u003e\u003ccode\u003e@​leifdreizler\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1563\"\u003eatlassian-api/atlassian-python-api#1563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake using session the default by \u003ca href=\"https://github.com/Matthew-Jenkins\"\u003e\u003ccode\u003e@​Matthew-Jenkins\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1566\"\u003eatlassian-api/atlassian-python-api#1566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Jira] Update jira.py by adding set_issue_status_by_transition_name by \u003ca href=\"https://github.com/neyrat-salvator\"\u003e\u003ccode\u003e@​neyrat-salvator\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1567\"\u003eatlassian-api/atlassian-python-api#1567\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Bitbucket] Added Download class to retrieve pipeline-generated artifacts by \u003ca href=\"https://github.com/denisab85\"\u003e\u003ccode\u003e@​denisab85\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1551\"\u003eatlassian-api/atlassian-python-api#1551\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thopx14\"\u003e\u003ccode\u003e@​thopx14\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1542\"\u003eatlassian-api/atlassian-python-api#1542\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ivanmilevtues\"\u003e\u003ccode\u003e@​ivanmilevtues\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1543\"\u003eatlassian-api/atlassian-python-api#1543\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AntonioContrerasO\"\u003e\u003ccode\u003e@​AntonioContrerasO\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1549\"\u003eatlassian-api/atlassian-python-api#1549\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bore-alex\"\u003e\u003ccode\u003e@​bore-alex\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1544\"\u003eatlassian-api/atlassian-python-api#1544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/neyrat-salvator\"\u003e\u003ccode\u003e@​neyrat-salvator\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1557\"\u003eatlassian-api/atlassian-python-api#1557\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/leifdreizler\"\u003e\u003ccode\u003e@​leifdreizler\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1563\"\u003eatlassian-api/atlassian-python-api#1563\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Matthew-Jenkins\"\u003e\u003ccode\u003e@​Matthew-Jenkins\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1566\"\u003eatlassian-api/atlassian-python-api#1566\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denisab85\"\u003e\u003ccode\u003e@​denisab85\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/pull/1551\"\u003eatlassian-api/atlassian-python-api#1551\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/compare/4.0.4...4.0.5\"\u003ehttps://github.com/atlassian-api/atlassian-python-api/compare/4.0.4...4.0.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.4 : BB, Confluence, Jira\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/412f6b37bced32b184c2166cba0b8d306bac63bb\"\u003e\u003ccode\u003e412f6b3\u003c/code\u003e\u003c/a\u003e Jira: Clarification for cloud create searcher field \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1552\"\u003e#1552\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/d16700a1831a6f1d61a9347cdf38e3ec1d7108bd\"\u003e\u003ccode\u003ed16700a\u003c/code\u003e\u003c/a\u003e rollback changes with session and fix typo in condition\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/d224880e3e6ce42d2107f7c4e1334463027a5e6d\"\u003e\u003ccode\u003ed224880\u003c/code\u003e\u003c/a\u003e Update jira.py (\u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1571\"\u003e#1571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/a32f6d1f23e3ed9635660554d783e6a2fab72b7d\"\u003e\u003ccode\u003ea32f6d1\u003c/code\u003e\u003c/a\u003e Confluence: get_all_pages_from_space add workaround \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1547\"\u003e#1547\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/eebf86ec8cc26dfb9299dc70e33d6b4a60e78eda\"\u003e\u003ccode\u003eeebf86e\u003c/code\u003e\u003c/a\u003e Bitbucket: Add AppUser enrollments for User class appears \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1570\"\u003e#1570\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/b090c2e9da7de45ab3607a83d4d112e33307fdd2\"\u003e\u003ccode\u003eb090c2e\u003c/code\u003e\u003c/a\u003e Jira Cloud: adjustment of jql search\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/46239bd80e8c6ad3eb9f7637543291ba997a4c7c\"\u003e\u003ccode\u003e46239bd\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1570\"\u003e#1570\u003c/a\u003e Workaround of traceback\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/a1b2f5c26ef3b4cc1d9b3ebe0e6ff29e1af9c111\"\u003e\u003ccode\u003ea1b2f5c\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/atlassian-api/atlassian-python-api/issues/1568\"\u003e#1568\u003c/a\u003e Add doc of create_issue method\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/c98bb64cf717f77e7be012d089804c11d3c779ef\"\u003e\u003ccode\u003ec98bb64\u003c/code\u003e\u003c/a\u003e Fix build and adjust imports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/commit/5c5ff35706c4f7291b149020072409168e47cc0c\"\u003e\u003ccode\u003e5c5ff35\u003c/code\u003e\u003c/a\u003e [Bitbucket] Added Download class to retrieve pipeline-generated artifacts (Cl...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/atlassian-api/atlassian-python-api/compare/4.0.3...4.0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 2.2.3 to 2.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pandas-dev/pandas/releases\"\u003epandas's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePandas 2.3.2\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.2.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3/whatsnew/v2.3.2.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.2 supports Python 3.9 and higher.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install --upgrade pandas\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003ePandas 2.3.1\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.1.\nThis release includes some improvements and fixes to the future string data type (preview feature for the upcoming pandas 3.0). We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3.1/whatsnew/v2.3.1.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.1 supports Python 3.9 and higher.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the conda-forge channel:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install pandas --channel conda-forge\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install --upgrade pandas\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePlease report any issues with the release on the \u003ca href=\"https://github.com/pandas-dev/pandas/issues\"\u003epandas issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThanks to all the contributors who made this release possible.\u003c/p\u003e\n\u003ch2\u003ePandas 2.3.0\u003c/h2\u003e\n\u003cp\u003eWe are pleased to announce the release of pandas 2.3.0.\nThis release includes some new features, bug fixes, and performance improvements. We recommend that all users upgrade to this version.\u003c/p\u003e\n\u003cp\u003eSee the \u003ca href=\"https://pandas.pydata.org/pandas-docs/version/2.3.0/whatsnew/v2.3.0.html\"\u003efull whatsnew\u003c/a\u003e for a list of all the changes.\nPandas 2.3.0 supports Python 3.10 and higher.\u003c/p\u003e\n\u003cp\u003eThe release will be available on the defaults and conda-forge channels:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003econda install -c conda-forge pandas\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOr via PyPI:\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/4665c10899bc413b639194f6fb8665a5c70f7db5\"\u003e\u003ccode\u003e4665c10\u003c/code\u003e\u003c/a\u003e RLS: 2.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/633c68b91808441eba7d73b630a82b713ba19da8\"\u003e\u003ccode\u003e633c68b\u003c/code\u003e\u003c/a\u003e DOC: fix syntax in whatsnew file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/456ad4702cb017aab36e2d09a4029b1b085198f5\"\u003e\u003ccode\u003e456ad47\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62152\"\u003e#62152\u003c/a\u003e on branch 2.3.x (DOC: prepare 2.3.2 whatsnew notes for rel...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/6cae6444444ed7943ceffbd5990cd8249dd5b47c\"\u003e\u003ccode\u003e6cae644\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] DOC: move and reword whatsnew note for replace fix (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/57865\"\u003eGH-57865\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/a91c50a58c372cddf104fd60241c7284bbf8fc80\"\u003e\u003ccode\u003ea91c50a\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62147\"\u003e#62147\u003c/a\u003e on branch 2.3.x (DOC: correct and rewrite string migration...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/f7a2cfdf2ed08016167ae6c5e577c54949a849b2\"\u003e\u003ccode\u003ef7a2cfd\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG/DEPR: logical operation with bool and string (\u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/61995\"\u003e#61995\u003c/a\u003e) (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/7981a43db4339826a3ce5020e9b1b931e604e5bd\"\u003e\u003ccode\u003e7981a43\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/pandas-dev/pandas/issues/62124\"\u003e#62124\u003c/a\u003e on branch 2.3.x (CI/BLD: don't use strict xfail for '%m.%Y...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/fafbcbd03d1721830f4df8255abdab341db2a583\"\u003e\u003ccode\u003efafbcbd\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG(CoW): also raise for chained assignment for .at / .iat (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/3ac64a714886d917ca24ba637a85c4aaf563fc1b\"\u003e\u003ccode\u003e3ac64a7\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG: Fix Series.str.contains with compiled regex on Arrow st...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pandas-dev/pandas/commit/1f2dc4fd8a2503773b6f90cb5e8cc5c3172c3c11\"\u003e\u003ccode\u003e1f2dc4f\u003c/code\u003e\u003c/a\u003e [backport 2.3.x] BUG: fix Series.str.fullmatch() and Series.str.match() with ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pandas-dev/pandas/compare/v2.2.3...v2.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyarrow` from 19.0.1 to 21.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/apache/arrow/releases\"\u003epyarrow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eApache Arrow 21.0.0\u003c/h2\u003e\n\u003cp\u003eRelease Notes URL: \u003ca href=\"https://arrow.apache.org/release/21.0.0.html\"\u003ehttps://arrow.apache.org/release/21.0.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eApache Arrow 21.0.0 RC6\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 21.0.0 RC6\u003c/p\u003e\n\u003ch2\u003eApache Arrow 21.0.0 RC5\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 21.0.0 RC5\u003c/p\u003e\n\u003ch2\u003eApache Arrow 21.0.0 RC4\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 21.0.0 RC4\u003c/p\u003e\n\u003ch2\u003eApache Arrow 21.0.0 RC3\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 21.0.0 RC3\u003c/p\u003e\n\u003ch2\u003eApache Arrow 21.0.0 RC2\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 21.0.0 RC2\u003c/p\u003e\n\u003ch2\u003eApache Arrow 20.0.0\u003c/h2\u003e\n\u003cp\u003eRelease Notes URL: \u003ca href=\"https://arrow.apache.org/release/20.0.0.html\"\u003ehttps://arrow.apache.org/release/20.0.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eApache Arrow 20.0.0 RC2\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 20.0.0 RC2\u003c/p\u003e\n\u003ch2\u003eApache Arrow 20.0.0 RC1\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 20.0.0 RC1\u003c/p\u003e\n\u003ch2\u003eApache Arrow 20.0.0 RC0\u003c/h2\u003e\n\u003cp\u003eRelease Notes: Release Candidate: 20.0.0 RC0\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/ee4d09ebef61c663c1efbfa4c18e518a03b798be\"\u003e\u003ccode\u003eee4d09e\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update versions for 21.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/f13a5796008e3a5e546af1a7b2be0fbd3c148c26\"\u003e\u003ccode\u003ef13a579\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update .deb/.rpm changelogs for 21.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/6fd2a167e0ed74dbe4c059e579a561fcc2aae11f\"\u003e\u003ccode\u003e6fd2a16\u003c/code\u003e\u003c/a\u003e MINOR: [Release] Update CHANGELOG.md for 21.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/cf261bf58ae74a1f7fa99d81c201ca8e1d679c9b\"\u003e\u003ccode\u003ecf261bf\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47078\"\u003eGH-47078\u003c/a\u003e: [Release] Ensure using cloned apache/arrow for reproducible check (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/ddbc3dc005dfdde5a79d42cb5953190479b12b73\"\u003e\u003ccode\u003eddbc3dc\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47074\"\u003eGH-47074\u003c/a\u003e: [Release] Use reproducible mtime for csharp/ in source archive (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47\"\u003e#47\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/0534eb2d279f445ac67b99a22eca344484749b6f\"\u003e\u003ccode\u003e0534eb2\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47071\"\u003eGH-47071\u003c/a\u003e: [Release] Dereference all hard links in source archive (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47072\"\u003e#47072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/f845b4184664aee522f7fd73864d3093e84b6580\"\u003e\u003ccode\u003ef845b41\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47069\"\u003eGH-47069\u003c/a\u003e: [Release] Add missing \u0026quot;needs: target\u0026quot; (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47070\"\u003e#47070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/1c08f8ee6947bd2a9bffb441af946c6a7373015b\"\u003e\u003ccode\u003e1c08f8e\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47067\"\u003eGH-47067\u003c/a\u003e: [Release] Fix wrong GitHub Actions context in verify_rc.yml (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47068\"\u003e#47068\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/70e5c51e6d5de1ca6f669b47ff0b98e1075336d0\"\u003e\u003ccode\u003e70e5c51\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47065\"\u003eGH-47065\u003c/a\u003e: [Release] Fix timeout key in verify_rc.yml (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47066\"\u003e#47066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/apache/arrow/commit/254a85c8bddb52eef03d623882836717f027061d\"\u003e\u003ccode\u003e254a85c\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/apache/arrow/issues/47063\"\u003eGH-47063\u003c/a\u003e: [Release] Define missing RELEASE_TARBALL (\u003ca href=\"https://redirect.github.com/apache/arrow/issues/47064\"\u003e#47064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/apache/arrow/compare/apache-arrow-19.0.1...apache-arrow-21.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.11.3 to 2.11.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.9 2025-09-13\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBackport v1.10.23 changes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.8...v2.11.9\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.11.8...v2.11.9\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.8 2025-09-13\u003c/h2\u003e\n\u003ch2\u003ev2.11.8 (2025-09-13)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix mypy plugin for mypy 1.18 by \u003ca href=\"https://github.com/cdce8p\"\u003e\u003ccode\u003e@​cdce8p\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12209\"\u003e#12209\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.7...v2.11.8\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.11.7...v2.11.8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.7 2025-06-14\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCopy \u003ccode\u003eFieldInfo\u003c/code\u003e instance if necessary during \u003ccode\u003eFieldInfo\u003c/code\u003e build by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11980\"\u003epydantic/pydantic#11980\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.6...v2.11.7\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.11.6...v2.11.7\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.6 2025-06-13\u003c/h2\u003e\n\u003ch2\u003ev2.11.6 (2025-06-13)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRebuild dataclass fields before schema generation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11949\"\u003e#11949\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlways store the original field assignment on \u003ccode\u003eFieldInfo\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11946\"\u003e#11946\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.5...v2.11.6\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.11.5...v2.11.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.5 2025-05-22\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCheck if \u003ccode\u003eFieldInfo\u003c/code\u003e is complete after applying type variable map by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11855\"\u003e#11855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not delete mock validator/serializer in \u003ccode\u003emodel_rebuild()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11890\"\u003e#11890\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not duplicate metadata on model rebuild by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11902\"\u003e#11902\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.11.9/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.9 (2025-09-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.11.9\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBackport v1.10.23 changes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.11.8 (2025-09-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.11.8\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix mypy plugin for mypy 1.18 by \u003ca href=\"https://github.com/cdce8p\"\u003e\u003ccode\u003e@​cdce8p\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12209\"\u003e#12209\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.11.7 (2025-06-14)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.11.7\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCopy \u003ccode\u003eFieldInfo\u003c/code\u003e instance if necessary during \u003ccode\u003eFieldInfo\u003c/code\u003e build by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11898\"\u003e#11898\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.11.6 (2025-06-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.11.6\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRebuild dataclass fields before schema generation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11949\"\u003e#11949\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlways store the original field assignment on \u003ccode\u003eFieldInfo\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11946\"\u003e#11946\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.11.5 (2025-05-22)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.11.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eCheck if \u003ccode\u003eFieldInfo\u003c/code\u003e is complete after applying type variable map by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/11855\"\u003e#11855\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/92310953c146a2ac668a0141be820c083e325f5d\"\u003e\u003ccode\u003e9231095\u003c/code\u003e\u003c/a\u003e Prepare release v2.11.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f003a89eeaff35ee18f220a2c790d20536e3d0ab\"\u003e\u003ccode\u003ef003a89\u003c/code\u003e\u003c/a\u003e Backport v1.10.23 changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/96b81ddaf93a1f2e19ff1609080c33de10b8d931\"\u003e\u003ccode\u003e96b81dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.11.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/966f377692194b3f1d6d5155ac78052bec0a751d\"\u003e\u003ccode\u003e966f377\u003c/code\u003e\u003c/a\u003e Fix mypy v2 plugin for upcoming \u003ccode\u003e1.18\u003c/code\u003e mypy release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5f033e46c54fea1b59b6894d6527daf49475e690\"\u003e\u003ccode\u003e5f033e4\u003c/code\u003e\u003c/a\u003e Prepare release v2.11.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c3368b83c411f421a7322959bc29f3bea4bd252a\"\u003e\u003ccode\u003ec3368b8\u003c/code\u003e\u003c/a\u003e Copy \u003ccode\u003eFieldInfo\u003c/code\u003e instance if necessary during \u003ccode\u003eFieldInfo\u003c/code\u003e build (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/11980\"\u003e#11980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/3987b23db4b31ff35e9fa15c21c0c1d1c9808838\"\u003e\u003ccode\u003e3987b23\u003c/code\u003e\u003c/a\u003e Prepare release v2.11.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/dc7a9d20bee55a3a6e7397ee46abfcd9057b627b\"\u003e\u003ccode\u003edc7a9d2\u003c/code\u003e\u003c/a\u003e Always store the original field assignment on \u003ccode\u003eFieldInfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c284c279a5b8c95d32ab5ec31d2511b3b27bfa87\"\u003e\u003ccode\u003ec284c27\u003c/code\u003e\u003c/a\u003e Rebuild dataclass fields before schema generation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5e6d1dc71fe9bd832635cb2e9b4af92286fd00b8\"\u003e\u003ccode\u003e5e6d1dc\u003c/code\u003e\u003c/a\u003e Prepare release v2.11.5\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.3...v2.11.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.9.1 to 2.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.10.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix UnboundLocalError error in _replace_field_names_case_insensitively by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/639\"\u003epydantic/pydantic-settings#639\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove unknown file reference in documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/640\"\u003epydantic/pydantic-settings#640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.10.1 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/642\"\u003epydantic/pydantic-settings#642\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/2.10.0...2.10.1\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/2.10.0...2.10.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.10.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix running tests when azure-keyvault-secrets is not installed by \u003ca href=\"https://github.com/CyberTailor\"\u003e\u003ccode\u003e@​CyberTailor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/601\"\u003epydantic/pydantic-settings#601\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix running tests when google-cloud-secret-manager is not installed by \u003ca href=\"https://github.com/CyberTailor\"\u003e\u003ccode\u003e@​CyberTailor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/602\"\u003epydantic/pydantic-settings#602\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport loading a specific nested key from YAML in YamlConfigSettingsSource by \u003ca href=\"https://github.com/Seunghan-Jung\"\u003e\u003ccode\u003e@​Seunghan-Jung\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/603\"\u003epydantic/pydantic-settings#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CLI suppression for model group help by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/604\"\u003epydantic/pydantic-settings#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing DEFAULT_PATH import by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/606\"\u003epydantic/pydantic-settings#606\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix case-insensitive handling of nested aliases in EnvironmentSettingsSource by \u003ca href=\"https://github.com/d15ky\"\u003e\u003ccode\u003e@​d15ky\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/608\"\u003epydantic/pydantic-settings#608\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAzure Key Vault case insensitive support and dash-underscore translation by \u003ca href=\"https://github.com/d15ky\"\u003e\u003ccode\u003e@​d15ky\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/607\"\u003epydantic/pydantic-settings#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Respect 'cli_parse_args' from model_config with settings_customise_sources by \u003ca href=\"https://github.com/karta9821\"\u003e\u003ccode\u003e@​karta9821\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/611\"\u003epydantic/pydantic-settings#611\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump astral-sh/setup-uv by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/612\"\u003epydantic/pydantic-settings#612\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate packages by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/613\"\u003epydantic/pydantic-settings#613\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate README.md by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/616\"\u003epydantic/pydantic-settings#616\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI badge by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/617\"\u003epydantic/pydantic-settings#617\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate dependencies by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/618\"\u003epydantic/pydantic-settings#618\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix coverage report by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/619\"\u003epydantic/pydantic-settings#619\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix _consume_object_or_array on unbalanced brackets in JSON strings by \u003ca href=\"https://github.com/andryak\"\u003e\u003ccode\u003e@​andryak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/621\"\u003epydantic/pydantic-settings#621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd region as a parameter to aws secret manager by \u003ca href=\"https://github.com/barakor-vs\"\u003e\u003ccode\u003e@​barakor-vs\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/622\"\u003epydantic/pydantic-settings#622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose GCP Secret Manager case sensitive option by \u003ca href=\"https://github.com/bellmatthewf\"\u003e\u003ccode\u003e@​bellmatthewf\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/626\"\u003epydantic/pydantic-settings#626\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate deps by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/633\"\u003epydantic/pydantic-settings#633\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add \u003ccode\u003ecli_shortcuts\u003c/code\u003e to CLI settings by \u003ca href=\"https://github.com/karta9821\"\u003e\u003ccode\u003e@​karta9821\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/624\"\u003epydantic/pydantic-settings#624\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose AWS Secrets Manager case sensitive option by \u003ca href=\"https://github.com/femiadebayo\"\u003e\u003ccode\u003e@​femiadebayo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/629\"\u003epydantic/pydantic-settings#629\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.10.0 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/635\"\u003epydantic/pydantic-settings#635\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Seunghan-Jung\"\u003e\u003ccode\u003e@​Seunghan-Jung\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/603\"\u003epydantic/pydantic-settings#603\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/d15ky\"\u003e\u003ccode\u003e@​d15ky\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/608\"\u003epydantic/pydantic-settings#608\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/karta9821\"\u003e\u003ccode\u003e@​karta9821\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/611\"\u003epydantic/pydantic-settings#611\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/andryak\"\u003e\u003ccode\u003e@​andryak\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/621\"\u003epydantic/pydantic-settings#621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/barakor-vs\"\u003e\u003ccode\u003e@​barakor-vs\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/622\"\u003epydantic/pydantic-settings#622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bellmatthewf\"\u003e\u003ccode\u003e@​bellmatthewf\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/626\"\u003epydantic/pydantic-settings#626\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/femiadebayo\"\u003e\u003ccode\u003e@​femiadebayo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/629\"\u003epydantic/pydantic-settings#629\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.9.1...2.10.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.9.1...2.10.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/6bae3ab4fb321434feca35d120f05509d5c4ac55\"\u003e\u003ccode\u003e6bae3ab\u003c/code\u003e\u003c/a\u003e Prepare release 2.10.1 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/642\"\u003e#642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/36b8bfed902cce5d870fe09688014902d3894cab\"\u003e\u003ccode\u003e36b8bfe\u003c/code\u003e\u003c/a\u003e Remove unknown file reference in documentation (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/640\"\u003e#640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/697aaa621eb184a51e2e2729d8146b5ef4b2b7cc\"\u003e\u003ccode\u003e697aaa6\u003c/code\u003e\u003c/a\u003e Fix UnboundLocalError error in _replace_field_names_case_insensitively (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/639\"\u003e#639\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/910b1b1e0c30af39e10a3703e78b1e5943cde491\"\u003e\u003ccode\u003e910b1b1\u003c/code\u003e\u003c/a\u003e Prepare release 2.10.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/635\"\u003e#635\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/1ee66248adeff298d7f37b08c2dfb07f8562f08e\"\u003e\u003ccode\u003e1ee6624\u003c/code\u003e\u003c/a\u003e Expose AWS Secrets Manager case sensitive option (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/629\"\u003e#629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/180e74e324d8418e22b5dcb196fd6390fa964537\"\u003e\u003ccode\u003e180e74e\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003ecli_shortcuts\u003c/code\u003e to CLI settings (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/624\"\u003e#624\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/e1629080542ffab481030a7a100b820556f2695f\"\u003e\u003ccode\u003ee162908\u003c/code\u003e\u003c/a\u003e Update deps (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/159ef14dc1d299a29992283060d038cf6e6d3b56\"\u003e\u003ccode\u003e159ef14\u003c/code\u003e\u003c/a\u003e Expose GCP Secret Manager case sensitive option (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/626\"\u003e#626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/e9f7994872ebcd7a284d98d0ed501cc314a6a7fa\"\u003e\u003ccode\u003ee9f7994\u003c/code\u003e\u003c/a\u003e add region as a parameter to aws secret manager (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/622\"\u003e#622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/ca4ff9f96fc22396647ab878e5b87458ae0fde2f\"\u003e\u003ccode\u003eca4ff9f\u003c/code\u003e\u003c/a\u003e Fix _consume_object_or_array on unbalanced brackets in JSON strings (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/621\"\u003e#621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.9.1...2.10.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.40 to 2.0.43\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.43\u003c/h1\u003e\n\u003cp\u003eReleased: August 11, 2025\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where using the \u003ccode\u003epost_update\u003c/code\u003e feature would apply incorrect\n\u0026quot;pre-fetched\u0026quot; values to the ORM objects after a multi-row UPDATE process\ncompleted.  These \u0026quot;pre-fetched\u0026quot; values would come from any column that had\nan \u003ccode\u003eColumn.onupdate\u003c/code\u003e callable or a version id generator used by\n\u003ccode\u003eorm.Mapper.version_id_generator\u003c/code\u003e; for a version id generator\nthat delivered random identifiers like timestamps or UUIDs, this incorrect\ndata would lead to a DELETE statement against those same rows to fail in\nthe next step.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12748\"\u003e#12748\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where \u003ccode\u003e_orm.mapped_column.use_existing_column\u003c/code\u003e\nparameter in \u003ccode\u003e_orm.mapped_column()\u003c/code\u003e would not work when the\n\u003ccode\u003e_orm.mapped_column()\u003c/code\u003e is used inside of an \u003ccode\u003eAnnotated\u003c/code\u003e type alias in\npolymorphic inheritance scenarios. The parameter is now properly recognized\nand processed during declarative mapping configuration.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12787\"\u003e#12787\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Improved the implementation of the \u003ccode\u003e_orm.selectin_polymorphic()\u003c/code\u003e\ninheritance loader strategy to properly render the IN expressions using\nchunks of 500 records each, in the same manner as that of the\n\u003ccode\u003e_orm.selectinload()\u003c/code\u003e relationship loader strategy.  Previously, the IN\nexpression would be arbitrarily large, leading to failures on databases\nthat have limits on the size of IN expressions including Oracle Database.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12790\"\u003e#12790\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eengine\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[engine] [usecase]\u003c/strong\u003e Added new parameter \u003ccode\u003ecreate_engine.skip_autocommit_rollback\u003c/code\u003e\nwhich provides for a per-dialect feature of preventing the DBAPI\n\u003ccode\u003e.rollback()\u003c/code\u003e from being called under any circumstances, if the\nconnection is detected as being in \u0026quot;autocommit\u0026quot; mode.   This improves upon\na critical performance issue identified in MySQL dialects where the network\noverhead of the \u003ccode\u003e.rollback()\u003c/code\u003e call remains prohibitive even if autocommit\nmode is set.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12784\"\u003e#12784\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epostgresql\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `alembic` from 1.15.2 to 1.16.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/alembic/releases\"\u003ealembic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e1.16.5\u003c/h1\u003e\n\u003cp\u003eReleased: August 27, 2025\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [mysql]\u003c/strong\u003e Fixed Python-side autogenerate rendering of index expressions in MySQL\ndialect by aligning it with SQLAlchemy's MySQL index expression rules. Pull\nrequest courtesy david-fed.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1492\"\u003e#1492\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [config]\u003c/strong\u003e Fixed issue where new pyproject.toml config would fail to parse the integer\nvalue used for the \u003ccode\u003etruncate_slug_length\u003c/code\u003e parameter.  Pull request\ncourtesy Luís Henrique Allebrandt Schunemann.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1709\"\u003e#1709\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.16.4\u003c/h1\u003e\n\u003cp\u003eReleased: July 10, 2025\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [config]\u003c/strong\u003e Fixed issue in new \u003ccode\u003epyproject.toml\u003c/code\u003e support where boolean values, such as\nthose used for the \u003ccode\u003erecursive_version_locations\u003c/code\u003e and \u003ccode\u003esourceless\u003c/code\u003e\nconfiguration parameters, would not be accepted.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1694\"\u003e#1694\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.16.3\u003c/h1\u003e\n\u003cp\u003eReleased: July 8, 2025\u003c/p\u003e\n\u003ch2\u003eusecase\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [commands]\u003c/strong\u003e Added new \u003ccode\u003epyproject_async\u003c/code\u003e template, combining the new \u003ccode\u003epyproject\u003c/code\u003e\ntemplate with the \u003ccode\u003easync\u003c/code\u003e template.  Pull request courtesy Alc-Alc.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1683\"\u003e#1683\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[usecase] [autogenerate]\u003c/strong\u003e Add \u0026quot;module\u0026quot; post-write hook. This hook type is almost identical to the\nconsole_scripts hook, except it's running \u003ccode\u003epython -m black\u003c/code\u003e instead of\nusing black's \u003ccode\u003econsole_script\u003c/code\u003e. It is mainly useful for tools without\nconsole scripts (e.g. ruff), but has semantics closer to the\nconsole_scripts hook in that it finds the ruff module available to the\nrunning interpreter instead of finding an executable by path. Pull request\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/alembic/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg` from 3.2.6 to 3.2.10\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg/blob/master/docs/news.rst\"\u003epsycopg's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e.. currentmodule:: psycopg\u003c/p\u003e\n\u003cp\u003e.. index::\nsingle: Release notes\nsingle: News\u003c/p\u003e\n\u003ch1\u003e\u003ccode\u003epsycopg\u003c/code\u003e release notes\u003c/h1\u003e\n\u003ch2\u003eFuture releases\u003c/h2\u003e\n\u003cp\u003ePsycopg 3.3.0 (unrelease...\n\n_Description has been truncated_","html_url":"https://github.com/MrReasonable/jira-analyzer/pull/95","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrReasonable%2Fjira-analyzer/issues/95","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/95/packages"}},{"old_version":"4.48.1","new_version":"4.48.2","update_type":"patch","path":"/src","pr_created_at":"2025-09-21T23:08:32.000Z","version_change":"4.48.1 → 4.48.2","issue":{"uuid":"2847499380","node_id":"PR_kwDOPa_yKc6puWR0","number":12,"state":"closed","title":"build(pip): bump dependency-injector from 4.48.1 to 4.48.2 in /src","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-09-22T16:52:50.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-21T23:08:32.000Z","updated_at":"2025-09-22T16:52:50.000Z","time_to_close":63858,"merged_at":"2025-09-22T16:52:50.000Z","merged_by":"Rubenrod18","closed_by":null,"dependency_metadata":{"prefix":"build(pip)","packages":[{"name":"dependency-injector","old_version":"4.48.1","new_version":"4.48.2","repository_url":"https://github.com/ets-labs/python-dependency-injector"}],"path":"/src","ecosystem":"pip"},"body":"Bumps [dependency-injector](https://github.com/ets-labs/python-dependency-injector) from 4.48.1 to 4.48.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/releases\"\u003edependency-injector's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.48.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix grammar in Declarative Container documentation by \u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd warnings for unresolved markers by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\"\u003ehttps://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild ABI3 wheels only for Python\u0026gt;=3.10 by \u003ca href=\"https://github.com/ZipFile\"\u003e\u003ccode\u003e@​ZipFile\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\"\u003ehttps://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/okotdaniel\"\u003e\u003ccode\u003e@​okotdaniel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/ets-labs/python-dependency-injector/pull/916\"\u003eets-labs/python-dependency-injector#916\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.2\"\u003ehttps://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5a1aef920372da6a95d14865caab10061aea7104\"\u003e\u003ccode\u003e5a1aef9\u003c/code\u003e\u003c/a\u003e Merge branch 'release/4.48.2'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/5acddac9c15e87edff76846e8903a3c4552da22b\"\u003e\u003ccode\u003e5acddac\u003c/code\u003e\u003c/a\u003e Add changelog entry for v4.48.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/9f77976a294d7eeda6176610155f1fe0b91eea2d\"\u003e\u003ccode\u003e9f77976\u003c/code\u003e\u003c/a\u003e Fix typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/891f8b4190dbb883a68e5b9083e6b96acc555dad\"\u003e\u003ccode\u003e891f8b4\u003c/code\u003e\u003c/a\u003e Build ABI3 wheels only for Python\u0026gt;=3.10\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/8c2a32213a71c82334d009fbf3ee69dc85221b78\"\u003e\u003ccode\u003e8c2a322\u003c/code\u003e\u003c/a\u003e Add wheels Makefile target\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/91a741a6332ba9e0130e3d80b4191b4010f9f726\"\u003e\u003ccode\u003e91a741a\u003c/code\u003e\u003c/a\u003e Bump Cython version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1222827a5e76b1051de850aa34da12118908ffbd\"\u003e\u003ccode\u003e1222827\u003c/code\u003e\u003c/a\u003e Add warnings for unresolved markers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/759d89e9bdc35f0146361e5ff89fd36e99cc6184\"\u003e\u003ccode\u003e759d89e\u003c/code\u003e\u003c/a\u003e Add reprs to wiring markers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/1500a1de364cd97ccebd812a28a9b6f4c344a0ef\"\u003e\u003ccode\u003e1500a1d\u003c/code\u003e\u003c/a\u003e docs(declarative.rst): fix grammar in Declarative Container documentation  (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ets-labs/python-dependency-injector/commit/7df26d1ac76aabf52f74ce75e5f908ccf28b4898\"\u003e\u003ccode\u003e7df26d1\u003c/code\u003e\u003c/a\u003e docs(declarative.rst): fix grammar in Declarative Container documentation  (#...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ets-labs/python-dependency-injector/compare/4.48.1...4.48.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=dependency-injector\u0026package-manager=uv\u0026previous-version=4.48.1\u0026new-version=4.48.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/Rubenrod18/cinebooker/pull/12","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rubenrod18%2Fcinebooker/issues/12","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12/packages"}}]}