{"id":11486,"name":"qrcode","ecosystem":"pip","repository_url":"https://github.com/lincolnloop/python-qrcode","issues_count":93,"created_at":"2025-06-06T23:03:35.001Z","updated_at":"2025-06-06T23:03:35.001Z","purl":"pkg:pypi/qrcode","metadata":{"id":2894133,"name":"qrcode","ecosystem":"pypi","description":"QR Code image generator","homepage":"https://github.com/lincolnloop/python-qrcode","licenses":"BSD","normalized_licenses":["BSD-3-Clause"],"repository_url":"https://github.com/lincolnloop/python-qrcode","keywords_array":["qr","denso-wave","IEC18004"],"namespace":null,"versions_count":39,"first_release_published_at":"2011-11-10T11:04:21.000Z","latest_release_published_at":"2023-02-05T22:11:43.000Z","latest_release_number":"7.4.2","last_synced_at":"2025-06-06T13:02:18.406Z","created_at":"2022-04-10T12:24:08.245Z","updated_at":"2025-06-06T13:02:18.406Z","registry_url":"https://pypi.org/project/qrcode/","install_command":"pip install qrcode --index-url https://pypi.org/simple","documentation_url":"https://qrcode.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 5 - Production/Stable","Intended Audience :: Developers","License :: OSI Approved :: BSD License","License :: Other/Proprietary License","Operating System :: OS Independent","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3 :: Only","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Programming Language :: Python :: 3.9","Topic :: Multimedia :: Graphics","Topic :: Software Development :: Libraries :: Python Modules"],"normalized_name":"qrcode"},"repo_metadata":{"id":1823323,"uuid":"2747590","full_name":"lincolnloop/python-qrcode","owner":"lincolnloop","description":"Python QR Code image generator","archived":false,"fork":false,"pushed_at":"2024-08-13T16:54:57.000Z","size":865,"stargazers_count":4351,"open_issues_count":90,"forks_count":666,"subscribers_count":121,"default_branch":"main","last_synced_at":"2024-09-06T05:16:32.181Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://pypi.python.org/pypi/qrcode","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"apiguy/flask-classy","license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lincolnloop.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":null,"license":"LICENSE","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":"2011-11-10T09:36:22.000Z","updated_at":"2024-09-06T02:13:21.000Z","dependencies_parsed_at":"2023-07-07T14:16:16.966Z","dependency_job_id":"c508f73b-b7ea-4aad-95d2-d3b6de2b75a2","html_url":"https://github.com/lincolnloop/python-qrcode","commit_stats":{"total_commits":334,"total_committers":57,"mean_commits":5.859649122807017,"dds":0.4640718562874252,"last_synced_commit":"d44a409c21b91409d25c35eee94bcacea5ffa878"},"previous_names":[],"tags_count":36,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lincolnloop","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":218071339,"owners_count":16273551,"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":"lincolnloop","name":"Lincoln Loop","uuid":"1964","kind":"organization","description":"Makers of high performance web applications.","email":"info@lincolnloop.com","website":"http://lincolnloop.com","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/1964?v=4","repositories_count":167,"last_synced_at":"2024-05-20T14:54:04.768Z","metadata":{"has_sponsors_listing":true},"html_url":"https://github.com/lincolnloop","funding_links":["https://github.com/sponsors/lincolnloop"],"total_stars":7690,"followers":52,"following":0,"created_at":"2022-11-02T17:13:27.825Z","updated_at":"2024-05-20T14:54:14.374Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lincolnloop","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lincolnloop/repositories"},"tags":[{"name":"v7.4.2","sha":"9f4704c9285afa953702fa4303fc3ffa8cc28b26","kind":"tag","published_at":"2023-02-05T22:11:36.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v7.4.2","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v7.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v7.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v7.4.2/manifests"},{"name":"v7.4.1","sha":"96f8a2100fab5fc225d43599e644d75379b72216","kind":"tag","published_at":"2023-02-03T02:57:58.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v7.4.1","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v7.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v7.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v7.4.1/manifests"},{"name":"v7.4","sha":"3d4546c92a33252a1be62283443fe1961759eab0","kind":"tag","published_at":"2023-01-31T21:43:46.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v7.4","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v7.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v7.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v7.4/manifests"},{"name":"v7.3.1","sha":"bee948c1b68a26b97e6e2ba03bb7064ae35342c2","kind":"tag","published_at":"2021-10-01T18:50:27.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v7.3.1","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v7.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v7.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v7.3.1/manifests"},{"name":"v7.3","sha":"c8dace5771ca5375f40c3ba767f1e38998438193","kind":"tag","published_at":"2021-08-19T12:32:26.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v7.3","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v7.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v7.3/manifests"},{"name":"v7.2","sha":"1e95d6cb4307aec9c57c187e61f19fcd3841e4b2","kind":"tag","published_at":"2021-07-19T16:13:47.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v7.2","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v7.2/manifests"},{"name":"v7.1","sha":"763d4cab34a89c3ae3ad9cb929f92dade1c157fd","kind":"tag","published_at":"2021-07-01T23:03:03.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v7.1","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v7.1/manifests"},{"name":"v7.0","sha":"b0ac7ec8d927cccefd5b96185d602eb4abb697dd","kind":"tag","published_at":"2021-06-29T22:00:02.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v7.0","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v7.0/manifests"},{"name":"v6.1","sha":"d213e0274410312d9741bb84f93220d65d96e27d","kind":"tag","published_at":"2019-01-14T00:21:05.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v6.1","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v6.1/manifests"},{"name":"v6.0","sha":"9a4a0e0ea1a154c1be9262219ee4dd207c518c8a","kind":"tag","published_at":"2018-03-23T03:56:08.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v6.0","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v6.0/manifests"},{"name":"v5.3","sha":"e26e0c2cb2058e97f1935f8aee9121420b247af4","kind":"tag","published_at":"2016-05-18T04:25:37.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v5.3","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v5.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v5.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v5.3/manifests"},{"name":"v5.2","sha":"311a8fd8b8a287554f335e70733cb8692ad2d597","kind":"tag","published_at":"2016-01-25T04:10:32.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v5.2","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v5.2/manifests"},{"name":"v5.2.1","sha":"d91967bce87ae641dca856c63b607c4d007817da","kind":"tag","published_at":"2016-01-25T04:10:06.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v5.2.1","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v5.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v5.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v5.2.1/manifests"},{"name":"v5.2.2","sha":"d3b54a5a31d3b3693c8ee0376bf85f98756d530e","kind":"tag","published_at":"2016-01-25T04:09:35.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v5.2.2","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v5.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v5.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v5.2.2/manifests"},{"name":"v5.1","sha":"9c47f8a9291630fd6894221c7b33af572076a43d","kind":"tag","published_at":"2014-10-22T00:28:35.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v5.1","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v5.1/manifests"},{"name":"v5.0.1","sha":"683780afcecd45aa67b990efa8c0f279ed0ccdb2","kind":"tag","published_at":"2014-06-17T04:53:44.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v5.0.1","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v5.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v5.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v5.0.1/manifests"},{"name":"v5.0","sha":"63831144154572a1f1425b40c94a37fd916a740a","kind":"tag","published_at":"2014-06-17T02:32:29.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v5.0","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v5.0/manifests"},{"name":"v4.0.4","sha":"7660f6064489ae51e63513a48f3cfe037c4f8e51","kind":"tag","published_at":"2013-10-29T22:02:16.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v4.0.4","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v4.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v4.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v4.0.4/manifests"},{"name":"v4.0.3","sha":"ade83a4e1b0e5974e53609bee6f9639689f357bf","kind":"tag","published_at":"2013-10-29T21:58:03.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v4.0.3","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v4.0.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v4.0.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v4.0.3/manifests"},{"name":"v4.0.2","sha":"06a90abad14b3736d03c52f5a826d87c7ca105e6","kind":"tag","published_at":"2013-10-28T10:25:35.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v4.0.2","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v4.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v4.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v4.0.2/manifests"},{"name":"v4.0.1","sha":"f03a8dbdb071d49512d2f325c537578fa03275f3","kind":"tag","published_at":"2013-09-05T22:42:42.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v4.0.1","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v4.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v4.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v4.0.1/manifests"},{"name":"v4.0","sha":"c027bf673f923698efe8da1d0fec6fb410761262","kind":"tag","published_at":"2013-09-03T12:44:55.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v4.0","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v4.0/manifests"},{"name":"v3.1","sha":"14cd6986ade53780cfe70190d6c5a8a031162d50","kind":"tag","published_at":"2013-08-13T23:30:21.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v3.1","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v3.1/manifests"},{"name":"v3.1.1","sha":"f208044af688f2d32a30a2f2ca87c26fbce9e568","kind":"tag","published_at":"2013-08-13T23:30:04.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v3.1.1","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v3.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v3.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v3.1.1/manifests"},{"name":"v3.0","sha":"5f1f869171f46908beb12f73ea7cf639d1c1a99b","kind":"tag","published_at":"2013-06-25T04:42:25.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v3.0","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v3.0/manifests"},{"name":"v2.7","sha":"3985ae3b810dabb7ad001a4c1705969fe91c904b","kind":"tag","published_at":"2013-04-16T22:38:23.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v2.7","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v2.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v2.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v2.7/manifests"},{"name":"v2.6","sha":"281fa37895b06a15e15b11dda7d40eb7dc9066a4","kind":"tag","published_at":"2013-04-16T21:46:24.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v2.6","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v2.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v2.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v2.6/manifests"},{"name":"v2.5","sha":"d6a7fc7cc21d9f4d6839cdef8a511e09f04ffa52","kind":"tag","published_at":"2013-04-16T21:46:09.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v2.5","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v2.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v2.5/manifests"},{"name":"v2.4.2","sha":"201a17c1482eacd68188cfdd62d60d403620ea8d","kind":"tag","published_at":"2013-04-16T21:45:53.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v2.4.2","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v2.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v2.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v2.4.2/manifests"},{"name":"v2.4.1","sha":"3b457d1c449ba42e4e73bd4e620e429ed8cc8cd1","kind":"tag","published_at":"2013-04-16T21:45:41.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v2.4.1","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v2.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v2.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v2.4.1/manifests"},{"name":"v2.4","sha":"514376b43a3079eaef3fdac92af3ab804320adf0","kind":"tag","published_at":"2013-04-16T21:45:24.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v2.4","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v2.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v2.4/manifests"},{"name":"v2.3.1","sha":"94ead856ae6de69c0538faa9f98f975988cbdcf4","kind":"tag","published_at":"2013-04-16T21:45:10.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v2.3.1","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v2.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v2.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v2.3.1/manifests"},{"name":"v2.3","sha":"4377dc2a30b6195827fa5268d9a0cde3e65b3aca","kind":"tag","published_at":"2013-04-16T21:44:55.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v2.3","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v2.3/manifests"},{"name":"v2.2","sha":"d8511396d9d2ac9ad368afb3c9885e2814352e22","kind":"tag","published_at":"2013-04-16T21:44:43.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v2.2","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v2.2/manifests"},{"name":"v2.1","sha":"ff5a319deb5abe58cfb4fb16eae39282ccd9c0eb","kind":"tag","published_at":"2013-04-16T21:44:27.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v2.1","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v2.1/manifests"},{"name":"v2.0","sha":"864195cbd7c7520b50affbd942fda3e6b07ccf56","kind":"tag","published_at":"2013-04-16T21:42:15.000Z","download_url":"https://codeload.github.com/lincolnloop/python-qrcode/tar.gz/v2.0","html_url":"https://github.com/lincolnloop/python-qrcode/releases/tag/v2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lincolnloop%2Fpython-qrcode/tags/v2.0/manifests"}]},"repo_metadata_updated_at":"2024-09-07T22:58:11.644Z","dependent_packages_count":329,"downloads":5552012,"downloads_period":"last-month","dependent_repos_count":8867,"rankings":{"downloads":0.19897512621060603,"dependent_repos_count":0.0947410190640195,"dependent_packages_count":0.08012166341686618,"stargazers_count":1.1399300169546553,"forks_count":1.8557088583802135,"docker_downloads_count":0.32523319770874826,"average":0.6157849802891848},"purl":"pkg:pypi/qrcode","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/qrcode","docker_dependents_count":526,"docker_downloads_count":443076962,"usage_url":"https://repos.ecosyste.ms/usage/pypi/qrcode","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/qrcode/dependencies","status":null,"funding_links":["https://github.com/sponsors/lincolnloop"],"critical":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/qrcode/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/qrcode/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/qrcode/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/qrcode/related_packages","maintainers":[{"uuid":"lincolnloop","login":"lincolnloop","name":null,"email":null,"url":null,"packages_count":8,"html_url":"https://pypi.org/user/lincolnloop/","role":null,"created_at":"2023-01-20T12:58:07.501Z","updated_at":"2023-01-20T12:58:07.501Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/lincolnloop/packages"},{"uuid":"SmileyChris","login":"SmileyChris","name":null,"email":null,"url":null,"packages_count":17,"html_url":"https://pypi.org/user/SmileyChris/","role":null,"created_at":"2023-01-20T12:58:07.506Z","updated_at":"2023-01-20T12:58:07.506Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/SmileyChris/packages"},{"uuid":"maribedran","login":"maribedran","name":null,"email":null,"url":null,"packages_count":5,"html_url":"https://pypi.org/user/maribedran/","role":null,"created_at":"2023-01-20T12:58:07.512Z","updated_at":"2023-01-20T12:58:07.512Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/maribedran/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":690419,"maintainers_count":292811,"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":45,"unique_repositories_count_past_30_days":4,"recent_issues":[{"uuid":"4613382470","node_id":"PR_kwDOPp7BEc7j7XK3","number":34,"state":"open","title":"Bump qrcode from 7.4.2 to 8.2 in /services/auth-service","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-06-08T13:40:27.000Z","updated_at":"2026-06-08T13:40:34.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"qrcode","old_version":"7.4.2","new_version":"8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"}],"path":"/services/auth-service","ecosystem":"pip"},"body":"Bumps [qrcode](https://github.com/lincolnloop/python-qrcode) from 7.4.2 to 8.2.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lincolnloop/python-qrcode/blob/main/CHANGES.rst\"\u003eqrcode's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2 (01 May 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize QRColorMask apply_mask method for enhanced performance\u003c/li\u003e\n\u003cli\u003eFix typos on StyledPilImage embeded_* parameters.\nThe old parameters with the typos are still accepted\nfor backward compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1 (02 April 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0 (27 September 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.11 and 3.12.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python \u0026lt;=3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange local development setup to use Poetry_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTestsuite and code quality checks are done through Github Actions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCode quality and formatting utilises ruff_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003etyping_extensions\u003c/code\u003e as a dependency, as it's no longer required\nwith having Python 3.9+ as a requirement.\nhaving Python 3.9+ as a requirement.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOnly allow high error correction rate (\u003ccode\u003eqrcode.ERROR_CORRECT_H\u003c/code\u003e)\nwhen generating\nQR codes with embedded images to ensure content is readable\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _Poetry: \u003ca href=\"https://python-poetry.org\"\u003ehttps://python-poetry.org\u003c/a\u003e\n.. _ruff: \u003ca href=\"https://astral.sh/ruff\"\u003ehttps://astral.sh/ruff\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/lincolnloop/python-qrcode/commit/3704f57a1107dbf553a50f5b531da3859abe19cf\"\u003e\u003ccode\u003e3704f57\u003c/code\u003e\u003c/a\u003e Preparing release 8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/b593a2b86d8f9cd1bc24cc5623ee47cf1aa076b5\"\u003e\u003ccode\u003eb593a2b\u003c/code\u003e\u003c/a\u003e Fix embeded_* typo on paremeters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/d2674f83092d3573e164bb83468e51f59c85bf50\"\u003e\u003ccode\u003ed2674f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/383\"\u003e#383\u003c/a\u003e from btimby/spelling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/2ced7b4b38ea3132793723bbab588d5676fc8bc7\"\u003e\u003ccode\u003e2ced7b4\u003c/code\u003e\u003c/a\u003e Ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/c5e3f0180e025d9c0fd6adf8ed3c9998073c6137\"\u003e\u003ccode\u003ec5e3f01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/372\"\u003e#372\u003c/a\u003e from smalyu/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/cd3cd7bf87fc81860481902ca22d5b7463332b4b\"\u003e\u003ccode\u003ecd3cd7b\u003c/code\u003e\u003c/a\u003e Release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/5dcf89c56417ad37de8dba953f974324ae7b9271\"\u003e\u003ccode\u003e5dcf89c\u003c/code\u003e\u003c/a\u003e Preparing release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/10da1ba2c95886312097608bd4632ba34765e0e0\"\u003e\u003ccode\u003e10da1ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/386\"\u003e#386\u003c/a\u003e from hugovk/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/7cb996d04c6536a2dbf84cccf9fc471a200f0072\"\u003e\u003ccode\u003e7cb996d\u003c/code\u003e\u003c/a\u003e Upgrade Python syntax with pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/dc4831bde0c432e5d878b75818af38e9dc80cc87\"\u003e\u003ccode\u003edc4831b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lincolnloop/python-qrcode/compare/v7.4.2...v8.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=qrcode\u0026package-manager=pip\u0026previous-version=7.4.2\u0026new-version=8.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 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/gustavo-almeidalopes/dentibot/pull/34","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/gustavo-almeidalopes%2Fdentibot/issues/34","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/34/packages"},{"uuid":"4558688519","node_id":"PR_kwDOOniZfc7hJCtr","number":39,"state":"closed","title":"chore(deps): bump the majors group in /services/gameserver with 15 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2026-05-31T19:39:53.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-31T19:13:54.000Z","updated_at":"2026-05-31T19:39:55.000Z","time_to_close":1559,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"majors","update_count":15,"packages":[{"name":"websockets","old_version":"11.0.3","new_version":"16.0","repository_url":"https://github.com/python-websockets/websockets"},{"name":"argon2-cffi","old_version":"23.1.0","new_version":"25.1.0","repository_url":"https://github.com/hynek/argon2-cffi"},{"name":"bcrypt","old_version":"4.0.1","new_version":"5.0.0","repository_url":"https://github.com/pyca/bcrypt"},{"name":"redis","old_version":"5.0.1","new_version":"8.0.0","repository_url":"https://github.com/redis/redis-py"},{"name":"pandas","old_version":"2.0.3","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"numpy","old_version":"1.24.3","new_version":"2.4.6","repository_url":"https://github.com/numpy/numpy"},{"name":"openai","old_version":"1.12.0","new_version":"2.38.0","repository_url":"https://github.com/openai/openai-python"},{"name":"qrcode","old_version":"7.4.2","new_version":"8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"},{"name":"pytest","old_version":"7.4.4","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"0.21.2","new_version":"1.4.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pytest-cov","old_version":"4.1.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"black","old_version":"23.12.1","new_version":"26.5.1","repository_url":"https://github.com/psf/black"},{"name":"isort","old_version":"5.13.2","new_version":"8.0.1","repository_url":"https://github.com/PyCQA/isort"},{"name":"flake8","old_version":"6.1.0","new_version":"7.3.0","repository_url":"https://github.com/pycqa/flake8"},{"name":"mypy","old_version":"1.20.2","new_version":"2.1.0","repository_url":"https://github.com/python/mypy"}],"path":"/services/gameserver","ecosystem":"pip"},"body":"Bumps the majors group in /services/gameserver with 15 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [websockets](https://github.com/python-websockets/websockets) | `11.0.3` | `16.0` |\n| [argon2-cffi](https://github.com/hynek/argon2-cffi) | `23.1.0` | `25.1.0` |\n| [bcrypt](https://github.com/pyca/bcrypt) | `4.0.1` | `5.0.0` |\n| [redis](https://github.com/redis/redis-py) | `5.0.1` | `8.0.0` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.0.3` | `2.3.3` |\n| [numpy](https://github.com/numpy/numpy) | `1.24.3` | `2.4.6` |\n| [openai](https://github.com/openai/openai-python) | `1.12.0` | `2.38.0` |\n| [qrcode](https://github.com/lincolnloop/python-qrcode) | `7.4.2` | `8.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.4` | `9.0.3` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.21.2` | `1.4.0` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `4.1.0` | `7.1.0` |\n| [black](https://github.com/psf/black) | `23.12.1` | `26.5.1` |\n| [isort](https://github.com/PyCQA/isort) | `5.13.2` | `8.0.1` |\n| [flake8](https://github.com/pycqa/flake8) | `6.1.0` | `7.3.0` |\n| [mypy](https://github.com/python/mypy) | `1.20.2` | `2.1.0` |\n\nUpdates `websockets` from 11.0.3 to 16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-websockets/websockets/releases\"\u003ewebsockets's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e16.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://websockets.readthedocs.io/en/stable/project/changelog.html\"\u003ehttps://websockets.readthedocs.io/en/stable/project/changelog.html\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e15.0.1\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://websockets.readthedocs.io/en/stable/project/changelog.html\"\u003ehttps://websockets.readthedocs.io/en/stable/project/changelog.html\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e15.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://websockets.readthedocs.io/en/stable/project/changelog.html\"\u003ehttps://websockets.readthedocs.io/en/stable/project/changelog.html\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e14.2\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://websockets.readthedocs.io/en/stable/project/changelog.html\"\u003ehttps://websockets.readthedocs.io/en/stable/project/changelog.html\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e14.1\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://websockets.readthedocs.io/en/stable/project/changelog.html\"\u003ehttps://websockets.readthedocs.io/en/stable/project/changelog.html\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e14.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://websockets.readthedocs.io/en/stable/project/changelog.html\"\u003ehttps://websockets.readthedocs.io/en/stable/project/changelog.html\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e13.1\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://websockets.readthedocs.io/en/stable/project/changelog.html\"\u003ehttps://websockets.readthedocs.io/en/stable/project/changelog.html\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e13.0.1\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://websockets.readthedocs.io/en/stable/project/changelog.html\"\u003ehttps://websockets.readthedocs.io/en/stable/project/changelog.html\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e13.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://websockets.readthedocs.io/en/stable/project/changelog.html\"\u003ehttps://websockets.readthedocs.io/en/stable/project/changelog.html\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e12.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://websockets.readthedocs.io/en/stable/project/changelog.html\"\u003ehttps://websockets.readthedocs.io/en/stable/project/changelog.html\u003c/a\u003e for details.\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/python-websockets/websockets/commit/d4303a5d3e373fc8c34177c3dec1a9c75c8865fa\"\u003e\u003ccode\u003ed4303a5\u003c/code\u003e\u003c/a\u003e Release version 16.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/851bcd756bf114e41438f04d928aa85838724fe1\"\u003e\u003ccode\u003e851bcd7\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.3.0 to 3.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/740c8d373e10ced940fb33c3e0457991841c10c4\"\u003e\u003ccode\u003e740c8d3\u003c/code\u003e\u003c/a\u003e Temporarily remove the trio implementation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/92ea0553587ba07a4668c30dfd9e6210d9f26bc9\"\u003e\u003ccode\u003e92ea055\u003c/code\u003e\u003c/a\u003e Add missing changelog entry.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/ba74244154df5a74f044d0f8cd971acac636bb74\"\u003e\u003ccode\u003eba74244\u003c/code\u003e\u003c/a\u003e Document bug fix.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/9410483c016463a6cd08b2a5321337b85e094f10\"\u003e\u003ccode\u003e9410483\u003c/code\u003e\u003c/a\u003e Pin sphinx to avoid error in sphinxcontrib-trio.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/8e4d408e17b0bfa1a91aa62e054b8786a8132231\"\u003e\u003ccode\u003e8e4d408\u003c/code\u003e\u003c/a\u003e Document asyncio's TLS read buffer.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/cb3500b0b030715dc3caa1e3ce95affe4a79b8bd\"\u003e\u003ccode\u003ecb3500b\u003c/code\u003e\u003c/a\u003e Stop referring to the asyncio implementation as new.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/6563a9c884d92df4c889bb174dc84a56a7377686\"\u003e\u003ccode\u003e6563a9c\u003c/code\u003e\u003c/a\u003e The threading implementation supports max_queue.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/9f17e92dbee2b9a14e02b2792cfbb127efbd4098\"\u003e\u003ccode\u003e9f17e92\u003c/code\u003e\u003c/a\u003e Clarify that protocol_mutex protects pending_pings.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-websockets/websockets/compare/11.0.3...16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argon2-cffi` from 23.1.0 to 25.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hynek/argon2-cffi/releases\"\u003eargon2-cffi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.1.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eThis release is mostly about smoothing out packaging metadata and improve support for Pyodide / WebAssembly environments.\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://www.klaviyo.com\"\u003eKlaviyo\u003c/a\u003e (@\u003ca href=\"https://github.com/klaviyo\"\u003eklaviyo\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://doist.com/\"\u003eDoist\u003c/a\u003e (@\u003ca href=\"https://github.com/Doist\"\u003eDoist\u003c/a\u003e), \u003ca href=\"https://blog.alternatebuild.dev\"\u003enate nowack\u003c/a\u003e (@\u003ca href=\"https://github.com/zzstoatzz\"\u003ezzstoatzz\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), Jesse Snyder (@\u003ca href=\"https://github.com/jessesnyder\"\u003ejessesnyder\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://www.miketheman.net\"\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://mpr.crossjam.net/\"\u003eBrian M. Dennis\u003c/a\u003e (@\u003ca href=\"https://github.com/crossjam\"\u003ecrossjam\u003c/a\u003e), Moving Content AG (@\u003ca href=\"https://github.com/moving-content\"\u003emoving-content\u003c/a\u003e), \u003ca href=\"https://proteinqure.com/\"\u003eProteinQure\u003c/a\u003e (@\u003ca href=\"https://github.com/ProteinQure\"\u003eProteinQure\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\u003cp\u003eNot to forget 14 more amazing humans who chose to be generous but anonymous!\u003c/p\u003e\n\u003ch2\u003eFull Changelog\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficial support for Python 3.13 and 3.14. No code changes were necessary.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.7 is not supported anymore. \u003ca href=\"https://redirect.github.com/hynek/argon2-cffi/pull/186\"\u003e#186\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eargon2.PasswordHasher.check_needs_rehash()\u003c/code\u003e now also accepts bytes like the rest of the API. \u003ca href=\"https://redirect.github.com/hynek/argon2-cffi/pull/174\"\u003e#174\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved parameter compatibility handling for Pyodide / WebAssembly environments. \u003ca href=\"https://redirect.github.com/hynek/argon2-cffi/pull/190\"\u003e#190\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eThis release contains contributions from \u003ca href=\"https://github.com/alarmfox\"\u003e\u003ccode\u003e@​alarmfox\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/isidroas\"\u003e\u003ccode\u003e@​isidroas\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/peterc-s\"\u003e\u003ccode\u003e@​peterc-s\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/twm\"\u003e\u003ccode\u003e@​twm\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/argon2-cffi\"\u003ePyPI\u003c/a\u003e and running:\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/hynek/argon2-cffi/blob/main/CHANGELOG.md\"\u003eargon2-cffi's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi/compare/23.1.0...25.1.0\"\u003e25.1.0\u003c/a\u003e - 2025-06-03\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficial support for Python 3.13 and 3.14.\nNo code changes were necessary.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.7 and 3.8 are not supported anymore.\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi/pull/186\"\u003e#186\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eargon2.PasswordHasher.check_needs_rehash()\u003c/code\u003e now also accepts bytes like the rest of the API.\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi/pull/174\"\u003e#174\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved parameter compatibility handling for Pyodide / WebAssembly environments.\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi/pull/190\"\u003e#190\u003c/a\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/hynek/argon2-cffi/commit/1fcae4fc1b7ff192b5ade54f6616771e5cf5f391\"\u003e\u003ccode\u003e1fcae4f\u003c/code\u003e\u003c/a\u003e Prepare 25.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi/commit/18939b166b9df91402929394557c500d5bbf106b\"\u003e\u003ccode\u003e18939b1\u003c/code\u003e\u003c/a\u003e ci: placate dr zizmor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi/commit/8dcceb570941d5ea13d12d716335459d78461ec5\"\u003e\u003ccode\u003e8dcceb5\u003c/code\u003e\u003c/a\u003e ci: pin \u0026amp; trust\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi/commit/95422424750584fa8547ccb974c4845b7da81eb2\"\u003e\u003ccode\u003e9542242\u003c/code\u003e\u003c/a\u003e Clean up trove classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi/commit/298af7e4db7c693de5d8889ec8b8d12558367f9b\"\u003e\u003ccode\u003e298af7e\u003c/code\u003e\u003c/a\u003e Switch to dependency groups (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi/issues/202\"\u003e#202\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi/commit/2eedf07ac73ccdbf12846c4e243fcbbb03db9cb6\"\u003e\u003ccode\u003e2eedf07\u003c/code\u003e\u003c/a\u003e Update \u0026amp; rename Ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi/commit/bc861f04ffa8a39e5c27fe963dc9b8815564c39b\"\u003e\u003ccode\u003ebc861f0\u003c/code\u003e\u003c/a\u003e Add 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi/commit/f8260dd07d8e1e200f982a48039524ddacd8e4ec\"\u003e\u003ccode\u003ef8260dd\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi/issues/200\"\u003e#200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi/commit/b8321fa3b6f220a132a5836cfc982b2db9aff8a0\"\u003e\u003ccode\u003eb8321fa\u003c/code\u003e\u003c/a\u003e Add a multithreaded stress test (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi/commit/9143d9092b6f93f9c893d995af0d249d5c5a9feb\"\u003e\u003ccode\u003e9143d90\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi/issues/198\"\u003e#198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hynek/argon2-cffi/compare/23.1.0...25.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bcrypt` from 4.0.1 to 5.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/bcrypt/blob/main/CHANGELOG.rst\"\u003ebcrypt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBumped MSRV to 1.74.\u003c/li\u003e\n\u003cli\u003eAdded support for Python 3.14 and free-threaded Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdded support for Windows on ARM.\u003c/li\u003e\n\u003cli\u003ePassing \u003ccode\u003ehashpw\u003c/code\u003e a password longer than 72 bytes now raises a\n\u003ccode\u003eValueError\u003c/code\u003e. Previously the password was silently truncated, following the\nbehavior of the original OpenBSD \u003ccode\u003ebcrypt\u003c/code\u003e implementation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.7.\u003c/li\u003e\n\u003cli\u003eWe now support free-threaded Python 3.13.\u003c/li\u003e\n\u003cli\u003eWe now support PyPy 3.11.\u003c/li\u003e\n\u003cli\u003eWe now publish wheels for free-threaded Python 3.13, for PyPy 3.11 on\n\u003ccode\u003emanylinux\u003c/code\u003e, and for ARMv7l on \u003ccode\u003emanylinux\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump Rust dependency versions - this should resolve crashes on Python 3.13\nfree-threaded builds.\u003c/li\u003e\n\u003cli\u003eWe no longer build \u003ccode\u003emanylinux\u003c/code\u003e wheels for PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump Rust dependency versions\u003c/li\u003e\n\u003cli\u003eRemoved the \u003ccode\u003eBCRYPT_ALLOW_RUST_163\u003c/code\u003e environment variable.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump Rust dependency versions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePublish both \u003ccode\u003epy37\u003c/code\u003e and \u003ccode\u003epy39\u003c/code\u003e wheels. This should resolve some errors\nrelating to initializing a module multiple times per process.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed the type signature on the \u003ccode\u003ekdf\u003c/code\u003e method.\u003c/li\u003e\n\u003cli\u003eFixed packaging bug on Windows.\u003c/li\u003e\n\u003cli\u003eFixed incompatibility with passlib package detection assumptions.\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/pyca/bcrypt/commit/5060bce7e6c27f55e89d5b0d22b7ae0437a362f7\"\u003e\u003ccode\u003e5060bce\u003c/code\u003e\u003c/a\u003e 5.0.0 release (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/e43f568265df7e1aabbaddccc336dbf3ea675df8\"\u003e\u003ccode\u003ee43f568\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.2.4 to 4.3.0 (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1077\"\u003e#1077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/fc9f680a96a0d8e9df4c5a1a4d991fd961a90adb\"\u003e\u003ccode\u003efc9f680\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.175 to 0.2.176 in /src/_bcrypt (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1075\"\u003e#1075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/633f46fbb33d8abfe5b9cb0c12eed79878fbff06\"\u003e\u003ccode\u003e633f46f\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1073\"\u003e#1073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/a2fefbbcff8d46cfd00efa8d2c13956b388d6bec\"\u003e\u003ccode\u003ea2fefbb\u003c/code\u003e\u003c/a\u003e Remove pypy310 builds (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1074\"\u003e#1074\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/f60707e18f3f9728f2c6f4ce97fb8fc90721c7d3\"\u003e\u003ccode\u003ef60707e\u003c/code\u003e\u003c/a\u003e Bump wasi from 0.14.5+wasi-0.2.4 to 0.14.7+wasi-0.2.4 in /src/_bcrypt (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1071\"\u003e#1071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/c790eed8fa205403e1ea0587cf9178e866c940f3\"\u003e\u003ccode\u003ec790eed\u003c/code\u003e\u003c/a\u003e Bump unicode-ident from 1.0.18 to 1.0.19 in /src/_bcrypt (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1070\"\u003e#1070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/122cbdc6895fd70c044a2f4ad7845c2a56b93096\"\u003e\u003ccode\u003e122cbdc\u003c/code\u003e\u003c/a\u003e Bump target-lexicon from 0.13.2 to 0.13.3 in /src/_bcrypt (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1069\"\u003e#1069\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/2bd208d6c5cadba2f983280ec21cc8cf977904d0\"\u003e\u003ccode\u003e2bd208d\u003c/code\u003e\u003c/a\u003e Bump wasi from 0.14.4+wasi-0.2.4 to 0.14.5+wasi-0.2.4 in /src/_bcrypt (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1068\"\u003e#1068\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/e1aa9e883090e0267bd7b38964fe852f70a99b88\"\u003e\u003ccode\u003ee1aa9e8\u003c/code\u003e\u003c/a\u003e remove poinless cargo cache paths from CI (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1067\"\u003e#1067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/bcrypt/compare/4.0.1...5.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 5.0.1 to 8.0.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\u003e8.0.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 Highlights\u003c/h2\u003e\n\u003ch3\u003eAsync Cluster PubSub\u003c/h3\u003e\n\u003cp\u003eThis release introduces full \u003cstrong\u003easyncio Cluster PubSub support\u003c/strong\u003e, bringing shard-channel capabilities (\u003ccode\u003eSSUBSCRIBE\u003c/code\u003e, \u003ccode\u003eSUNSUBSCRIBE\u003c/code\u003e, \u003ccode\u003eSPUBLISH\u003c/code\u003e) to the async \u003ccode\u003eRedisCluster\u003c/code\u003e client. The new \u003ccode\u003eClusterPubSub\u003c/code\u003e class in \u003ccode\u003eredis.asyncio.cluster\u003c/code\u003e automatically routes shard-channel subscriptions to the correct cluster node based on key-slot hashing, manages per-node PubSub connections, and supports round-robin message retrieval across nodes. Users can create a cluster pubsub instance via \u003ccode\u003eRedisCluster.pubsub()\u003c/code\u003e and use \u003ccode\u003essubscribe()\u003c/code\u003e, \u003ccode\u003esunsubscribe()\u003c/code\u003e, and \u003ccode\u003eget_sharded_message()\u003c/code\u003e just as they would with the sync cluster client.\u003c/p\u003e\n\u003ch3\u003eKeyspace and subkey notifications\u003c/h3\u003e\n\u003cp\u003eRedis Keyspace Notifications are now supported for standalone and cluster deployments in both sync and async modes. New classes — \u003ccode\u003eKeyspaceNotifications\u003c/code\u003e, \u003ccode\u003eClusterKeyspaceNotifications\u003c/code\u003e, \u003ccode\u003eAsyncKeyspaceNotifications\u003c/code\u003e, and \u003ccode\u003eAsyncClusterKeyspaceNotifications\u003c/code\u003e — provide a high-level API for keyspace/keyevent subscriptions and subkey notification families: \u003ccode\u003esubkeyspace\u003c/code\u003e, \u003ccode\u003esubkeyevent\u003c/code\u003e, \u003ccode\u003esubkeyspaceitem\u003c/code\u003e, and \u003ccode\u003esubkeyspaceevent\u003c/code\u003e. Convenience methods like \u003ccode\u003esubscribe_keyspace()\u003c/code\u003e, \u003ccode\u003esubscribe_keyevent()\u003c/code\u003e, \u003ccode\u003esubscribe_subkeyspace()\u003c/code\u003e, \u003ccode\u003esubscribe_subkeyevent()\u003c/code\u003e, \u003ccode\u003esubscribe_subkeyspaceitem()\u003c/code\u003e, and \u003ccode\u003esubscribe_subkeyspaceevent()\u003c/code\u003e simplify common patterns, with channel classes for both key and subkey channels.\u003c/p\u003e\n\u003cp\u003eIn cluster mode, subscriptions are managed across primary nodes because each node emits notifications only for keys it owns, with built-in topology-change handling. Sync \u003ccode\u003erun_in_thread()\u003c/code\u003e and async \u003ccode\u003elisten()\u003c/code\u003e workflows are supported.\u003c/p\u003e\n\u003ch3\u003eRedis Array commands(\u003ca href=\"https://redis.io/docs/latest/develop/data-types/arrays/\"\u003ehttps://redis.io/docs/latest/develop/data-types/arrays/\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003eredis-py now supports \u003ca href=\"https://redis.io/docs/latest/develop/data-types/arrays/\"\u003eRedis Arrays\u003c/a\u003e, a preview Redis data type for sparse, index-addressable sequences of strings. New \u003ccode\u003eAR*\u003c/code\u003e command helpers cover indexed reads/writes, range scans, deletion, cursor-based insertion, ring-buffer writes, metadata, text search, and aggregation, including \u003ccode\u003eARGET\u003c/code\u003e, \u003ccode\u003eARSET\u003c/code\u003e, \u003ccode\u003eARMGET\u003c/code\u003e, \u003ccode\u003eARMSET\u003c/code\u003e, \u003ccode\u003eARSCAN\u003c/code\u003e, \u003ccode\u003eARGREP\u003c/code\u003e, \u003ccode\u003eARRING\u003c/code\u003e, and \u003ccode\u003eAROP\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eType Hints Improvements (breaking changes)\u003c/h3\u003e\n\u003cp\u003eThe \u003ccode\u003e@overload\u003c/code\u003e pattern has been applied systematically across \u003cstrong\u003ecore commands\u003c/strong\u003e (\u003ccode\u003ecore.py\u003c/code\u003e), \u003cstrong\u003eVectorSet commands\u003c/strong\u003e, and \u003cstrong\u003emodule commands\u003c/strong\u003e (Search, JSON, TimeSeries, Bloom filters) to provide distinct return types for sync and async clients. Previously, methods returned a combined \u003ccode\u003eResponseT\u003c/code\u003e (i.e., \u003ccode\u003eUnion[Awaitable[Any], Any]\u003c/code\u003e), which caused static analysis tools like mypy and Pyright to flag false positives. Now, sync clients see concrete return types (e.g., \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003elist[str]\u003c/code\u003e) while async clients see \u003ccode\u003eAwaitable[...]\u003c/code\u003e wrappers. This is a \u003cstrong\u003ebreaking change for type-checking only\u003c/strong\u003e—runtime behavior is unchanged, but code relying on the old union return types in type annotations may need updates. Two new protocol types, \u003ccode\u003eSyncClientProtocol\u003c/code\u003e and \u003ccode\u003eAsyncClientProtocol\u003c/code\u003e, are used in overload signatures to enable this distinction.\u003c/p\u003e\n\u003ch3\u003eRESP3 by default with opt-in unified responses\u003c/h3\u003e\n\u003cp\u003eredis-py 8.0.0 now uses RESP3 on the wire by default while preserving legacy RESP2-compatible Python response shapes for existing applications (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4052\"\u003e#4052\u003c/a\u003e). Protocol-independent unified response shapes are available by setting \u003ccode\u003elegacy_responses=False\u003c/code\u003e, so affected commands return the same Python structure with RESP2 or RESP3.\u003c/p\u003e\n\u003cp\u003eUse \u003ccode\u003eprotocol=2\u003c/code\u003e to force RESP2 on the wire, \u003ccode\u003eprotocol=3\u003c/code\u003e to opt into native RESP3 response shapes, or \u003ccode\u003elegacy_responses=False\u003c/code\u003e to migrate to unified responses. See \u003ca href=\"https://github.com/redis/redis-py/blob/HEAD/docs/unified_responses.rst\"\u003e\u003ccode\u003ehttps://github.com/redis/redis-py/blob/HEAD/docs/unified_responses.rst\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/redis/redis-py/blob/HEAD/specs/unified_responses_migration_guide.md\"\u003e\u003ccode\u003ehttps://github.com/redis/redis-py/blob/HEAD/specs/unified_responses_migration_guide.md\u003c/code\u003e\u003c/a\u003e for the affected commands and migration details.\u003c/p\u003e\n\u003ch3\u003eConnection and retry defaults\u003c/h3\u003e\n\u003cp\u003eDefault connection settings were updated: \u003ccode\u003esocket_timeout\u003c/code\u003e and \u003ccode\u003esocket_connect_timeout\u003c/code\u003e now default to 5 seconds, TCP keepalive is enabled by default, socket reads use a 32 KB buffer, connection pools default to \u003ccode\u003emax_connections=100\u003c/code\u003e, and retry defaults now use 10 attempts with exponential jitter backoff.\u003c/p\u003e\n\u003cp\u003eNote: \u003ccode\u003esocket_timeout\u003c/code\u003e can affect blocking commands such as \u003ccode\u003eBLPOP\u003c/code\u003e/\u003ccode\u003eBRPOP\u003c/code\u003e; if a command blocks longer than the client socket timeout, it may raise \u003ccode\u003eTimeoutError\u003c/code\u003e before the command timeout elapses (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/2807\"\u003e#2807\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for new array commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4055\"\u003e#4055\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Cluster PubSub in asyncio (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3736\"\u003e#3736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Redis Keyspace Notifications Support for Redis Cluster (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3962\"\u003e#3962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd random load balancing strategy which allows for use of the primary (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4027\"\u003e#4027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd FPHA (floating-point homogeneous array) arg support to JSON.SET (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4011\"\u003e#4011\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded custom Claude command + XNACK command support (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4030\"\u003e#4030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding Time Series Multiple Aggregators support (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4035\"\u003e#4035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding support for new COUNT aggregator for some sorted set commands - ZINTER, ZINTERSTORE, ZUNION, ZUNIONSTORE (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4034\"\u003e#4034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding support for new INCREX command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4067\"\u003e#4067\u003c/a\u003e \u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4077\"\u003e#4077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for PubSub subscriptions with binary channel names and handlers (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4068\"\u003e#4068\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/redis/redis-py/commit/733f80ec633d6a772a6e1ccb1c0cca6fc1afb4b6\"\u003e\u003ccode\u003e733f80e\u003c/code\u003e\u003c/a\u003e Updates in default connection and retry settings (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4082\"\u003e#4082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/a68a16c296591e902d0c749d31781550048f280f\"\u003e\u003ccode\u003ea68a16c\u003c/code\u003e\u003c/a\u003e Updating Redis supported versions in README.md and lib version to 8.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/43a41d3d2956aa69eb0041655067ffaaaf23c6c3\"\u003e\u003ccode\u003e43a41d3\u003c/code\u003e\u003c/a\u003e Updating INCREX command arg - SATURATE now controls overflow behaviour (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4077\"\u003e#4077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/1496deba3801605cb123cb1b67adda50e85cd1e5\"\u003e\u003ccode\u003e1496deb\u003c/code\u003e\u003c/a\u003e Preserve explicit None for client metadata config (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4081\"\u003e#4081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/57dc08c550f82086afeaa68a7cd7e5df356f7217\"\u003e\u003ccode\u003e57dc08c\u003c/code\u003e\u003c/a\u003e Avoid zero-timeout async reads in hiredis connections readiness checks and re...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/cd54ddd25aa307dc7f05bc0e4387cfc294c0a4c8\"\u003e\u003ccode\u003ecd54ddd\u003c/code\u003e\u003c/a\u003e fix(typing): correct type annotation for XReadResponse (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4046\"\u003e#4046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/ab2d41fcf0f9477ac788822d7c430004076a27f2\"\u003e\u003ccode\u003eab2d41f\u003c/code\u003e\u003c/a\u003e Add support for PubSub subscriptions with binary channel names and handlers (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/ef24dc99b6f2aa9507f19aa4ce4be37745ed6c77\"\u003e\u003ccode\u003eef24dc9\u003c/code\u003e\u003c/a\u003e Randomize cluster startup node order during topology refresh (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4060\"\u003e#4060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/b604015aeb5abce4b576f9dc54ffe30a3f1ba8c6\"\u003e\u003ccode\u003eb604015\u003c/code\u003e\u003c/a\u003e Add CLAUDE.md and /sync-claude-md skill for managing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4066\"\u003e#4066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/2b8b4fcc9986fbc1f188cc6a355d12eec814ee90\"\u003e\u003ccode\u003e2b8b4fc\u003c/code\u003e\u003c/a\u003e Fix flaky tests (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4071\"\u003e#4071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v5.0.1...v8.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 2.0.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.0.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 `numpy` from 1.24.3 to 2.4.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.4.6 (May 18, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.6 Release Notes\u003c/h1\u003e\n\u003cp\u003eNumPy 2.4.6 is a quick release that fixes a regression discovered in the 2.4.5\nrelease.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 4 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e!EarlMilktea\u003c/li\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eSebastian Berg\u003c/li\u003e\n\u003cli\u003eWarren Weckesser\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 4 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31444\"\u003e#31444\u003c/a\u003e: MAINT: Prepare 2.4.x for further development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31453\"\u003e#31453\u003c/a\u003e: BUG: Fix regression in \u003ccode\u003earr.conj()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31459\"\u003e#31459\u003c/a\u003e: BUG: \u003ccode\u003enp.linalg.svd(..., hermitian=True)\u003c/code\u003e returns non-unitary...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31460\"\u003e#31460\u003c/a\u003e: BUG: Don't call INCREF/DECREF on descr in NpyStringAcquireAllocator...\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.5 (May 15, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.5 Release Notes\u003c/h1\u003e\n\u003cp\u003eNumPy 2.4.5 is a patch release that fixes bugs discovered after the 2.4.4\nrelease, has some typing improvements, and maintains infrastructure.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 17 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAleksei Nikiforov\u003c/li\u003e\n\u003cli\u003eAnarion Zuo +\u003c/li\u003e\n\u003cli\u003eAnkit Ahlawat\u003c/li\u003e\n\u003cli\u003eBreno Favaretto +\u003c/li\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eIgor Krivenko +\u003c/li\u003e\n\u003cli\u003eIjtihed Kilani +\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMaarten Baert +\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/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst\"\u003enumpy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThis is a walkthrough of the NumPy 2.4.0 release on Linux, which will be the\nfirst feature release using the \u003ccode\u003enumpy/numpy-release \u0026lt;https://github.com/numpy/numpy-release\u0026gt;\u003c/code\u003e__ repository.\u003c/p\u003e\n\u003cp\u003eThe commands can be copied into the command line, but be sure to replace 2.4.0\nwith the correct version. This should be read together with the\n:ref:\u003ccode\u003egeneral release guide \u0026lt;prepare_release\u0026gt;\u003c/code\u003e.\u003c/p\u003e\n\u003ch1\u003eFacility preparation\u003c/h1\u003e\n\u003cp\u003eBefore beginning to make a release, use the \u003ccode\u003erequirements/*_requirements.txt\u003c/code\u003e files to\nensure that you have the needed software. Most software can be installed with\npip, but some will require apt-get, dnf, or whatever your system uses for\nsoftware. You will also need a GitHub personal access token (PAT) to push the\ndocumentation. There are a few ways to streamline things:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGit can be set up to use a keyring to store your GitHub personal access token.\nSearch online for the details.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ePrior to release\u003c/h1\u003e\n\u003ch2\u003eAdd/drop Python versions\u003c/h2\u003e\n\u003cp\u003eWhen adding or dropping Python versions, multiple config and CI files need to\nbe edited in addition to changing the minimum version in \u003ccode\u003epyproject.toml\u003c/code\u003e.\nMake these changes in an ordinary PR against main and backport if necessary.\nWe currently release wheels for new Python versions after the first Python RC\nonce manylinux and cibuildwheel support that new Python version.\u003c/p\u003e\n\u003ch2\u003eBackport pull requests\u003c/h2\u003e\n\u003cp\u003eChanges that have been marked for this release must be backported to the\nmaintenance/2.4.x branch.\u003c/p\u003e\n\u003ch2\u003eUpdate 2.4.0 milestones\u003c/h2\u003e\n\u003cp\u003eLook at the issues/prs with 2.4.0 milestones and either push them off to a\nlater version, or maybe remove the milestone. You may need to add a milestone.\u003c/p\u003e\n\u003ch2\u003eCheck the numpy-release repo\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/numpy/numpy/commit/b832a09cf2a169c833dd2371e7c07aa00b293242\"\u003e\u003ccode\u003eb832a09\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31462\"\u003e#31462\u003c/a\u003e from charris/prepare-2.4.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/57cc147d2ceacffc6534642bfbdebb3a80428e1e\"\u003e\u003ccode\u003e57cc147\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.6 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/0c72b0b53b6b83c004e434b2c7855e73c000d21e\"\u003e\u003ccode\u003e0c72b0b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31459\"\u003e#31459\u003c/a\u003e from charris/backport-31347\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/9778d26e0475d381ccb7817c3b4dd8cacef2b9eb\"\u003e\u003ccode\u003e9778d26\u003c/code\u003e\u003c/a\u003e BUG: core: Don't call INCREF/DECREF on descr in NpyStringAcquireAllocator. (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/e0e38767d5d0f848ab44befeedcad71e8ef589c7\"\u003e\u003ccode\u003ee0e3876\u003c/code\u003e\u003c/a\u003e BUG: core: Don't call INCREF/DECREF on descr in NpyStringAcquireAllocator. (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/d1bffeb9ec4ec0bf029c94ea35abffa92d5c30f2\"\u003e\u003ccode\u003ed1bffeb\u003c/code\u003e\u003c/a\u003e BUG: \u003ccode\u003enp.linalg.svd(..., hermitian=True)\u003c/code\u003e returns non-unitary \u003ccode\u003evh\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31347\"\u003e#31347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/8d8d7e5a14a1da0bfb0faf609a7a7610c431e6e9\"\u003e\u003ccode\u003e8d8d7e5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31453\"\u003e#31453\u003c/a\u003e from seberg/issue-31452\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/bddaab7ace45f90148d8f2bb6e67daab2d45ec76\"\u003e\u003ccode\u003ebddaab7\u003c/code\u003e\u003c/a\u003e BUG: Fix regression in \u003ccode\u003earr.conj()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/37a1ecca8dff09b2c579a991194ac55b9971f3a7\"\u003e\u003ccode\u003e37a1ecc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31444\"\u003e#31444\u003c/a\u003e from charris/begin-2.4.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/3c0e043217a759a8a948ade158fec14348c3b459\"\u003e\u003ccode\u003e3c0e043\u003c/code\u003e\u003c/a\u003e MAINT: Prepare 2.4.x for further development\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v1.24.3...v2.4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 1.12.0 to 2.38.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.38.0\u003c/h2\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.37.0\u003c/h2\u003e\n\u003ch2\u003e2.37.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.36.0...v2.37.0\"\u003ev2.36.0...v2.37.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 service_tier parameter to responses compact method (\u003ca href=\"https://github.com/openai/openai-python/commit/625827c5509ece3c40e5002be37a9bd9d91b5374\"\u003e625827c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal/types:\u003c/strong\u003e support eagerly validating pydantic iterators (\u003ca href=\"https://github.com/openai/openai-python/commit/7e527bc927cc58b74d7619abf7f1fbcfff8bddfa\"\u003e7e527bc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary client_id when using workload identity provider for auth (\u003ca href=\"https://github.com/openai/openai-python/commit/c39ea8d12a010052d7f02cebe8daabd2d1f89597\"\u003ec39ea8d\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 add missing f-string prefix in file type error message (\u003ca href=\"https://github.com/openai/openai-python/commit/c85ebd935cb4b80e7e97ce255437684f6411fb00\"\u003ec85ebd9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.36.0\u003c/h2\u003e\n\u003ch2\u003e2.36.0 (2026-05-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.35.1...v2.36.0\"\u003ev2.35.1...v2.36.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/13c639cc7d57e4fbd4406563511e15eeb88a54b2\"\u003e13c639c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e realtime 2 (\u003ca href=\"https://github.com/openai/openai-python/commit/8fe0ab87e67eeb3cc27426b50093845229520f0e\"\u003e8fe0ab8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.35.1\u003c/h2\u003e\n\u003ch2\u003e2.35.1 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.35.0...v2.35.1\"\u003ev2.35.0...v2.35.1\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/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.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.37.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.36.0...v2.37.0\"\u003ev2.36.0...v2.37.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 service_tier parameter to responses compact method (\u003ca href=\"https://github.com/openai/openai-python/commit/625827c5509ece3c40e5002be37a9bd9d91b5374\"\u003e625827c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal/types:\u003c/strong\u003e support eagerly validating pydantic iterators (\u003ca href=\"https://github.com/openai/openai-python/commit/7e527bc927cc58b74d7619abf7f1fbcfff8bddfa\"\u003e7e527bc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary client_id when using workload identity provider for auth (\u003ca href=\"https://github.com/openai/openai-python/commit/c39ea8d12a010052d7f02cebe8daabd2d1f89597\"\u003ec39ea8d\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 add missing f-string prefix in file type error message (\u003ca href=\"https://github.com/openai/openai-python/commit/c85ebd935cb4b80e7e97ce255437684f6411fb00\"\u003ec85ebd9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.36.0 (2026-05-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.35.1...v2.36.0\"\u003ev2.35.1...v2.36.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/13c639cc7d57e4fbd4406563511e15eeb88a54b2\"\u003e13c639c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e realtime 2 (\u003ca href=\"https://github.com/openai/openai-python/commit/8fe0ab87e67eeb3cc27426b50093845229520f0e\"\u003e8fe0ab8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.35.1 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.35.0...v2.35.1\"\u003ev2.35.0...v2.35.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e fix imagegen \u003ccode\u003esize\u003c/code\u003e enum regression (\u003ca href=\"https://github.com/openai/openai-python/commit/44846536bc3b02c393daa5bae70a85de04c7f621\"\u003e4484653\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/e75766769547601a25ed83b666c4d0fd046881f0\"\u003e\u003ccode\u003ee757667\u003c/code\u003e\u003c/a\u003e release: 2.38.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/b85b647b5312debb951814dfb9ed13f906d6bf43\"\u003e\u003ccode\u003eb85b647\u003c/code\u003e\u003c/a\u003e feat(api): api update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/d881c67866083ae187e14664e289e68a3ba04686\"\u003e\u003ccode\u003ed881c67\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;chore: check release PR custom code sync\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/d4a322816ad637330e40fdcdee9ca48bc92a2a4f\"\u003e\u003ccode\u003ed4a3228\u003c/code\u003e\u003c/a\u003e chore: check release PR custom code sync\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/48888380cdfc01e4f22f9ed7fbd5250231472e0d\"\u003e\u003ccode\u003e4888838\u003c/code\u003e\u003c/a\u003e chore: remove release automation trigger\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/74978f055a7adf004dec718e80bb46241e54d9ca\"\u003e\u003ccode\u003e74978f0\u003c/code\u003e\u003c/a\u003e chore: trigger release automation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/bab18af787cd5d962aedeb4b5b86df4f6cf28003\"\u003e\u003ccode\u003ebab18af\u003c/code\u003e\u003c/a\u003e chore(api): docs updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a6f899aa1e046dd0cc18b89c4f73260463888db6\"\u003e\u003ccode\u003ea6f899a\u003c/code\u003e\u003c/a\u003e feat(api): manual updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2897485d445f2924c5c2a8e6a9f40eec633ff345\"\u003e\u003ccode\u003e2897485\u003c/code\u003e\u003c/a\u003e feat(api): update OpenAPI spec or Stainless config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a2f1d6c56980713619760c60a5c7bfb580b0adcb\"\u003e\u003ccode\u003ea2f1d6c\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v1.12.0...v2.38.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `qrcode` from 7.4.2 to 8.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lincolnloop/python-qrcode/blob/main/CHANGES.rst\"\u003eqrcode's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2 (01 May 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize QRColorMask apply_mask method for enhanced performance\u003c/li\u003e\n\u003cli\u003eFix typos on StyledPilImage embeded_* parameters.\nThe old parameters with the typos are still accepted\nfor backward compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1 (02 April 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0 (27 September 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.11 and 3.12.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python \u0026lt;=3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange local development setup to use Poetry_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTestsuite and code quality checks are done through Github Actions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCode quality and formatting utilises ruff_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003etyping_extensions\u003c/code\u003e as a dependency, as it's no longer required\nwith having Python 3.9+ as a requirement.\nhaving Python 3.9+ as a requirement.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOnly allow high error correction rate (\u003ccode\u003eqrcode.ERROR_CORRECT_H\u003c/code\u003e)\nwhen generating\nQR codes with embedded images to ensure content is readable\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _Poetry: \u003ca href=\"https://python-poetry.org\"\u003ehttps://python-poetry.org\u003c/a\u003e\n.. _ruff: \u003ca href=\"https://astral.sh/ruff\"\u003ehttps://astral.sh/ruff\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/lincolnloop/python-qrcode/commit/3704f57a1107dbf553a50f5b531da3859abe19cf\"\u003e\u003ccode\u003e3704f57\u003c/code\u003e\u003c/a\u003e Preparing release 8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/b593a2b86d8f9cd1bc24cc5623ee47cf1aa076b5\"\u003e\u003ccode\u003eb593a2b\u003c/code\u003e\u003c/a\u003e Fix embeded_* typo on paremeters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/d2674f83092d3573e164bb83468e51f59c85bf50\"\u003e\u003ccode\u003ed2674f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/383\"\u003e#383\u003c/a\u003e from btimby/spelling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/2ced7b4b38ea3132793723bbab588d5676fc8bc7\"\u003e\u003ccode\u003e2ced7b4\u003c/code\u003e\u003c/a\u003e Ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/c5e3f0180e025d9c0fd6adf8ed3c9998073c6137\"\u003e\u003ccode\u003ec5e3f01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/372\"\u003e#372\u003c/a\u003e from smalyu/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/cd3cd7bf87fc81860481902ca22d5b7463332b4b\"\u003e\u003ccode\u003ecd3cd7b\u003c/code\u003e\u003c/a\u003e Release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/5dcf89c56417ad37de8dba953f974324ae7b9271\"\u003e\u003ccode\u003e5dcf89c\u003c/code\u003e\u003c/a\u003e Preparing release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/10da1ba2c95886312097608bd4632ba34765e0e0\"\u003e\u003ccode\u003e10da1ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/386\"\u003e#386\u003c/a\u003e from hugovk/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/7cb996d04c6536a2dbf84cccf9fc471a200f0072\"\u003e\u003ccode\u003e7cb996d\u003c/code\u003e\u003c/a\u003e Upgrade Python syntax with pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/dc4831bde0c432e5d878b75818af38e9dc80cc87\"\u003e\u003ccode\u003edc4831b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lincolnloop/python-qrcode/compare/v7.4.2...v8.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 7.4.4 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\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\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/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\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/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/7.4.4...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-asyncio` from 0.21.2 to 1.4.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 v1.4.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.4.0\"\u003e1.4.0\u003c/a\u003e - 2026-05-26\u003c/h1\u003e\n\u003ch2\u003eDeprecated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOverriding the \u003cem\u003eevent_loop_policy\u003c/em\u003e fixture is deprecated. Use the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook instead. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1419\"\u003e#1419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook to parametrize asyncio tests with custom event loop factories.\u003c/p\u003e\n\u003cp\u003eThe hook returns a mapping of factory names to loop factories, and \u003ccode\u003epytest.mark.asyncio(loop_factories=[...])\u003c/code\u003e selects a subset of configured factories per test. When a single factory is configured, test names are unchanged.\u003c/p\u003e\n\u003cp\u003eSynchronous \u003ccode\u003e@pytest_asyncio.fixture\u003c/code\u003e functions now see the correct event loop when custom loop factories are configured, even when test code disrupts the current event loop (e.g., via \u003ccode\u003easyncio.run()\u003c/code\u003e or \u003ccode\u003easyncio.set_event_loop(None)\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1164\"\u003e#1164\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved the readability of the warning message that is displayed when \u003ccode\u003easyncio_default_fixture_loop_scope\u003c/code\u003e is unset (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1298\"\u003e#1298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly import \u003ccode\u003easyncio.AbstractEventLoopPolicy\u003c/code\u003e for type checking to avoid raising\na DeprecationWarning. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated minimum supported pytest version to v8.4.0. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1397\"\u003e#1397\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a \u003ccode\u003eResourceWarning: unclosed event loop\u003c/code\u003e warning that could occur when a synchronous test called \u003ccode\u003easyncio.run()\u003c/code\u003e or otherwise unset the current event loop after pytest-asyncio had run an async test or fixture. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/724\"\u003e#724\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded dependency on \u003ccode\u003esphinx-tabs \u0026gt;= 3.5\u003c/code\u003e to organize documentation examples into tabs. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1395\"\u003e#1395\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio v1.4.0a2\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.4.0a2\"\u003e1.4.0a2\u003c/a\u003e - 2026-05-02\u003c/h1\u003e\n\u003ch2\u003eDeprecated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOverriding the \u003cem\u003eevent_loop_policy\u003c/em\u003e fixture is deprecated. Use the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook instead. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1419\"\u003e#1419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook to parametrize asyncio tests with custom event loop factories.\u003c/p\u003e\n\u003cp\u003eThe hook returns a mapping of factory names to loop factories, and \u003ccode\u003epytest.mark.asyncio(loop_factories=[...])\u003c/code\u003e selects a subset of configured factories per test. When a single factory is configured, test names are unchanged on pytest 8.4+.\u003c/p\u003e\n\u003cp\u003eSynchronous \u003ccode\u003e@pytest_asyncio.fixture\u003c/code\u003e functions now see the correct event loop when custom loop factories are configured, even when test code disrupts the current event loop (e.g., via \u003ccode\u003easyncio.run()\u003c/code\u003e or \u003ccode\u003easyncio.set_event_loop(None)\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1164\"\u003e#1164\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved the readability of the warning message that is displayed when \u003ccode\u003easyncio_default_fixture_loop_scope\u003c/code\u003e is unset (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1298\"\u003e#1298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly import \u003ccode\u003easyncio.AbstractEventLoopPolicy\u003c/code\u003e for type checking to avoid raising\na DeprecationWarning. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1394\"\u003e#1394\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/pytest-dev/pytest-asyncio/commit/6e14cd2af9292dca1fa2b027a06bbc40b0e0e425\"\u003e\u003ccode\u003e6e14cd2\u003c/code\u003e\u003c/a\u003e chore: Prepare release of v1.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4b900fb5d0c30949c574e55dd904ee179f858a5e\"\u003e\u003ccode\u003e4b900fb\u003c/code\u003e\u003c/a\u003e Build(deps): Bump codecov/codecov-action from 6.0.0 to 6.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/ab9f63245094865c42c940a34af724b0dec1debf\"\u003e\u003ccode\u003eab9f632\u003c/code\u003e\u003c/a\u003e Build(deps): Bump zipp from 3.23.1 to 4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/a56fc77ecd59f781d8471b0f6a82bf58e08c95fa\"\u003e\u003ccode\u003ea56fc77\u003c/code\u003e\u003c/a\u003e Build(deps): Bump hypothesis from 6.152.6 to 6.152.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/e8bae9bc1f197731fc1a210c0da557af7b698e6d\"\u003e\u003ccode\u003ee8bae9b\u003c/code\u003e\u003c/a\u003e Build(deps): Bump requests from 2.34.0 to 2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/fc433402c570fd36a7a227ef4bc3abd4579299de\"\u003e\u003ccode\u003efc43340\u003c/code\u003e\u003c/a\u003e Build(deps): Bump idna from 3.14 to 3.15\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev...\n\n_Description has been truncated_","html_url":"https://github.com/Nebuspace/Sectorwars2102/pull/39","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nebuspace%2FSectorwars2102/issues/39","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/39/packages"},{"uuid":"4518920774","node_id":"PR_kwDOImZqx87fI7-n","number":397,"state":"closed","title":"Update qrcode requirement from \u003e=7.4.2 to \u003e=8.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-25T22:24:32.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-25T18:46:49.000Z","updated_at":"2026-05-25T22:24:40.000Z","time_to_close":13063,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"qrcode","old_version":"\u003e=7.4.2","new_version":"\u003e=8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"}],"path":null,"ecosystem":"pip"},"body":"\u003e [!WARNING]\n\u003e Dependabot will stop supporting `python v3.9`!\n\u003e \n\u003e Please upgrade to one of the following versions: `v3.9`, `v3.10`, `v3.11`, `v3.12`, `v3.13`, or `v3.14`.\n\u003e\n\nUpdates the requirements on [qrcode](https://github.com/lincolnloop/python-qrcode) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lincolnloop/python-qrcode/blob/main/CHANGES.rst\"\u003eqrcode's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2 (01 May 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize QRColorMask apply_mask method for enhanced performance\u003c/li\u003e\n\u003cli\u003eFix typos on StyledPilImage embeded_* parameters.\nThe old parameters with the typos are still accepted\nfor backward compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1 (02 April 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0 (27 September 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.11 and 3.12.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python \u0026lt;=3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange local development setup to use Poetry_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTestsuite and code quality checks are done through Github Actions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCode quality and formatting utilises ruff_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003etyping_extensions\u003c/code\u003e as a dependency, as it's no longer required\nwith having Python 3.9+ as a requirement.\nhaving Python 3.9+ as a requirement.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOnly allow high error correction rate (\u003ccode\u003eqrcode.ERROR_CORRECT_H\u003c/code\u003e)\nwhen generating\nQR codes with embedded images to ensure content is readable\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _Poetry: \u003ca href=\"https://python-poetry.org\"\u003ehttps://python-poetry.org\u003c/a\u003e\n.. _ruff: \u003ca href=\"https://astral.sh/ruff\"\u003ehttps://astral.sh/ruff\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.4.2 (6 February 2023)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow \u003ccode\u003epypng\u003c/code\u003e factory to allow for saving to a string (like\n\u003ccode\u003eqr.save(\u0026quot;some_file.png\u0026quot;)\u003c/code\u003e) in addition to file-like objects.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.4.1 (3 February 2023)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix bad over-optimization in v7.4 that broke large QR codes. Thanks to\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/lincolnloop/python-qrcode/commit/3704f57a1107dbf553a50f5b531da3859abe19cf\"\u003e\u003ccode\u003e3704f57\u003c/code\u003e\u003c/a\u003e Preparing release 8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/b593a2b86d8f9cd1bc24cc5623ee47cf1aa076b5\"\u003e\u003ccode\u003eb593a2b\u003c/code\u003e\u003c/a\u003e Fix embeded_* typo on paremeters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/d2674f83092d3573e164bb83468e51f59c85bf50\"\u003e\u003ccode\u003ed2674f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/383\"\u003e#383\u003c/a\u003e from btimby/spelling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/2ced7b4b38ea3132793723bbab588d5676fc8bc7\"\u003e\u003ccode\u003e2ced7b4\u003c/code\u003e\u003c/a\u003e Ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/c5e3f0180e025d9c0fd6adf8ed3c9998073c6137\"\u003e\u003ccode\u003ec5e3f01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/372\"\u003e#372\u003c/a\u003e from smalyu/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/cd3cd7bf87fc81860481902ca22d5b7463332b4b\"\u003e\u003ccode\u003ecd3cd7b\u003c/code\u003e\u003c/a\u003e Release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/5dcf89c56417ad37de8dba953f974324ae7b9271\"\u003e\u003ccode\u003e5dcf89c\u003c/code\u003e\u003c/a\u003e Preparing release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/10da1ba2c95886312097608bd4632ba34765e0e0\"\u003e\u003ccode\u003e10da1ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/386\"\u003e#386\u003c/a\u003e from hugovk/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/7cb996d04c6536a2dbf84cccf9fc471a200f0072\"\u003e\u003ccode\u003e7cb996d\u003c/code\u003e\u003c/a\u003e Upgrade Python syntax with pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/dc4831bde0c432e5d878b75818af38e9dc80cc87\"\u003e\u003ccode\u003edc4831b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lincolnloop/python-qrcode/compare/v7.4.2...v8.2\"\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/laggykiller/sticker-convert/pull/397","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/laggykiller%2Fsticker-convert/issues/397","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/397/packages"},{"uuid":"4425231529","node_id":"PR_kwDOPa2xds7aeRcb","number":123,"state":"closed","title":"chore(deps): bump qrcode from 7.4.2 to 8.2 in /backend","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-17T05:26:55.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-12T00:19:44.000Z","updated_at":"2026-05-17T05:26:57.000Z","time_to_close":450431,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"qrcode","old_version":"7.4.2","new_version":"8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps [qrcode](https://github.com/lincolnloop/python-qrcode) from 7.4.2 to 8.2.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lincolnloop/python-qrcode/blob/main/CHANGES.rst\"\u003eqrcode's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2 (01 May 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize QRColorMask apply_mask method for enhanced performance\u003c/li\u003e\n\u003cli\u003eFix typos on StyledPilImage embeded_* parameters.\nThe old parameters with the typos are still accepted\nfor backward compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1 (02 April 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0 (27 September 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.11 and 3.12.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python \u0026lt;=3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange local development setup to use Poetry_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTestsuite and code quality checks are done through Github Actions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCode quality and formatting utilises ruff_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003etyping_extensions\u003c/code\u003e as a dependency, as it's no longer required\nwith having Python 3.9+ as a requirement.\nhaving Python 3.9+ as a requirement.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOnly allow high error correction rate (\u003ccode\u003eqrcode.ERROR_CORRECT_H\u003c/code\u003e)\nwhen generating\nQR codes with embedded images to ensure content is readable\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _Poetry: \u003ca href=\"https://python-poetry.org\"\u003ehttps://python-poetry.org\u003c/a\u003e\n.. _ruff: \u003ca href=\"https://astral.sh/ruff\"\u003ehttps://astral.sh/ruff\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/lincolnloop/python-qrcode/commit/3704f57a1107dbf553a50f5b531da3859abe19cf\"\u003e\u003ccode\u003e3704f57\u003c/code\u003e\u003c/a\u003e Preparing release 8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/b593a2b86d8f9cd1bc24cc5623ee47cf1aa076b5\"\u003e\u003ccode\u003eb593a2b\u003c/code\u003e\u003c/a\u003e Fix embeded_* typo on paremeters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/d2674f83092d3573e164bb83468e51f59c85bf50\"\u003e\u003ccode\u003ed2674f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/383\"\u003e#383\u003c/a\u003e from btimby/spelling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/2ced7b4b38ea3132793723bbab588d5676fc8bc7\"\u003e\u003ccode\u003e2ced7b4\u003c/code\u003e\u003c/a\u003e Ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/c5e3f0180e025d9c0fd6adf8ed3c9998073c6137\"\u003e\u003ccode\u003ec5e3f01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/372\"\u003e#372\u003c/a\u003e from smalyu/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/cd3cd7bf87fc81860481902ca22d5b7463332b4b\"\u003e\u003ccode\u003ecd3cd7b\u003c/code\u003e\u003c/a\u003e Release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/5dcf89c56417ad37de8dba953f974324ae7b9271\"\u003e\u003ccode\u003e5dcf89c\u003c/code\u003e\u003c/a\u003e Preparing release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/10da1ba2c95886312097608bd4632ba34765e0e0\"\u003e\u003ccode\u003e10da1ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/386\"\u003e#386\u003c/a\u003e from hugovk/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/7cb996d04c6536a2dbf84cccf9fc471a200f0072\"\u003e\u003ccode\u003e7cb996d\u003c/code\u003e\u003c/a\u003e Upgrade Python syntax with pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/dc4831bde0c432e5d878b75818af38e9dc80cc87\"\u003e\u003ccode\u003edc4831b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lincolnloop/python-qrcode/compare/v7.4.2...v8.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/WebbPulse/CarModPicker/pull/123","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/WebbPulse%2FCarModPicker/issues/123","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/123/packages"},{"uuid":"4335083828","node_id":"PR_kwDOPaKbKs7V7QQ2","number":117,"state":"open","title":"deps(backend)(deps): update qrcode requirement from \u003e=7.4.2 to \u003e=8.2 in /portfolio-backend","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-27T10:43:43.000Z","updated_at":"2026-04-27T10:45:35.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(backend)(deps): update","packages":[{"name":"qrcode","old_version":"\u003e=7.4.2","new_version":"\u003e=8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"}],"path":"/portfolio-backend","ecosystem":"pip"},"body":"Updates the requirements on [qrcode](https://github.com/lincolnloop/python-qrcode) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lincolnloop/python-qrcode/blob/main/CHANGES.rst\"\u003eqrcode's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2 (01 May 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize QRColorMask apply_mask method for enhanced performance\u003c/li\u003e\n\u003cli\u003eFix typos on StyledPilImage embeded_* parameters.\nThe old parameters with the typos are still accepted\nfor backward compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1 (02 April 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0 (27 September 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.11 and 3.12.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python \u0026lt;=3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange local development setup to use Poetry_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTestsuite and code quality checks are done through Github Actions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCode quality and formatting utilises ruff_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003etyping_extensions\u003c/code\u003e as a dependency, as it's no longer required\nwith having Python 3.9+ as a requirement.\nhaving Python 3.9+ as a requirement.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOnly allow high error correction rate (\u003ccode\u003eqrcode.ERROR_CORRECT_H\u003c/code\u003e)\nwhen generating\nQR codes with embedded images to ensure content is readable\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _Poetry: \u003ca href=\"https://python-poetry.org\"\u003ehttps://python-poetry.org\u003c/a\u003e\n.. _ruff: \u003ca href=\"https://astral.sh/ruff\"\u003ehttps://astral.sh/ruff\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.4.2 (6 February 2023)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow \u003ccode\u003epypng\u003c/code\u003e factory to allow for saving to a string (like\n\u003ccode\u003eqr.save(\u0026quot;some_file.png\u0026quot;)\u003c/code\u003e) in addition to file-like objects.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.4.1 (3 February 2023)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix bad over-optimization in v7.4 that broke large QR codes. Thanks to\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/lincolnloop/python-qrcode/commit/3704f57a1107dbf553a50f5b531da3859abe19cf\"\u003e\u003ccode\u003e3704f57\u003c/code\u003e\u003c/a\u003e Preparing release 8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/b593a2b86d8f9cd1bc24cc5623ee47cf1aa076b5\"\u003e\u003ccode\u003eb593a2b\u003c/code\u003e\u003c/a\u003e Fix embeded_* typo on paremeters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/d2674f83092d3573e164bb83468e51f59c85bf50\"\u003e\u003ccode\u003ed2674f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/383\"\u003e#383\u003c/a\u003e from btimby/spelling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/2ced7b4b38ea3132793723bbab588d5676fc8bc7\"\u003e\u003ccode\u003e2ced7b4\u003c/code\u003e\u003c/a\u003e Ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/c5e3f0180e025d9c0fd6adf8ed3c9998073c6137\"\u003e\u003ccode\u003ec5e3f01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/372\"\u003e#372\u003c/a\u003e from smalyu/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/cd3cd7bf87fc81860481902ca22d5b7463332b4b\"\u003e\u003ccode\u003ecd3cd7b\u003c/code\u003e\u003c/a\u003e Release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/5dcf89c56417ad37de8dba953f974324ae7b9271\"\u003e\u003ccode\u003e5dcf89c\u003c/code\u003e\u003c/a\u003e Preparing release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/10da1ba2c95886312097608bd4632ba34765e0e0\"\u003e\u003ccode\u003e10da1ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/386\"\u003e#386\u003c/a\u003e from hugovk/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/7cb996d04c6536a2dbf84cccf9fc471a200f0072\"\u003e\u003ccode\u003e7cb996d\u003c/code\u003e\u003c/a\u003e Upgrade Python syntax with pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/dc4831bde0c432e5d878b75818af38e9dc80cc87\"\u003e\u003ccode\u003edc4831b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lincolnloop/python-qrcode/compare/v7.4.2...v8.2\"\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/andresfranco/portfolio-suite/pull/117","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/andresfranco%2Fportfolio-suite/issues/117","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/117/packages"},{"uuid":"4331014784","node_id":"PR_kwDOR8p0Wc7VueQu","number":70,"state":"closed","title":"chore(deps): Bump the python-minor-patch group in /apps/mybookkeeper/backend with 26 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-26T14:21:17.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-26T13:48:05.000Z","updated_at":"2026-04-26T14:21:19.000Z","time_to_close":1992,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"python-minor-patch","update_count":26,"packages":[{"name":"uvicorn","old_version":"0.30.0","new_version":"0.46.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"sqlalchemy","old_version":"2.0.36","new_version":"2.0.49","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"alembic","old_version":"1.13.3","new_version":"1.18.4","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"asyncpg","old_version":"0.30.0","new_version":"0.31.0","repository_url":"https://github.com/MagicStack/asyncpg"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pydantic","old_version":"2.9.0","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.5.0","new_version":"2.14.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"email-validator","old_version":"2.1.2","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"anthropic","old_version":"0.34.0","new_version":"0.97.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"google-api-python-client","old_version":"2.143.0","new_version":"2.194.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"google-auth-httplib2","old_version":"0.2.0","new_version":"0.3.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth-oauthlib","old_version":"1.2.1","new_version":"1.3.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"mammoth","old_version":"1.11.0","new_version":"1.12.0","repository_url":"https://github.com/mwilliamson/python-mammoth"},{"name":"httpx","old_version":"0.27.0","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"minio","old_version":"7.2.15","new_version":"7.2.20","repository_url":"https://github.com/minio/minio-py"},{"name":"sentry-sdk","old_version":"2.19.2","new_version":"2.58.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"qrcode","old_version":"8.0","new_version":"8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"},{"name":"certifi","old_version":"2026.2.25","new_version":"2026.4.22","repository_url":"https://github.com/certifi/python-certifi"},{"name":"click","old_version":"8.3.2","new_version":"8.3.3","repository_url":"https://github.com/pallets/click"},{"name":"filelock","old_version":"3.28.0","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"huggingface-hub","old_version":"1.11.0","new_version":"1.12.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"idna","old_version":"3.11","new_version":"3.13","repository_url":"https://github.com/kjd/idna"},{"name":"packaging","old_version":"26.1","new_version":"26.2","repository_url":"https://github.com/pypa/packaging"},{"name":"pydantic-core","old_version":"2.23.2","new_version":"2.46.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"typer","old_version":"0.24.1","new_version":"0.25.0","repository_url":"https://github.com/fastapi/typer"},{"name":"tzdata","old_version":"2026.1","new_version":"2026.2","repository_url":"https://github.com/python/tzdata"}],"path":"/apps/mybookkeeper/backend","ecosystem":"pip"},"body":"Bumps the python-minor-patch group in /apps/mybookkeeper/backend with 26 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.30.0` | `0.46.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.36` | `2.0.49` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.13.3` | `1.18.4` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.12` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.9.0` | `2.13.3` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.5.0` | `2.14.0` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.1.2` | `2.3.0` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.34.0` | `0.97.0` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.143.0` | `2.194.0` |\n| [google-auth-httplib2](https://github.com/googleapis/google-cloud-python) | `0.2.0` | `0.3.1` |\n| [google-auth-oauthlib](https://github.com/googleapis/google-cloud-python) | `1.2.1` | `1.3.1` |\n| [mammoth](https://github.com/mwilliamson/python-mammoth) | `1.11.0` | `1.12.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.0` | `0.28.1` |\n| [minio](https://github.com/minio/minio-py) | `7.2.15` | `7.2.20` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.19.2` | `2.58.0` |\n| [qrcode](https://github.com/lincolnloop/python-qrcode) | `8.0` | `8.2` |\n| [certifi](https://github.com/certifi/python-certifi) | `2026.2.25` | `2026.4.22` |\n| [click](https://github.com/pallets/click) | `8.3.2` | `8.3.3` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.28.0` | `3.29.0` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.11.0` | `1.12.0` |\n| [idna](https://github.com/kjd/idna) | `3.11` | `3.13` |\n| [packaging](https://github.com/pypa/packaging) | `26.1` | `26.2` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.23.2` | `2.46.3` |\n| [typer](https://github.com/fastapi/typer) | `0.24.1` | `0.25.0` |\n| [tzdata](https://github.com/python/tzdata) | `2026.1` | `2026.2` |\n\nUpdates `uvicorn` from 0.30.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\u003ch2\u003eVersion 0.42.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for request body accumulation to avoid O(n^2) allocation on fragmented bodies (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2845\"\u003e#2845\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\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/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\u003ch2\u003e0.42.0 (March 16, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for request body accumulation to avoid O(n^2) allocation on fragmented bodies (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2845\"\u003e#2845\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/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.30.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 `sqlalchemy` from 2.0.36 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 `alembic` from 1.13.3 to 1.18.4\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.18.4\u003c/h1\u003e\n\u003cp\u003eReleased: February 10, 2026\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [operations]\u003c/strong\u003e Reverted the behavior of \u003ccode\u003eOperations.add_column()\u003c/code\u003e that would\nautomatically render the \u0026quot;PRIMARY KEY\u0026quot; keyword inline when a\n\u003ccode\u003eColumn\u003c/code\u003e with \u003ccode\u003eprimary_key=True\u003c/code\u003e is added. The automatic\nbehavior, added in version 1.18.2, is now opt-in via the new\n\u003ccode\u003eOperations.add_column.inline_primary_key\u003c/code\u003e parameter. This\nchange restores the ability to render a PostgreSQL SERIAL column, which is\nrequired to be \u003ccode\u003eprimary_key=True\u003c/code\u003e, while not impacting the ability to\nrender a separate primary key constraint. This also provides consistency\nwith the \u003ccode\u003eOperations.add_column.inline_references\u003c/code\u003e parameter and\ngives users explicit control over SQL generation.\u003c/p\u003e\n\u003cp\u003eTo render PRIMARY KEY inline, use the\n\u003ccode\u003eOperations.add_column.inline_primary_key\u003c/code\u003e parameter set to\n\u003ccode\u003eTrue\u003c/code\u003e:\u003c/p\u003e\n\u003cp\u003eop.add_column(\n\u0026quot;my_table\u0026quot;,\nColumn(\u0026quot;id\u0026quot;, Integer, primary_key=True),\ninline_primary_key=True\n)References: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1232\"\u003e#1232\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.18.3\u003c/h1\u003e\n\u003cp\u003eReleased: January 29, 2026\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [autogenerate]\u003c/strong\u003e Fixed regression in version 1.18.0 due to \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e where autogenerate\nwould raise \u003ccode\u003eNoReferencedTableError\u003c/code\u003e when a foreign key constraint\nreferenced a table that was not part of the initial table load, including\ntables filtered out by the\n\u003ccode\u003eEnvironmentContext.configure.include_name\u003c/code\u003e callable or tables\nin remote schemas that were not included in the initial reflection run.\u003c/p\u003e\n\u003cp\u003eThe change in \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e was a performance optimization that eliminated\nadditional reflection queries for tables that were only referenced by\nforeign keys but not explicitly included in the main reflection run.\nHowever, this optimization inadvertently removed the creation of\n\u003ccode\u003eTable\u003c/code\u003e objects for these referenced tables, causing autogenerate\nto fail when processing foreign key constraints that pointed to them.\u003c/p\u003e\n\u003cp\u003eThe fix creates placeholder \u003ccode\u003eTable\u003c/code\u003e objects for foreign key targets\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 `asyncpg` from 0.30.0 to 0.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MagicStack/asyncpg/releases\"\u003easyncpg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.31.0\u003c/h2\u003e\n\u003cp\u003eEnable Python 3.14 with experimental subinterpreter/freethreading\nsupport.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Python 3.14 support, experimental subinterpreter/freethreading support (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1279\"\u003e#1279\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 9e42642b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid performing type introspection on known types (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1243\"\u003e#1243\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5c9986c4)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eprepare()\u003c/code\u003e not use named statements by default when cache is disabled (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1245\"\u003e#1245\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5b14653e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement connection service file functionality (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1223\"\u003e#1223\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 1d63bb15)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix multi port connection string issue (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1222\"\u003e#1222\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 01c0db7b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid leaking connections if _can_use_connection fails (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1269\"\u003e#1269\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/yuliy-openai\"\u003e\u003ccode\u003e@​yuliy-openai\u003c/code\u003e\u003c/a\u003e in e94302d2)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOther\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 6c2c4904)\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/MagicStack/asyncpg/commit/71775a67277fc0aa5bd2b9f15e848826d7078c4d\"\u003e\u003ccode\u003e71775a6\u003c/code\u003e\u003c/a\u003e asyncpg v0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/508cae6441968ef7613a623fece7083cce66c2b3\"\u003e\u003ccode\u003e508cae6\u003c/code\u003e\u003c/a\u003e Test on PostgreSQL 18 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1290\"\u003e#1290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/e534e5f15c73525a6509143b3828335517360f1b\"\u003e\u003ccode\u003ee534e5f\u003c/code\u003e\u003c/a\u003e Bump cibuildwheel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/07fe5122a680f5768e39fc28d68c94b185037a52\"\u003e\u003ccode\u003e07fe512\u003c/code\u003e\u003c/a\u003e Bump pgproto\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/648b35f18199ebf2a30009376a6e9060cf7ad789\"\u003e\u003ccode\u003e648b35f\u003c/code\u003e\u003c/a\u003e Bump Cython to 3.2.1 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1288\"\u003e#1288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/9e42642b9110d206706697921b6e697a0972649d\"\u003e\u003ccode\u003e9e42642\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support, experimental subinterpreter/freethreading support (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6fe1c494ef5c3069fa9149c48bf9f8f2cd69f95e\"\u003e\u003ccode\u003e6fe1c49\u003c/code\u003e\u003c/a\u003e Move development deps away from extras and into dependency groups (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1280\"\u003e#1280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/7a548166c2b23561915c481bd332013e3a415cfb\"\u003e\u003ccode\u003e7a54816\u003c/code\u003e\u003c/a\u003e Fix a couple of missed Python version guards\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6c2c4904e61b2cd2f502540730a24e246cff2ebd\"\u003e\u003ccode\u003e6c2c490\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/4c60ae890d1f3800f889679657357f91a6923568\"\u003e\u003ccode\u003e4c60ae8\u003c/code\u003e\u003c/a\u003e Bump version to 0.31.0.dev0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MagicStack/asyncpg/compare/v0.30.0...v0.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.12\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-binary'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.12\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with malformed interval (:ticket:\u003ccode\u003e1835\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\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\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\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\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/psycopg/psycopg2/commit/3a6d9d6ddc6b53eaa80b712f5fa6b23abbdc38db\"\u003e\u003ccode\u003e3a6d9d6\u003c/code\u003e\u003c/a\u003e ci: include almalinux in whieel building\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ebca6bf0f86bc6cbdc86de1eb3a53eaf49966d86\"\u003e\u003ccode\u003eebca6bf\u003c/code\u003e\u003c/a\u003e chore: bump to version 3.9.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/0196f02cc9512df8de3c941f87d27bda98f9f7af\"\u003e\u003ccode\u003e0196f02\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.3.1 to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d157bdc2235a42dc1742936dbb0f5cfc8e4d2eb7\"\u003e\u003ccode\u003ed157bdc\u003c/code\u003e\u003c/a\u003e build(deps): bump docker/setup-qemu-action from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/7fccc0f5066a40dea530512abbf02621f4182b81\"\u003e\u003ccode\u003e7fccc0f\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d52a61eb2e6095fc1b9891bfcca44ebfac509e55\"\u003e\u003ccode\u003ed52a61e\u003c/code\u003e\u003c/a\u003e chore: bump dependency libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/b231d726a01d55e07ec3620b2b82f4a2da37ba62\"\u003e\u003ccode\u003eb231d72\u003c/code\u003e\u003c/a\u003e chore: fix building binary images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/6d76e8479f0f522c2e07ce0e2701030d8fd63785\"\u003e\u003ccode\u003e6d76e84\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1836\"\u003e#1836\u003c/a\u003e from psycopg/fix-1835\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/f7e314c7ab418ab9b9956e694956089a49c5c3b9\"\u003e\u003ccode\u003ef7e314c\u003c/code\u003e\u003c/a\u003e fix: overflow in malformed interval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/eb905c124b75f2a5183d22177b85af20914b0f17\"\u003e\u003ccode\u003eeb905c1\u003c/code\u003e\u003c/a\u003e docs: replace bare except clause with except Exception\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.9.0 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.9.0...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.5.0 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\u003ch2\u003ev2.13.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression for bool fields since 2.13.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/784\"\u003epydantic/pydantic-settings#784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError with self-referential models in CliApp 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/783\"\u003epydantic/pydantic-settings#783\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/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.5.0...v2.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `email-validator` from 2.1.2 to 2.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JoshData/python-email-validator/releases\"\u003eemail-validator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe package name is changed from using an underscore (email_validator) to a dash (email-validator) to match PyPi's normalized package name.\u003c/li\u003e\n\u003cli\u003eThe library no longer checks that the local part is at most 64 characters because a more careful reading of RFC 5321 indicates the limit is optional and such email addresses have been found in the wild. However the check can be restored using a new \u003ccode\u003estrict=True\u003c/code\u003e parameter, and the overall 254 character email address length limit is still in place.\u003c/li\u003e\n\u003cli\u003eNew EmailSyntaxError messages are used for some exiting syntax errors related to @-sign homoglyphs and invalid characters in internationalized domains.\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003eallow_display_name=True\u003c/code\u003e, display names are now returned with Unicode NFC normalization.\u003c/li\u003e\n\u003cli\u003eTypeError is now raised if something other than str (or bytes) is passed as the email address.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.0 (June 20, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEmail addresses with internationalized local parts could, with rare Unicode characters, be returned as valid but actually be invalid in their normalized form (returned in the \u003ccode\u003enormalized\u003c/code\u003e field). Local parts now re-validated after Unicode NFC normalization to ensure that invalid characters cannot be injected into the normalized address and that characters with length-increasing NFC normalizations cannot cause a local part to exceed the maximum length after normalization.\u003c/li\u003e\n\u003cli\u003eThe length check for email addresses with internationalized local parts is now also applied to the original address string prior to Unicode NFC normalization, which may be longer and could exceed the maximum email address length, to protect callers who do not use the returned normalized address.\u003c/li\u003e\n\u003cli\u003eImproved error message for IDNA domains that are too long or have invalid characters after Unicode normalization.\u003c/li\u003e\n\u003cli\u003eA new option to parse \u003ccode\u003eMy Name \u0026lt;address@domain\u0026gt;\u003c/code\u003e strings, i.e. a display name plus an email address in angle brackets, is now available. It is off by default.\u003c/li\u003e\n\u003cli\u003eImprovements to Python typing.\u003c/li\u003e\n\u003cli\u003eSome additional tests added.\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/JoshData/python-email-validator/blob/main/CHANGELOG.md\"\u003eemail-validator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.0 (August 26, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe package name is changed from using an underscore (email_validator) to a dash (email-validator) to match PyPi's normalized package name.\u003c/li\u003e\n\u003cli\u003eThe library no longer checks that the local part is at most 64 characters because a more careful reading of RFC 5321 indicates the limit is optional and such email addresses have been found in the wild. However the check can be restored using a new \u003ccode\u003estrict=True\u003c/code\u003e parameter, and the overall 254 character email address length limit is still in place.\u003c/li\u003e\n\u003cli\u003eNew EmailSyntaxError messages are used for some exiting syntax errors related to @-sign homoglyphs and invalid characters in internationalized domains.\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003eallow_display_name=True\u003c/code\u003e, display names are now returned with Unicode NFC normalization.\u003c/li\u003e\n\u003cli\u003eTypeError is now raised if something other than str (or bytes) is passed as the email address.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.0 (June 20, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEmail addresses with internationalized local parts could, with rare Unicode characters, be returned as valid but actually be invalid in their normalized form (returned in the \u003ccode\u003enormalized\u003c/code\u003e field). In particular, it is possible to get a normalized address with a \u0026quot;;\u0026quot; character, which is not valid and could change the interpretation of the address. Local parts now re-validated after Unicode NFC normalization to ensure that invalid characters cannot be injected into the normalized address and that characters with length-increasing NFC normalizations cannot cause a local part to exceed the maximum length after normalization. Thanks to \u003ca href=\"mailto:khanh@calif.io\"\u003ekhanh@calif.io\u003c/a\u003e from \u003ca href=\"https://calif.io\"\u003ehttps://calif.io\u003c/a\u003e for reporting the issue.\u003c/li\u003e\n\u003cli\u003eThe length check for email addresses with internationalized local parts is now also applied to the original address string prior to Unicode NFC normalization, which may be longer and could exceed the maximum email address length, to protect callers who do not use the returned normalized address.\u003c/li\u003e\n\u003cli\u003eImproved error message for IDNA domains that are too long or have invalid characters after Unicode normalization.\u003c/li\u003e\n\u003cli\u003eA new option to parse \u003ccode\u003eMy Name \u0026lt;address@domain\u0026gt;\u003c/code\u003e strings, i.e. a display name plus an email address in angle brackets, is now available. It is off by default.\u003c/li\u003e\n\u003cli\u003eImprovements to Python typing.\u003c/li\u003e\n\u003cli\u003eSome additional tests added.\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/JoshData/python-email-validator/commit/030a63a183a6a66450e98381ca9a23ab9769706a\"\u003e\u003ccode\u003e030a63a\u003c/code\u003e\u003c/a\u003e Version 2.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/e943a0f07f5c130b4a419e0cd79f705f36bf24fe\"\u003e\u003ccode\u003ee943a0f\u003c/code\u003e\u003c/a\u003e Raise TypeError when an invalid argument is passed for email, closes \u003ca href=\"https://redirect.github.com/JoshData/python-email-validator/issues/155\"\u003e#155\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/f90d256045dc1ccbcffd5514189267d14a9e3ea1\"\u003e\u003ccode\u003ef90d256\u003c/code\u003e\u003c/a\u003e Remove local part length check unless new strict flag is given, fixes \u003ca href=\"https://redirect.github.com/JoshData/python-email-validator/issues/158\"\u003e#158\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/98800bac023b8713351393a5043034065f1ea6cb\"\u003e\u003ccode\u003e98800ba\u003c/code\u003e\u003c/a\u003e Add explicit checks for internationalized domain name characters invalid unde...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/936aead3bf5c608f8561954e0d2955b7f97bfdad\"\u003e\u003ccode\u003e936aead\u003c/code\u003e\u003c/a\u003e Fix final syntax checks on normalized internationalized domains checking the ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/8043de49596f08d54a07e2bc7c442ced074216a6\"\u003e\u003ccode\u003e8043de4\u003c/code\u003e\u003c/a\u003e NFC-normalize display names per UTS \u003ca href=\"https://redirect.github.com/JoshData/python-email-validator/issues/39\"\u003e#39\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/bc08faa2a74b51a9e7ba7ff4f995c0b475cb5b12\"\u003e\u003ccode\u003ebc08faa\u003c/code\u003e\u003c/a\u003e Add one-off error messages for full-width-at and small-commercial-at which ar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/a1c90ab58fb0f5d969a8351a68ca15bff068527c\"\u003e\u003ccode\u003ea1c90ab\u003c/code\u003e\u003c/a\u003e Split exceptions_types.py into exceptions.py and types.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/dbcf07cc5c8066c14b6dc58d2dbb4a1e582eeefd\"\u003e\u003ccode\u003edbcf07c\u003c/code\u003e\u003c/a\u003e Change package name from using underscore to dash to match PyPi normalized pa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/7c22208ee5b82c377e960ddcea5293691eadc6cc\"\u003e\u003ccode\u003e7c22208\u003c/code\u003e\u003c/a\u003e Support ALLOW_DISPLAY_NAME and ALLOW_EMPTY_LOCAL in the CLI (\u003ca href=\"https://redirect.github.com/JoshData/python-email-validator/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JoshData/python-email-validator/compare/v2.1.2...v2.3.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.34.0 to 0.97.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.97.0\u003c/h2\u003e\n\u003ch2\u003e0.97.0 (2026-04-23)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.96.0...v0.97.0\"\u003ev0.96.0...v0.97.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e CMA Memory public beta (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fc30ebe5ca81204faa0b1d756b61dad176e37dcb\"\u003efc30ebe\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 fix errors in api spec (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/f946de8da00748b472489e93ab4920d64d1cb22d\"\u003ef946de8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e restore missing features (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/72212ab8408af389981e9e6b111c00460b2b17e4\"\u003e72212ab\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e optimize file structure copying in multipart requests (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1f9eed3a953c8cef0967df8470e04f7ac8fe3235\"\u003e1f9eed3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd missing import (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/4b12f5e0f4c29a234cd05f93c603b9cae2011aaa\"\u003e4b12f5e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e more robust bootstrap script (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7ed737089d1f28385ee827f601ba81f1935d0b6a\"\u003e7ed7370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.22.1 (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/a4b7184e57410ae92a409db5ee6fec90edceaa51\"\u003ea4b7184\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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\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.97.0 (2026-04-23)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.96.0...v0.97.0\"\u003ev0.96.0...v0.97.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e CMA Memory public beta (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fc30ebe5ca81204faa0b1d756b61dad176e37dcb\"\u003efc30ebe\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 fix errors in api spec (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/f946de8da00748b472489e93ab4920d64d1cb22d\"\u003ef946de8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e restore missing features (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/72212ab8408af389981e9e6b111c00460b2b17e4\"\u003e72212ab\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e optimize file structure copying in multipart requests (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1f9eed3a953c8cef0967df8470e04f7ac8fe3235\"\u003e1f9eed3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd missing import (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/4b12f5e0f4c29a234cd05f93c603b9cae2011aaa\"\u003e4b12f5e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e more robust bootstrap script (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7ed737089d1f28385ee827f601ba81f1935d0b6a\"\u003e7ed7370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.22.1 (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/a4b7184e57410ae92a409db5ee6fec90edceaa51\"\u003ea4b7184\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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\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/78c73600b714fcb036893768df8ee122f33d4cb3\"\u003e\u003ccode\u003e78c7360\u003c/code\u003e\u003c/a\u003e release: 0.97.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/d274533036e250506f665011d8d3441ed5228944\"\u003e\u003ccode\u003ed274533\u003c/code\u003e\u003c/a\u003e chore: add missing import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c078db11d55c5b0455272e85617d8c1cfe76180e\"\u003e\u003ccode\u003ec078db1\u003c/code\u003e\u003c/a\u003e fix(api): fix errors in api spec\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/5807d0efd8fac5fb7323dbd8949a2df8528a3456\"\u003e\u003ccode\u003e5807d0e\u003c/code\u003e\u003c/a\u003e fix(api): restore missing features\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/2cb7a83a029aa3bd960536158f16231fe0ad6d0d\"\u003e\u003ccode\u003e2cb7a83\u003c/code\u003e\u003c/a\u003e feat(api): CMA Memory public beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/edbddf7715a78e56ab019737977e4e2db60acf1b\"\u003e\u003ccode\u003eedbddf7\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/4d3e27c78b404f7a3fcb7b1cd2221033e615574b\"\u003e\u003ccode\u003e4d3e27c\u003c/code\u003e\u003c/a\u003e chore(internal): more robust bootstrap script\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/d2b3cda70e3c3b2bc153a9a486f90c3111bd4323\"\u003e\u003ccode\u003ed2b3cda\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.22.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/5871ccb66966dc2b6a3a33b8c8bf419512d830b8\"\u003e\u003ccode\u003e5871ccb\u003c/code\u003e\u003c/a\u003e perf(client): optimize file structure copying in multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b4fba031da1b33c80aa5104e84a7babda3b847f5\"\u003e\u003ccode\u003eb4fba03\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.34.0...v0.97.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-api-python-client` from 2.143.0 to 2.194.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-api-python-client/releases\"\u003egoogle-api-python-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.194.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/compare/v2.193.0...v2.194.0\"\u003e2.194.0\u003c/a\u003e (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eadmin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/91646aa8f11c3491c8ae96cb142098d23bd4d86a\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/91646aa8f11c3491c8ae96cb142098d23bd4d86a\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/b6b55b68cb84e98c0feaac31d2c...\n\n_Description has been truncated_","html_url":"https://github.com/jykwon91/MyFreeApps/pull/70","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jykwon91%2FMyFreeApps/issues/70","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/70/packages"},{"uuid":"4213571944","node_id":"PR_kwDORDlzlc7QSs5h","number":12,"state":"open","title":"deps: bump qrcode from 7.4.2 to 8.2","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-04-06T19:11:59.000Z","updated_at":"2026-04-06T19:12:00.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps","packages":[{"name":"qrcode","old_version":"7.4.2","new_version":"8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"}],"path":null,"ecosystem":"pip"},"body":"Bumps [qrcode](https://github.com/lincolnloop/python-qrcode) from 7.4.2 to 8.2.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lincolnloop/python-qrcode/blob/main/CHANGES.rst\"\u003eqrcode's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2 (01 May 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize QRColorMask apply_mask method for enhanced performance\u003c/li\u003e\n\u003cli\u003eFix typos on StyledPilImage embeded_* parameters.\nThe old parameters with the typos are still accepted\nfor backward compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1 (02 April 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0 (27 September 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.11 and 3.12.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python \u0026lt;=3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange local development setup to use Poetry_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTestsuite and code quality checks are done through Github Actions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCode quality and formatting utilises ruff_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003etyping_extensions\u003c/code\u003e as a dependency, as it's no longer required\nwith having Python 3.9+ as a requirement.\nhaving Python 3.9+ as a requirement.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOnly allow high error correction rate (\u003ccode\u003eqrcode.ERROR_CORRECT_H\u003c/code\u003e)\nwhen generating\nQR codes with embedded images to ensure content is readable\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _Poetry: \u003ca href=\"https://python-poetry.org\"\u003ehttps://python-poetry.org\u003c/a\u003e\n.. _ruff: \u003ca href=\"https://astral.sh/ruff\"\u003ehttps://astral.sh/ruff\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/lincolnloop/python-qrcode/commit/3704f57a1107dbf553a50f5b531da3859abe19cf\"\u003e\u003ccode\u003e3704f57\u003c/code\u003e\u003c/a\u003e Preparing release 8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/b593a2b86d8f9cd1bc24cc5623ee47cf1aa076b5\"\u003e\u003ccode\u003eb593a2b\u003c/code\u003e\u003c/a\u003e Fix embeded_* typo on paremeters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/d2674f83092d3573e164bb83468e51f59c85bf50\"\u003e\u003ccode\u003ed2674f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/383\"\u003e#383\u003c/a\u003e from btimby/spelling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/2ced7b4b38ea3132793723bbab588d5676fc8bc7\"\u003e\u003ccode\u003e2ced7b4\u003c/code\u003e\u003c/a\u003e Ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/c5e3f0180e025d9c0fd6adf8ed3c9998073c6137\"\u003e\u003ccode\u003ec5e3f01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/372\"\u003e#372\u003c/a\u003e from smalyu/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/cd3cd7bf87fc81860481902ca22d5b7463332b4b\"\u003e\u003ccode\u003ecd3cd7b\u003c/code\u003e\u003c/a\u003e Release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/5dcf89c56417ad37de8dba953f974324ae7b9271\"\u003e\u003ccode\u003e5dcf89c\u003c/code\u003e\u003c/a\u003e Preparing release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/10da1ba2c95886312097608bd4632ba34765e0e0\"\u003e\u003ccode\u003e10da1ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/386\"\u003e#386\u003c/a\u003e from hugovk/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/7cb996d04c6536a2dbf84cccf9fc471a200f0072\"\u003e\u003ccode\u003e7cb996d\u003c/code\u003e\u003c/a\u003e Upgrade Python syntax with pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/dc4831bde0c432e5d878b75818af38e9dc80cc87\"\u003e\u003ccode\u003edc4831b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lincolnloop/python-qrcode/compare/v7.4.2...v8.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=qrcode\u0026package-manager=pip\u0026previous-version=7.4.2\u0026new-version=8.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 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/Brunsben/FoodBot/pull/12","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Brunsben%2FFoodBot/issues/12","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12/packages"},{"uuid":"3934239497","node_id":"PR_kwDOBwbUJs7DZ_Dm","number":149,"state":"closed","title":"Bump the all-dependencies group in /requirements with 38 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-02-12T22:53:59.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-12T22:00:31.000Z","updated_at":"2026-02-12T22:54:00.000Z","time_to_close":3208,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-dependencies","update_count":38,"packages":[{"name":"bleach","old_version":"6.0.0","new_version":"6.3.0","repository_url":"https://github.com/mozilla/bleach"},{"name":"celery","old_version":"5.4.0","new_version":"5.6.2","repository_url":"https://github.com/celery/celery"},{"name":"celery-redbeat","old_version":"2.2.0","new_version":"2.3.3","repository_url":"https://github.com/sibson/redbeat"},{"name":"cryptography","old_version":"42.0.4","new_version":"46.0.5","repository_url":"https://github.com/pyca/cryptography"},{"name":"dockerfile-parse","old_version":"2.0.0","new_version":"2.0.1","repository_url":"https://github.com/containerbuildsystem/dockerfile-parse"},{"name":"flask","old_version":"2.3.2","new_version":"2.3.3","repository_url":"https://github.com/pallets/flask"},{"name":"flask-admin","old_version":"1.6.1","new_version":"2.0.2","repository_url":"https://github.com/pallets-eco/flask-admin"},{"name":"flask-babel","old_version":"3.1.0","new_version":"4.0.0","repository_url":"https://github.com/python-babel/flask-babel"},{"name":"flask-debugtoolbar","old_version":"0.14.1","new_version":"0.16.0","repository_url":"https://github.com/pallets-eco/flask-debugtoolbar"},{"name":"flask-mail","old_version":"0.9.1","new_version":"0.10.0","repository_url":"https://github.com/pallets-eco/flask-mail"},{"name":"flask-migrate","old_version":"3.0.1","new_version":"4.1.0","repository_url":"https://github.com/miguelgrinberg/flask-migrate"},{"name":"flask-nav3","old_version":"0.7.0","new_version":"0.7.2","repository_url":"https://github.com/wtfo-guru/flask-nav3"},{"name":"flask-security-too","old_version":"5.3.3","new_version":"5.7.1","repository_url":"https://github.com/pallets-eco/flask-security"},{"name":"flask-sock","old_version":"0.6.0","new_version":"0.7.0","repository_url":"https://github.com/miguelgrinberg/flask-sock"},{"name":"flask-sqlalchemy","old_version":"2.5.1","new_version":"3.1.1","repository_url":"https://github.com/pallets-eco/flask-sqlalchemy"},{"name":"gunicorn","old_version":"23.0.0","new_version":"25.0.3","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"hupper","old_version":"1.10.3","new_version":"1.12.1","repository_url":"https://github.com/Pylons/hupper"},{"name":"hvac","old_version":"2.3.0","new_version":"2.4.0","repository_url":"https://github.com/hvac/hvac"},{"name":"kubernetes","old_version":"30.1.0","new_version":"35.0.0","repository_url":"https://github.com/kubernetes-client/python"},{"name":"psycopg2","old_version":"2.9.6","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"py-consul","old_version":"1.5.1","new_version":"1.7.1","repository_url":"https://github.com/criteo-forks/py-consul"},{"name":"pygithub","old_version":"1.59.1","new_version":"2.8.1","repository_url":"https://github.com/pygithub/pygithub"},{"name":"python-dxf","old_version":"10.0.0","new_version":"12.1.1","repository_url":"https://github.com/davedoesdev/dxf"},{"name":"qrcode","old_version":"7.4.2","new_version":"8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"},{"name":"redis","old_version":"3.5.3","new_version":"7.1.1","repository_url":"https://github.com/redis/redis-py"},{"name":"sentry-sdk","old_version":"2.6.0","new_version":"2.52.0"},{"name":"sqlalchemy","old_version":"1.4.48","new_version":"2.0.46","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"sqlalchemy-continuum","old_version":"1.3.14","new_version":"1.6.0","repository_url":"https://github.com/kvesteri/sqlalchemy-continuum"},{"name":"typing-extensions","old_version":"4.7.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"unidecode","old_version":"1.2.0","new_version":"1.4.0","repository_url":"https://github.com/kmike/text-unidecode"},{"name":"urllib3","old_version":"2.2.2","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"bandit","old_version":"1.7.9","new_version":"1.9.3","repository_url":"https://github.com/PyCQA/bandit"},{"name":"black","old_version":"24.4.2","new_version":"26.1.0","repository_url":"https://github.com/psf/black"},{"name":"mypy","old_version":"1.11.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pip-tools","old_version":"7.4.1","new_version":"7.5.3","repository_url":"https://github.com/jazzband/pip-tools"},{"name":"ruff","old_version":"0.5.1","new_version":"0.15.0","repository_url":"https://github.com/astral-sh/ruff"},{"name":"types-pyyaml","old_version":"6.0.12.20240311","new_version":"6.0.12.20250915","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-requests","old_version":"2.32.0.20240712","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"}],"path":"/requirements","ecosystem":"pip"},"body":"Bumps the all-dependencies group in /requirements with 38 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [bleach](https://github.com/mozilla/bleach) | `6.0.0` | `6.3.0` |\n| [celery](https://github.com/celery/celery) | `5.4.0` | `5.6.2` |\n| [celery-redbeat](https://github.com/sibson/redbeat) | `2.2.0` | `2.3.3` |\n| [cryptography](https://github.com/pyca/cryptography) | `42.0.4` | `46.0.5` |\n| [dockerfile-parse](https://github.com/containerbuildsystem/dockerfile-parse) | `2.0.0` | `2.0.1` |\n| [flask](https://github.com/pallets/flask) | `2.3.2` | `2.3.3` |\n| [flask-admin](https://github.com/pallets-eco/flask-admin) | `1.6.1` | `2.0.2` |\n| [flask-babel](https://github.com/python-babel/flask-babel) | `3.1.0` | `4.0.0` |\n| [flask-debugtoolbar](https://github.com/pallets-eco/flask-debugtoolbar) | `0.14.1` | `0.16.0` |\n| [flask-mail](https://github.com/pallets-eco/flask-mail) | `0.9.1` | `0.10.0` |\n| [flask-migrate](https://github.com/miguelgrinberg/flask-migrate) | `3.0.1` | `4.1.0` |\n| [flask-nav3](https://github.com/wtfo-guru/flask-nav3) | `0.7.0` | `0.7.2` |\n| [flask-security-too](https://github.com/pallets-eco/flask-security) | `5.3.3` | `5.7.1` |\n| [flask-sock](https://github.com/miguelgrinberg/flask-sock) | `0.6.0` | `0.7.0` |\n| [flask-sqlalchemy](https://github.com/pallets-eco/flask-sqlalchemy) | `2.5.1` | `3.1.1` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `25.0.3` |\n| [hupper](https://github.com/Pylons/hupper) | `1.10.3` | `1.12.1` |\n| [hvac](https://github.com/hvac/hvac) | `2.3.0` | `2.4.0` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `30.1.0` | `35.0.0` |\n| [psycopg2](https://github.com/psycopg/psycopg2) | `2.9.6` | `2.9.11` |\n| [py-consul](https://github.com/criteo-forks/py-consul) | `1.5.1` | `1.7.1` |\n| [pygithub](https://github.com/pygithub/pygithub) | `1.59.1` | `2.8.1` |\n| [python-dxf](https://github.com/davedoesdev/dxf) | `10.0.0` | `12.1.1` |\n| [qrcode](https://github.com/lincolnloop/python-qrcode) | `7.4.2` | `8.2` |\n| [redis](https://github.com/redis/redis-py) | `3.5.3` | `7.1.1` |\n| [sentry-sdk[flask]](https://github.com/getsentry/sentry-python) | `2.6.0` | `2.52.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `1.4.48` | `2.0.46` |\n| [sqlalchemy-continuum](https://github.com/kvesteri/sqlalchemy-continuum) | `1.3.14` | `1.6.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.7.1` | `4.15.0` |\n| [unidecode](https://github.com/kmike/text-unidecode) | `1.2.0` | `1.4.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.2` | `2.6.3` |\n| [bandit](https://github.com/PyCQA/bandit) | `1.7.9` | `1.9.3` |\n| [black](https://github.com/psf/black) | `24.4.2` | `26.1.0` |\n| [mypy](https://github.com/python/mypy) | `1.11.0` | `1.19.1` |\n| [pip-tools](https://github.com/jazzband/pip-tools) | `7.4.1` | `7.5.3` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.5.1` | `0.15.0` |\n| [types-pyyaml](https://github.com/typeshed-internal/stub_uploader) | `6.0.12.20240311` | `6.0.12.20250915` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.0.20240712` | `2.32.4.20260107` |\n\nUpdates `bleach` from 6.0.0 to 6.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mozilla/bleach/blob/main/CHANGES\"\u003ebleach's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.3.0 (October 27th, 2025)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix wbr handling. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.2.0 (October 29th, 2024)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.8. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/737\"\u003e#737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/736\"\u003e#736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove six depdenncy. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/618\"\u003e#618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate known-good versions for tinycss2. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix additional \u0026lt; followed by characters and EOF issues. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.1.0 (October 6th, 2023)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.7. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/709\"\u003e#709\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/710\"\u003e#710\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/mozilla/bleach/commit/5546d5dbce60d08ccb99d981778d74044d646d4e\"\u003e\u003ccode\u003e5546d5d\u003c/code\u003e\u003c/a\u003e chore: prep for 6.3.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/88df3ff23fb2a43e174b3fdfe9191ef516de868a\"\u003e\u003ccode\u003e88df3ff\u003c/code\u003e\u003c/a\u003e chore: fix readthedocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/d8b2fb45b2606515c58787c223d6605c6c70868f\"\u003e\u003ccode\u003ed8b2fb4\u003c/code\u003e\u003c/a\u003e fix: fix wbr handling (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/55e48cedb20bda23940ab34753a1fb378d5d30b9\"\u003e\u003ccode\u003e55e48ce\u003c/code\u003e\u003c/a\u003e chore: add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/a4d6cddac6e338c3d6f84c755a5fcb32e9e18fba\"\u003e\u003ccode\u003ea4d6cdd\u003c/code\u003e\u003c/a\u003e chore: drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/172d92faef543a83c6760c63c32749586cdd564b\"\u003e\u003ccode\u003e172d92f\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/df88612f2e9daf8f4ee23cf0e29b712d9d9147b6\"\u003e\u003ccode\u003edf88612\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.2 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/cbcf6b18d19aeb7777699f9385013d0a04052b68\"\u003e\u003ccode\u003ecbcf6b1\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.2.3 to 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/d9aa7ef592d57dda56e26ba31d06e1b279c58eca\"\u003e\u003ccode\u003ed9aa7ef\u003c/code\u003e\u003c/a\u003e Switch from dependabot reviewers to CODEOWNERS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/06f0f76cc68112bda3fa101d1730d5ba914d54a1\"\u003e\u003ccode\u003e06f0f76\u003c/code\u003e\u003c/a\u003e Update setuptools, wheel, and twine for devs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mozilla/bleach/compare/v6.0.0...v6.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.4.0 to 5.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string by \u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: Revoked tasks now immediately update backend status to REVOKED by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9869\"\u003ecelery/celery#9869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.2 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10049\"\u003ecelery/celery#10049\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/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.1...v5.6.2\"\u003ehttps://github.com/celery/celery/compare/v5.6.1...v5.6.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support by \u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown by \u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option by \u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10020\"\u003ecelery/celery#10020\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup by \u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereliable prefork detection by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10023\"\u003ecelery/celery#10023\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter coverage by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10029\"\u003ecelery/celery#10029\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example by \u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10032\"\u003ecelery/celery#10032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10033\"\u003ecelery/celery#10033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10037\"\u003ecelery/celery#10037\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/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.0...v5.6.1\"\u003ehttps://github.com/celery/celery/compare/v5.6.0...v5.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\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/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.2\u003c/h1\u003e\n\u003cp\u003e:release-date: 2026-01-04\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string ([#10045](https://github.com/celery/celery/issues/10045))\n- Bugfix: Revoked tasks now immediately update backend status to REVOKED ([#9869](https://github.com/celery/celery/issues/9869))\n- Prepare for release: v5.6.2 ([#10049](https://github.com/celery/celery/issues/10049))\n\u003cp\u003e.. _version-5.6.1:\u003c/p\u003e\n\u003ch1\u003e5.6.1\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-12-29\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10013\"\u003e#10013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9986\"\u003e#9986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10016\"\u003e#10016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10020\"\u003e#10020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10015\"\u003e#10015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereliable prefork detection (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10023\"\u003e#10023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebetter coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10030\"\u003e#10030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10032\"\u003e#10032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _version-5.6.0:\u003c/p\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/6a43c846f183ef0cbade24f4b9a8f7a6ea113b44\"\u003e\u003ccode\u003e6a43c84\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10049\"\u003e#10049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/333a82f746734151c5cbe848916085455b0a3748\"\u003e\u003ccode\u003e333a82f\u003c/code\u003e\u003c/a\u003e Bugfix: Revoked tasks now immediately update backend status to REVOKED (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9869\"\u003e#9869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/9d6ab110d947270c4edf0b42454266d2954e653d\"\u003e\u003ccode\u003e9d6ab11\u003c/code\u003e\u003c/a\u003e Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeEr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21dbc73f81d2fae058de49e665afaa1cd92da5c0\"\u003e\u003ccode\u003e21dbc73\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/ba20bed7723c684d12ddd62d6a7c0c0d901b3351\"\u003e\u003ccode\u003eba20bed\u003c/code\u003e\u003c/a\u003e Only use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21675299bc2d10c648448ec5221136e07c1eec1a\"\u003e\u003ccode\u003e2167529\u003c/code\u003e\u003c/a\u003e Stop importing pytest_subtests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0527296acb1f1790788301d4395ba6d5ce2a9704\"\u003e\u003ccode\u003e0527296\u003c/code\u003e\u003c/a\u003e Bump google-cloud-firestore from 2.21.0 to 2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/5f8659bdba4561796d66e938a1e2c71d4489562f\"\u003e\u003ccode\u003e5f8659b\u003c/code\u003e\u003c/a\u003e Clarify 'result_extended' setting usage in tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f19db7008682c782d85e69b5ce736970491752ea\"\u003e\u003ccode\u003ef19db70\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.19.0 to 1.19.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10028\"\u003e#10028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/6da72bde60553a1c350eef1e17d834d004ed099d\"\u003e\u003ccode\u003e6da72bd\u003c/code\u003e\u003c/a\u003e better coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.4.0...v5.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery-redbeat` from 2.2.0 to 2.3.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sibson/redbeat/blob/main/CHANGES.txt\"\u003ecelery-redbeat's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.3dev (unreleased)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8 and add CI coverage through Python 3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.3 (2025-07-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd Python 3.12 support, thanks \u003ca href=\"https://github.com/AnkiHubSoftware\"\u003e\u003ccode\u003e@​AnkiHubSoftware\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebugfix, update RedBeatSchedulerEntry definitions for improved type safety and correctness, thanks \u003ca href=\"https://github.com/sotosapp\"\u003e\u003ccode\u003e@​sotosapp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebugfix, Redbeat no longer updating tasks definitions on Redis \u003ca href=\"https://redirect.github.com/sibson/redbeat/issues/289\"\u003e#289\u003c/a\u003e, thanks \u003ca href=\"https://github.com/semoac\"\u003e\u003ccode\u003e@​semoac\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci, fix testpypi publish by checking out source before version update\u003c/li\u003e\n\u003cli\u003etest, pin fakeredis\u0026lt;2.27.0 for Python 3.8 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.0 (2025-02-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebugfix, allow disabling of lock with redbeat_lock_key = None, thanks \u003ca href=\"https://github.com/jscaria\"\u003e\u003ccode\u003e@​jscaria\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/molog\"\u003e\u003ccode\u003e@​molog\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/bertosantamaria\"\u003e\u003ccode\u003e@​bertosantamaria\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebugfix, track changes to primary in Sentinel, thanks \u003ca href=\"https://github.com/Niccolum\"\u003e\u003ccode\u003e@​Niccolum\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebugfix, static entries honour last_run_at, thanks \u003ca href=\"https://github.com/kchamz\"\u003e\u003ccode\u003e@​kchamz\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edoc updates, thanks \u003ca href=\"https://github.com/miketheman\"\u003e\u003ccode\u003e@​miketheman\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cikay\"\u003e\u003ccode\u003e@​cikay\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/sibson/redbeat/commit/2b85c88951fdd2964610819c1a59e4914e4c205b\"\u003e\u003ccode\u003e2b85c88\u003c/code\u003e\u003c/a\u003e prepare for release of 2.3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/3d107dd7cf5c310bcd05fd8ba76da622a0f84b13\"\u003e\u003ccode\u003e3d107dd\u003c/code\u003e\u003c/a\u003e update for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/30e812dd1a178dca02390c4f4a3e8fe79c43ca39\"\u003e\u003ccode\u003e30e812d\u003c/code\u003e\u003c/a\u003e makefile: add version target using grep for warning-free version check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/1242fde248ed7aeebe7cd148f873977f0face2e8\"\u003e\u003ccode\u003e1242fde\u003c/code\u003e\u003c/a\u003e update changelog for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/f35e31cfb0f9c0cf6662821cc4d4d7ec1d45d144\"\u003e\u003ccode\u003ef35e31c\u003c/code\u003e\u003c/a\u003e ci: fetch full git history for pbr versioning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/acf82610cb0fab5caa3418c42efcfb4715686d2e\"\u003e\u003ccode\u003eacf8261\u003c/code\u003e\u003c/a\u003e build: switch to pbr for dynamic versioning and simplify workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/a317b5ff3a4f7b6508c8d91ae55f3ac736d646be\"\u003e\u003ccode\u003ea317b5f\u003c/code\u003e\u003c/a\u003e bump version for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/5e185f63ba10458545ec4c8a91747006da65de63\"\u003e\u003ccode\u003e5e185f6\u003c/code\u003e\u003c/a\u003e ci: use .dev0.\u0026lt;githash\u0026gt; for testpypi version (PEP 440/PyPI compliant)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/f384d757f8f58ca2cd26d36c13dfb8971461d3de\"\u003e\u003ccode\u003ef384d75\u003c/code\u003e\u003c/a\u003e ci: ensure PEP 440 compliant version for testpypi with git hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/bfc520b778a0234815917e3aba472a27ffabc6f6\"\u003e\u003ccode\u003ebfc520b\u003c/code\u003e\u003c/a\u003e test: pin fakeredis\u0026lt;2.27.0 for Python 3.8 support (see comment)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sibson/redbeat/compare/v2.2.0...v2.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 42.0.4 to 46.0.5\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.5 - 2026-02-10\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* An attacker could create a malicious public key that reveals portions of your\n  private key when using certain uncommon elliptic curves (binary curves).\n  This version now includes additional security checks to prevent this attack.\n  This issue only affects binary elliptic curves, which are rarely used in\n  real-world applications. Credit to **XlabAI Team of Tencent Xuanwu Lab and\n  Atuin Automated Vulnerability Discovery Engine** for reporting the issue.\n  **CVE-2026-26007**\n* Support for ``SECT*`` binary elliptic curves is deprecated and will be\n  removed in the next release.\n\u003cp\u003e.. v46-0-4:\u003c/p\u003e\n\u003cp\u003e46.0.4 - 2026-01-27\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eDropped support for win_arm64 wheels\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.5.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-3:\u003c/p\u003e\n\u003cp\u003e46.0.3 - 2025-10-15\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Fixed compilation when using LibreSSL 4.2.0.\n\u003cp\u003e.. _v46-0-2:\u003c/p\u003e\n\u003cp\u003e46.0.2 - 2025-09-30\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.4.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-1:\u003c/p\u003e\n\u003cp\u003e46.0.1 - 2025-09-16\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Fixed an issue where users installing via ``pip`` on Python 3.14 development\n  versions would not properly install a dependency.\n* Fixed an issue building the free-threaded macOS 3.14 wheels.\n\u003cp\u003e.. _v46-0-0:\u003c/p\u003e\n\u003cp\u003e46.0.0 - 2025-09-16\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBACKWARDS INCOMPATIBLE:\u003c/strong\u003e Support for Python 3.7 has been removed.\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/pyca/cryptography/commit/06e120e682cb200e3f7050c02f0bcdac90c4c6ad\"\u003e\u003ccode\u003e06e120e\u003c/code\u003e\u003c/a\u003e bump version for 46.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14289\"\u003e#14289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/0eebb9dbb6343d9bc1d91e5a2482ed4e054a6d8c\"\u003e\u003ccode\u003e0eebb9d\u003c/code\u003e\u003c/a\u003e EC check key on cofactor \u0026gt; 1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14287\"\u003e#14287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/bedf6e186b814f69a3f54f51252c23a71d44ed2e\"\u003e\u003ccode\u003ebedf6e1\u003c/code\u003e\u003c/a\u003e fix openssl version on 46 branch (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14220\"\u003e#14220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/e6f44fc8e6391f05d719fb9d369692325b87a471\"\u003e\u003ccode\u003ee6f44fc\u003c/code\u003e\u003c/a\u003e bump for 46.0.4 and drop win arm64 due to CI issues (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14217\"\u003e#14217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/c0af4dd7b75921bbe9f1d41a03dbd4b64a9e3403\"\u003e\u003ccode\u003ec0af4dd\u003c/code\u003e\u003c/a\u003e release 46.0.3 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13681\"\u003e#13681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/99efe5ad150a56efadafacaffd0e3ee319373904\"\u003e\u003ccode\u003e99efe5a\u003c/code\u003e\u003c/a\u003e bump version for 46.0.2 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13531\"\u003e#13531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/e735cfc27502320101c130335c556394a125ba52\"\u003e\u003ccode\u003ee735cfc\u003c/code\u003e\u003c/a\u003e release 46.0.1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13450\"\u003e#13450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/4e457ffba43a6d87efc63c33041e2081438dd8a4\"\u003e\u003ccode\u003e4e457ff\u003c/code\u003e\u003c/a\u003e Explicitly specify python in mac uv build invocation (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13447\"\u003e#13447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/2726efdb6d67f1c90cf9c6062d9fe051965586f8\"\u003e\u003ccode\u003e2726efd\u003c/code\u003e\u003c/a\u003e Depend on CFFI 2.0.0 or newer on Python \u0026gt; 3.8 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13448\"\u003e#13448\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/62230623d183706632c0eb7822c96ac95e3710a8\"\u003e\u003ccode\u003e6223062\u003c/code\u003e\u003c/a\u003e release 46.0.0 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13446\"\u003e#13446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/cryptography/compare/42.0.4...46.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dockerfile-parse` from 2.0.0 to 2.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/containerbuildsystem/dockerfile-parse/releases\"\u003edockerfile-parse's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRemoval of python-six module\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/containerbuildsystem/dockerfile-parse/commit/3a4360f78e60ac72b6ffc627135fca27c180c4ad\"\u003e\u003ccode\u003e3a4360f\u003c/code\u003e\u003c/a\u003e Automatic commit of package [python-dockerfile-parse] release [2.0.1-1].\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/containerbuildsystem/dockerfile-parse/commit/7d0e60413dfd6cb7f6dbe2ecb841a8199f6a43a7\"\u003e\u003ccode\u003e7d0e604\u003c/code\u003e\u003c/a\u003e fix(pylint): address broad-exception-raised\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/containerbuildsystem/dockerfile-parse/commit/9cd9cde8a1502e04c9078242964b4bb22eb00c77\"\u003e\u003ccode\u003e9cd9cde\u003c/code\u003e\u003c/a\u003e fix(spec): remove six module\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/containerbuildsystem/dockerfile-parse/compare/2.0.0...2.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask` from 2.3.2 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/pallets/flask/releases\"\u003eflask's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.3\u003c/h2\u003e\n\u003cp\u003eThis is a fix release for the 2.3.x feature branch.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChanges: \u003ca href=\"https://flask.palletsprojects.com/en/2.3.x/changes/#version-2-3-3\"\u003ehttps://flask.palletsprojects.com/en/2.3.x/changes/#version-2-3-3\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/31?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/31?closed=1\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/pallets/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.3.3\u003c/h2\u003e\n\u003cp\u003eReleased 2023-08-21\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.12 compatibility.\u003c/li\u003e\n\u003cli\u003eRequire Werkzeug \u0026gt;= 2.3.7.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eRefactor how an app's root and instance paths are determined. :issue:\u003ccode\u003e5160\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/flask/commit/3205b53c7cf69d17fee49cac6b84978175b7dd73\"\u003e\u003ccode\u003e3205b53\u003c/code\u003e\u003c/a\u003e release version 2.3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/9f9550247a2798b9dcc28081c15e266442f4e28a\"\u003e\u003ccode\u003e9f95502\u003c/code\u003e\u003c/a\u003e bump werkzeug 2.3.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/02736640095ed6d5a4a409a9658eaca373fd1d48\"\u003e\u003ccode\u003e0273664\u003c/code\u003e\u003c/a\u003e Update dispatch by path example (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5217\"\u003e#5217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/a887e179b8af6a9c582a7918f9f8499ab58032cc\"\u003e\u003ccode\u003ea887e17\u003c/code\u003e\u003c/a\u003e clean up\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/aa6d4c3e92bd11a7d449f49f524e54bbb88b89c0\"\u003e\u003ccode\u003eaa6d4c3\u003c/code\u003e\u003c/a\u003e update dispatch-by-path example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/826514b8eb18f6c314cf566630253d35c89e42c3\"\u003e\u003ccode\u003e826514b\u003c/code\u003e\u003c/a\u003e fix flake8 bugbear findings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/6d266f63633f5f127165d4ef836db14a59bbc106\"\u003e\u003ccode\u003e6d266f6\u003c/code\u003e\u003c/a\u003e Pass maxsplit via kwarg to re.split (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5215\"\u003e#5215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/17e146ad949b3d80438faf95e81b53c543cb50f5\"\u003e\u003ccode\u003e17e146a\u003c/code\u003e\u003c/a\u003e Pass maxsplit via kwarg to re.split\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/8a72b741616556b4f739ea79ab502c2d2038844a\"\u003e\u003ccode\u003e8a72b74\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5211\"\u003e#5211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/7255be9626ab56d81bc0ab86db939fcc1da9bca1\"\u003e\u003ccode\u003e7255be9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/flask/compare/2.3.2...2.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-admin` from 1.6.1 to 2.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/flask-admin/releases\"\u003eflask-admin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds support for Python 3.14: \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/pull/2685\"\u003epallets-eco/flask-admin#2685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdds a MenuDivider item for bootstrap themes: \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/pull/2696\"\u003epallets-eco/flask-admin#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eField errors are now shown in red text for bootstrap themes: \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/pull/2699\"\u003epallets-eco/flask-admin#2699\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix documentation\u003c/li\u003e\n\u003cli\u003eUpdate arabic translations\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.0.0\u003c/h2\u003e\n\u003cp\u003eBreaking changes from v1.6.1:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for Python \u0026lt;3.10\u003c/li\u003e\n\u003cli\u003eUse of the \u003ccode\u003eboto\u003c/code\u003e library has been replaced by \u003ccode\u003eboto3\u003c/code\u003e. S3FileAdmin and S3Storage now accept an \u003ccode\u003es3_client\u003c/code\u003e parameter taking a \u003ccode\u003eboto3.client('s3')\u003c/code\u003e instance rather than \u003ccode\u003eaws_access_key_id\u003c/code\u003e, \u003ccode\u003eaws_secret_access_key\u003c/code\u003e, and \u003ccode\u003eregion\u003c/code\u003e parameters.\u003c/li\u003e\n\u003cli\u003eAzure Blob Storage SDK has been upgraded from the legacy version (v2) to the latest version (v12). AzureFileAdmin now accept \u003ccode\u003eblob_service_client\u003c/code\u003e rather than \u003ccode\u003econnection_string\u003c/code\u003e to give more flexibility with connection types.\u003c/li\u003e\n\u003cli\u003eFlask-BabelEx is no longer supported; the package is no longer maintained and Flask-Babel is recommended/active instead.\u003c/li\u003e\n\u003cli\u003eMongoengine support in Flask-Admin no longer uses Flask-Mongoengine, as that library is no longer actively maintained.\u003c/li\u003e\n\u003cli\u003eBootstrap2 and Bootstrap3 themes are no longer available.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAdmin()\u003c/code\u003e now takes a \u003ccode\u003etheme\u003c/code\u003e parameter that encapsulates all of the configuration options for theming the admin instance. This replaces the \u003ccode\u003etemplate_mode\u003c/code\u003e parameter.\u003c/li\u003e\n\u003cli\u003eAll remaining Flask-Admin config has been namespaced under \u003ccode\u003eFLASK_ADMIN_\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eConfig variable name\u003c/th\u003e\n\u003cth\u003eWhat's changed\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eFLASK_ADMIN_SWATCH\u003c/td\u003e\n\u003ctd\u003eRemoved; use \u003c!-- raw HTML omitted --\u003eTheme(swatch=...)\u003c!-- raw HTML omitted --\u003e instead\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eFLASK_ADMIN_FLUID_LAYOUT\u003c/td\u003e\n\u003ctd\u003eRemoved; use \u003c!-- raw HTML omitted --\u003eTheme(fluid=...)\u003c!-- raw HTML omitted --\u003e instead\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eMAPBOX_MAP_ID\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_MAPBOX_MAP_ID\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eMAPBOX_SEARCH\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_MAPBOX_SEARCH\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eMAPBOX_ACCESS_TOKEN\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_MAPBOX_ACCESS_TOKEN\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eGOOGLE_MAPS_API_KEY\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_GOOGLE_MAPS_API_KEY\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eDEFAULT_CENTER_LAT\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_DEFAULT_CENTER_LAT\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eDEFAULT_CENTER_LONG\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_DEFAULT_CENTER_LONG\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eADMIN_RAISE_ON_INTEGRITY_ERROR\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_RAISE_ON_INTEGRITY_ERROR\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eADMIN_RAISE_ON_VIEW_EXCEPTION\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_RAISE_ON_VIEW_EXCEPTION\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eNew functionality:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python \u0026lt;=3.13\u003c/li\u003e\n\u003cli\u003eThe default query for pymongo can be overridden\u003c/li\u003e\n\u003cli\u003eFlask async routes are supported\u003c/li\u003e\n\u003cli\u003eFlask-Admin now supports the \u003ccode\u003ehost_matching\u003c/code\u003e mode of Flask apps. See documentation for how to configure this where needed.\u003c/li\u003e\n\u003cli\u003eFlask-Admin is now compatible with SQLAlchemy v2+, Flask v3+, WTForms v3+, and Pillow v10+.\u003c/li\u003e\n\u003cli\u003eFlask-Admin now declares its dependencies and supported dependency versions more cleanly, including using pip extras. If you use Flask-Admin with SQLAlchemy, for example, you should use \u003ccode\u003epip install flask-admin[sqlalchemy]\u003c/code\u003e or list \u003ccode\u003eflask-admin[sqlalchemy]\u003c/code\u003e in your requirements.txt or pyproject.toml files.\u003c/li\u003e\n\u003cli\u003eApps using content security policies to restrict the assets that can be loaded can now whitelist Flask-Admin's assets by passing a \u003ccode\u003ecsp_nonce_generator\u003c/code\u003e function to the Admin instance. See examples or documentation for how to configure this where needed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epage_size_options\u003c/code\u003e can now be configured on Admin models, to restrict the page sizes that users can select. These are now enforced properly and cannot be bypassed by URL hacking.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBootstrap menu icons should show up properly and not duplicated\u003c/li\u003e\n\u003cli\u003eRedis CLI commands are now case insensitive\u003c/li\u003e\n\u003cli\u003eSQLAlchemy boolean filters now convert \u0026quot;1\u0026quot; and \u0026quot;0\u0026quot; to Python booleans, which fixes a type coercion issue with psycopg(3).\u003c/li\u003e\n\u003cli\u003eJinja templates can now be loaded in StrictUndefined mode.\u003c/li\u003e\n\u003cli\u003eRemove an implicit dependency on \u003ccode\u003epackaging\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed an error caused by the fallback implementation of \u003ccode\u003egettext()\u003c/code\u003e (when used in templates)\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-eco/flask-admin/blob/master/doc/changelog.rst\"\u003eflask-admin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds support for Python 3.14: \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/pull/2685\"\u003epallets-eco/flask-admin#2685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdds a MenuDivider item for bootstrap themes: \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/pull/2696\"\u003epallets-eco/flask-admin#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eField errors are now shown in red text for bootstrap themes: \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/pull/2699\"\u003epallets-eco/flask-admin#2699\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix documentation\u003c/li\u003e\n\u003cli\u003eUpdate arabic translations\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.0\u003c/h2\u003e\n\u003cp\u003eBreaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for Python \u0026lt;3.10\u003c/li\u003e\n\u003cli\u003eUse of the \u003ccode\u003eboto\u003c/code\u003e library has been replaced by \u003ccode\u003eboto3\u003c/code\u003e. S3FileAdmin and S3Storage now accept an \u003ccode\u003es3_client\u003c/code\u003e parameter taking a \u003ccode\u003eboto3.client('s3')\u003c/code\u003e instance rather than \u003ccode\u003eaws_access_key_id\u003c/code\u003e, \u003ccode\u003eaws_secret_access_key\u003c/code\u003e, and \u003ccode\u003eregion\u003c/code\u003e parameters.\u003c/li\u003e\n\u003cli\u003eAzure Blob Storage SDK has been upgraded from the legacy version (v2) to the latest version (v12). AzureFileAdmin now accept \u003ccode\u003eblob_service_client\u003c/code\u003e rather than \u003ccode\u003econnection_string\u003c/code\u003e to give more flexibility with connection types.\u003c/li\u003e\n\u003cli\u003eFlask-BabelEx is no longer supported; the package is no longer maintained and Flask-Babel is recommended/active instead.\u003c/li\u003e\n\u003cli\u003eMongoengine support in Flask-Admin no longer uses Flask-Mongoengine, as that library is no longer actively maintained.\u003c/li\u003e\n\u003cli\u003eBootstrap2 and Bootstrap3 themes are no longer available.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAdmin()\u003c/code\u003e now takes a \u003ccode\u003etheme\u003c/code\u003e parameter that encapsulates all of the configuration options for theming the admin instance. This replaces the \u003ccode\u003etemplate_mode\u003c/code\u003e parameter.\u003c/li\u003e\n\u003cli\u003eAll remaining Flask-Admin config has been namespaced under \u003ccode\u003eFLASK_ADMIN_\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. list-table:: Configuration Changes\n:widths: 50 50\n:header-rows: 1\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eConfig variable name\u003c/li\u003e\n\u003cli\u003eWhat's changed\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eFLASK_ADMIN_SWATCH\u003c/li\u003e\n\u003cli\u003eRemoved; use \u003ccode\u003eTheme(swatch=...)\u003c/code\u003e instead\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eFLASK_ADMIN_FLUID_LAYOUT\u003c/li\u003e\n\u003cli\u003eRemoved; use \u003ccode\u003eTheme(fluid=...)\u003c/code\u003e instead\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eMAPBOX_MAP_ID\u003c/li\u003e\n\u003cli\u003eRenamed to FLASK_ADMIN_MAPBOX_MAP_ID\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eMAPBOX_SEARCH\u003c/li\u003e\n\u003cli\u003eRenamed to FLASK_ADMIN_MAPBOX_SEARCH\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eMAPBOX_ACCESS_TOKEN\u003c/li\u003e\n\u003cli\u003eRenamed to FLASK_ADMIN_MAPBOX_ACCESS_TOKEN\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eGOOGLE_MAPS_API_KEY\u003c/li\u003e\n\u003cli\u003eRenamed to FLASK_ADMIN_GOOGLE_MAPS_API_KEY\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eDEFAULT_CENTER_LAT\u003c/li\u003e\n\u003cli\u003eRenamed to FLASK_ADMIN_DEFAULT_CENTER_LAT\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eDEFAULT_CENTER_LONG\u003c/li\u003e\n\u003cli\u003eRenamed to FLASK_ADMIN_DEFAULT_CENTER_LONG\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eADMIN_RAISE_ON_INTEGRITY_ERROR\u003c/li\u003e\n\u003c/ul\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/pallets-eco/flask-admin/commit/e26bee40d0aaddf7aaf2bc9d1f8949cfed3a709c\"\u003e\u003ccode\u003ee26bee4\u003c/code\u003e\u003c/a\u003e v2.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/6b0a8a03f0ebd3bcf28bfb59390c380c014b031d\"\u003e\u003ccode\u003e6b0a8a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/issues/2696\"\u003e#2696\u003c/a\u003e from samialfattani/feature/menu-divider\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/67c5702d102e89c9ab96f5ed87d446595b9cc3a3\"\u003e\u003ccode\u003e67c5702\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/issues/2699\"\u003e#2699\u003c/a\u003e from samialfattani/err_desc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/9336e2d56c372ec697360f0d15fa1ddc93e7941f\"\u003e\u003ccode\u003e9336e2d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/issues/2685\"\u003e#2685\u003c/a\u003e from pallets-eco/py3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/5368f70b925e85f724e5c91b2f8c894fab2855fe\"\u003e\u003ccode\u003e5368f70\u003c/code\u003e\u003c/a\u003e error discription in red color\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/731281b61d21f9fcc58243a71e5ee4d9574dbe3e\"\u003e\u003ccode\u003e731281b\u003c/code\u003e\u003c/a\u003e filter resource warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/0eb8920a5fcde4eae7d69fb463d6ae1f00dea64f\"\u003e\u003ccode\u003e0eb8920\u003c/code\u003e\u003c/a\u003e add menu divider\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/16d36f25e8d06d099db29b7a29d3b4eeb85b8ca5\"\u003e\u003ccode\u003e16d36f2\u003c/code\u003e\u003c/a\u003e Release v2.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/4303e46fa9b782c7136803e77f044c4abd39fa17\"\u003e\u003ccode\u003e4303e46\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/issues/2692\"\u003e#2692\u003c/a\u003e from samialfattani/fix_arabic\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/d923bbc5b163e92beaa2450c9c5a5532da866489\"\u003e\u003ccode\u003ed923bbc\u003c/code\u003e\u003c/a\u003e fix typos\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/flask-admin/compare/v1.6.1...v2.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-babel` from 3.1.0 to 4.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-babel/flask-babel/releases\"\u003eflask-babel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for end-of-life Python 3.7. Support PyPy 3.9\u003c/li\u003e\n\u003cli\u003eReplace deprecated locked_cached_property decorator with cached_property (\u003ca href=\"https://redirect.github.com/python-babel/flask-babel/issues/230\"\u003e#230\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-babel/flask-babel/commit/a754eade39d9850693dd2b645ae8a2545df7fdf7\"\u003e\u003ccode\u003ea754ead\u003c/code\u003e\u003c/a\u003e Bump version: 3.1.1 → 4.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/flask-babel/commit/d42f50c1f80279931279c076c40e2bacf74b4c15\"\u003e\u003ccode\u003ed42f50c\u003c/code\u003e\u003c/a\u003e Dropping Python 3.7 support, adding PyPy 3.9.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/flask-babel/commit/db5c2a152330d3095aab868752342dad18653852\"\u003e\u003ccode\u003edb5c2a1\u003c/code\u003e\u003c/a\u003e Bump version: 3.1.0 → 3.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/flask-babel/commit/6ca29cdc52587488c46f131dbb3b3cd69f4aa78c\"\u003e\u003ccode\u003e6ca29cd\u003c/code\u003e\u003c/a\u003e Merge branch 'jkittner-flask-2-3-deprecation'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/flask-babel/commit/346a45a0e1fbf6fae735c70588754724a0101857\"\u003e\u003ccode\u003e346a45a\u003c/code\u003e\u003c/a\u003e Merge branch 'flask-2-3-deprecation' of github.com:jkittner/flask-babel into ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/flask-babel/commit/dad9165d5cb4494e4473259bf37fc34a21974cad\"\u003e\u003ccode\u003edad9165\u003c/code\u003e\u003c/a\u003e Explicit app factory test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/flask-babel/commit/38f15cd15bdb742cadb81bcb8c8bfb81e0b5a1c5\"\u003e\u003ccode\u003e38f15cd\u003c/code\u003e\u003c/a\u003e Release triggered on public, not creation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/flask-babel/commit/414a5a3dee8639b28ca6edd37e5f91adbc622e37\"\u003e\u003ccode\u003e414a5a3\u003c/code\u003e\u003c/a\u003e replace deprecated locked_cached_property decorator with cached_property\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python-babel/flask-babel/compare/v3.1.0...v4.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-debugtoolbar` from 0.14.1 to 0.16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/releases\"\u003eflask-debugtoolbar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.16.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.7 support in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/255\"\u003epallets-eco/flask-debugtoolbar#255\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequire Flask \u0026gt;= 2.3.0 in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/256\"\u003epallets-eco/flask-debugtoolbar#256\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop unnecessary Blinker dependency in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/248\"\u003epallets-eco/flask-debugtoolbar#248\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd static type annotations in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/259\"\u003epallets-eco/flask-debugtoolbar#259\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e__version__\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/260\"\u003epallets-eco/flask-debugtoolbar#260\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eFlask.host_matching\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/274\"\u003epallets-eco/flask-debugtoolbar#274\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/compare/0.15.1...0.16.0\"\u003ehttps://github.com/pallets-eco/flask-debugtoolbar/compare/0.15.1...0.16.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix prob w/using w/o SQLAlchemy by \u003ca href=\"https://github.com/joelburton\"\u003e\u003ccode\u003e@​joelburton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/253\"\u003epallets-eco/flask-debugtoolbar#253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump to \u003ccode\u003e0.15.1\u003c/code\u003e by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/254\"\u003epallets-eco/flask-debugtoolbar#254\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/joelburton\"\u003e\u003ccode\u003e@​joelburton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/253\"\u003epallets-eco/flask-debugtoolbar#253\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/compare/0.15.0...0.15.1\"\u003ehttps://github.com/pallets-eco/flask-debugtoolbar/compare/0.15.0...0.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd minimal test without extra deps by \u003ca href=\"https://github.com/greyli\"\u003e\u003ccode\u003e@​greyli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/230\"\u003epallets-eco/flask-debugtoolbar#230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequire Flask \u0026gt;= 2.2.0 by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/224\"\u003epallets-eco/flask-debugtoolbar#224\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd option to dump profiler stats by \u003ca href=\"https://github.com/Dosenpfand\"\u003e\u003ccode\u003e@​Dosenpfand\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/204\"\u003epallets-eco/flask-debugtoolbar#204\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003einit_app()\u003c/code\u003e method to \u003ccode\u003eDebugPanel\u003c/code\u003e base class by \u003ca href=\"https://github.com/malthejorgensen\"\u003e\u003ccode\u003e@​malthejorgensen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/95\"\u003epallets-eco/flask-debugtoolbar#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport applications using flask.copy_current_request_context by \u003ca href=\"https://github.com/glic3rinu\"\u003e\u003ccode\u003e@​glic3rinu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/231\"\u003epallets-eco/flask-debugtoolbar#231\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix SQLAlchemy recording warning for versions \u0026gt;= 3 by \u003ca href=\"https://github.com/Jonty\"\u003e\u003ccode\u003e@​Jonty\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/233\"\u003epallets-eco/flask-debugtoolbar#233\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing \u003ccode\u003edistutils\u003c/code\u003e error on Python 3.12 by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/238\"\u003epallets-eco/flask-debugtoolbar#238\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove deprecated Flask version attribute by \u003ca href=\"https://github.com/greyli\"\u003e\u003ccode\u003e@​greyli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/243\"\u003epallets-eco/flask-debugtoolbar#243\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix trailing whitespace by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/237\"\u003epallets-eco/flask-debugtoolbar#237\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003ejquery.tablesorter.js\u003c/code\u003e plugin by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/235\"\u003epallets-eco/flask-debugtoolbar#235\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003ejquery\u003c/code\u003e to \u003ccode\u003e1.12.4\u003c/code\u003e by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/236\"\u003epallets-eco/flask-debugtoolbar#236\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003ejquery\u003c/code\u003e to \u003ccode\u003e3.7.1\u003c/code\u003e and \u003ccode\u003ejquery-migrate\u003c/code\u003e to \u003ccode\u003e3.4.1\u003c/code\u003e by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/241\"\u003epallets-eco/flask-debugtoolbar#241\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some \u003ccode\u003ejquery\u003c/code\u003e deprecation warnings by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/242\"\u003epallets-eco/flask-debugtoolbar#242\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace deprecated \u003ccode\u003epkg_resources\u003c/code\u003e with stdlib by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/239\"\u003epallets-eco/flask-debugtoolbar#239\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent LookupError when accessing debug_toolbars_var by \u003ca href=\"https://github.com/glic3rinu\"\u003e\u003ccode\u003e@​glic3rinu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/245\"\u003epallets-eco/flask-debugtoolbar#245\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInstall custom Sphinx theme via \u003ccode\u003eextras_require\u003c/code\u003e by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/250\"\u003epallets-eco/flask-debugtoolbar#250\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e.readthedocs.yaml\u003c/code\u003e file by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/246\"\u003epallets-eco/flask-debugtoolbar#246\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump to \u003ccode\u003e0.15.0\u003c/code\u003e by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/251\"\u003epallets-eco/flask-debugtoolbar#251\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/malthejorgensen\"\u003e\u003ccode\u003e@​malthejorgensen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/95\"\u003epallets-eco/flask-debugtoolbar#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/glic3rinu\"\u003e\u003ccode\u003e@​glic3rinu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/231\"\u003epallets-eco/flask-debugtoolbar#231\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Jonty\"\u003e\u003ccode\u003e@​Jonty\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/233\"\u003epallets-eco/flask-debugtoolbar#233\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/compare/0.14.1...0.15.0\"\u003ehttps://github.com/pallets-eco/flask-debugtoolbar/compare/0.14.1...0.15.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/pallets-eco/flask-debugtoolbar/commit/98c611ade925e1a615373edcd6313222ea57d221\"\u003e\u003ccode\u003e98c611a\u003c/code\u003e\u003c/a\u003e Release version 0.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/95b02b592036e4d74c1d837d0ef3bba06063aa38\"\u003e\u003ccode\u003e95b02b5\u003c/code\u003e\u003c/a\u003e Bump the python-requirements group across 1 directory with 4 updates (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/bd642464f28e053c52a09882665e5bd8af5132da\"\u003e\u003ccode\u003ebd64246\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/5671a92e1737699dcce8d792ae0113c150c52a7d\"\u003e\u003ccode\u003e5671a92\u003c/code\u003e\u003c/a\u003e Bump the python-requirements group across 1 directory with 4 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/ad6323994f2ab3226c6056755f535cb1aea62e42\"\u003e\u003ccode\u003ead63239\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/23612561077884f355fc34651955757d29289dc6\"\u003e\u003ccode\u003e2361256\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/e7b8136dea5a746195ebd4e9982ec2be8fc9c617\"\u003e\u003ccode\u003ee7b8136\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/ccf5ae22c6ebcd284fa4826bc21f570a624017c3\"\u003e\u003ccode\u003eccf5ae2\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into dependabot/github_actions/github-actions-5070efb06b\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/4e98b183f3060d38028a0e2c47649553b23dc063\"\u003e\u003ccode\u003e4e98b18\u003c/code\u003e\u003c/a\u003e Bump the python-requirements group in /requirements with 2 updates (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/5b4f4a0fcd29ed152f8041a386d264a1cd04cc30\"\u003e\u003ccode\u003e5b4f4a0\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/compare/0.14.1...0.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-mail` from 0.9.1 to 0.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/flask-mail/releases\"\u003eflask-mail's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.10.0\u003c/h2\u003e\n\u003cp\u003eFlask-Mail is now part of the Pallets Community Ecosystem. Pallets is the open source organization that maintains Flask; Pallets-Eco enables community maintenance of related projects. If you are interested in helping maintain this project, please reach out on \u003ca href=\"https://discord.gg/pallets\"\u003ethe Pallets Discord server\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release mainly refreshes the project after its extended hiatus. It now uses the standard Pallets project layout, tools, and configurations. Documentation is now hosted at \u003ca href=\"https://flask-mail.readthedocs.io\"\u003ehttps://flask-mail.readthedocs.io\u003c/a\u003e. The library now exports static type annotations.\u003c/p\u003e\n\u003cp\u003eChanges: \u003ca href=\"https://flask-mail.readthedocs.io/en/latest/changes/#version-0-10-0\"\u003ehttps://flask-mail.readthedocs.io/en/latest/changes/#version-0-10-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets-eco/flask-mail/milestone/1?closed=1\"\u003ehttps://github.com/pallets-eco/flask-mail/milestone/1?closed=1\u003c/a\u003e\nPyPI: \u003ca href=\"https://pypi.org/project/Flask-Mail/0.10.0/\"\u003ehttps://pypi.org/project/Flask-Mail/0.10.0/\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python \u0026lt; 3.8.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003epyproject.toml\u003c/code\u003e for packaging metadata.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eApply code formatting and linting tools.\u003c/li\u003e\n\u003cli\u003eAdd static type annotations.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection or \u003ccode\u003eimportlib.metadata.version(\u0026quot;flask-mail\u0026quot;)\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eIndicate that the deprecated \u003ccode\u003eis_bad_headers\u003c/code\u003e will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eFix the \u003ccode\u003eemail_dispatched\u003c/code\u003e signal to pass the current app as the sender and \u003ccode\u003emessage\u003c/code\u003e as an argument, rather than the other way around.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAttachment.data\u003c/code\u003e may not be \u003ccode\u003eNone\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAttachment.content_type\u003c/code\u003e will be detected based on \u003ccode\u003efilename\u003c/code\u003e and \u003ccode\u003edata\u003c/code\u003e and will not be \u003ccode\u003eNone\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/pallets-eco/flask-mail/blob/main/CHANGES.md\"\u003eflask-mail's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.10.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-05-23\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python \u0026lt; 3.8.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003epyproject.toml\u003c/code\u003e for packaging metadata.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eApply code formatting and linting tools.\u003c/li\u003e\n\u003cli\u003eAdd static type annotations.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;flask-mail\u0026quot;)\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eIndicate that the deprecated \u003ccode\u003eis_bad_headers\u003c/code\u003e will be removed in the next\nversion.\u003c/li\u003e\n\u003cli\u003eFix the \u003ccode\u003eemail_dispatched\u003c/code\u003e signal to pass the current app as the sender and\n\u003ccode\u003emessage\u003c/code\u003e as an argument, rather than the other way around.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAttachment.data\u003c/code\u003e may not be \u003ccode\u003eNone\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAttachment.content_type\u003c/code\u003e will be detected based on \u003ccode\u003efilename\u003c/code\u003e and \u003ccode\u003edata\u003c/code\u003e\nand will not be \u003ccode\u003eNone\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-eco/flask-mail/commit/848ea85f2bf2583d7f0ef58ed55ac1d18f67883a\"\u003e\u003ccode\u003e848ea85\u003c/code\u003e\u003c/a\u003e release version 0.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/0ec1f6b59407f064ece6db351e2da86f4f9ea557\"\u003e\u003ccode\u003e0ec1f6b\u003c/code\u003e\u003c/a\u003e remove test pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/846a67ecf442d908c45057d8c39e2a16150d4868\"\u003e\u003ccode\u003e846a67e\u003c/code\u003e\u003c/a\u003e add static type annotations (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/221\"\u003e#221\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/9075a7a453839a2d8918635ac517713375d26357\"\u003e\u003ccode\u003e9075a7a\u003c/code\u003e\u003c/a\u003e fix signal argument order (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/7b450bd11060bb2885b107c22593326cf488ebad\"\u003e\u003ccode\u003e7b450bd\u003c/code\u003e\u003c/a\u003e update \u003ccode\u003eis_bad_headers\u003c/code\u003e deprecation message (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/218\"\u003e#218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/56914a8512cade43990ea0161560cef8b9bc7391\"\u003e\u003ccode\u003e56914a8\u003c/code\u003e\u003c/a\u003e deprecate \u003ccode\u003e__version__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/217\"\u003e#217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/1932b747f8323c3225fa306f6f36e561face7368\"\u003e\u003ccode\u003e1932b74\u003c/code\u003e\u003c/a\u003e update project files (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/216\"\u003e#216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/46bddb7cd0f543c32d79ee449087664143927a61\"\u003e\u003ccode\u003e46bddb7\u003c/code\u003e\u003c/a\u003e Various minor doc updates (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/214\"\u003e#214\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/610faf7d5f7b1cf3f0706bd8ca1aec9bba9fa654\"\u003e\u003ccode\u003e610faf7\u003c/code\u003e\u003c/a\u003e Update docs to use myst-parser (and be written in .md) (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/bede1aca81ebf585cf9d8284e8881c94e8eb269b\"\u003e\u003ccode\u003ebede1ac\u003c/code\u003e\u003c/a\u003e notify 0.8 backward incompatible changes in ChangeLog (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/109\"\u003e#109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/flask-mail/compare/0.9.1...0.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-migrate` from 3.0.1 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/releases\"\u003eflask-migrate's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 4.1.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGES.md\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.7\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGES.md\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.6\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGES.md\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.5\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGES.md\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.4\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGE.LOG\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.3\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGE.LOG\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.2\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGE.LOG\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.1\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGE.LOG\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGE.LOG\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 3.1.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGE.LOG\u003c/a\u003e for release notes.\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/miguelgrinberg/Flask-Migrate/blob/main/CHANGES.md\"\u003eflask-migrate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eFlask-Migrate Change Log\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eRelease 4.1.0\u003c/strong\u003e - 2025-01-10\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAccept arguments such as \u003ccode\u003e--directory\u003c/code\u003e in environment variables \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/553\"\u003e#553\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/12a181ce0542659f10b4ce154a10cfd41fa1f501\"\u003ecommit\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix minor typos in documentation \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/552\"\u003e#552\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/3b073a2c500303894c495d2e4fa0ef449b6a2833\"\u003ecommit\u003c/a\u003e) (thanks \u003cstrong\u003eKevin Kirsche\u003c/strong\u003e!)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eRelease 4.0.7\u003c/strong\u003e - 2024-03-11\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegression from \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/438\"\u003e#438\u003c/a\u003e: check \u003ccode\u003eg.x_arg\u003c/code\u003e exists before accessing it \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/541\"\u003e#541\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/7e8032c61e5c47f4e50b03dcf98c3b20dd5a8e55\"\u003ecommit\u003c/a\u003e) (thanks \u003cstrong\u003eSkye Im\u003c/strong\u003e!)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eRelease 4.0.6\u003c/strong\u003e - 2024-03-09\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAccept \u003ccode\u003e-x\u003c/code\u003e options for all db commands \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/438\"\u003e#438\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/6f3f889c36030134f87dc1db327c2385d873a4d6\"\u003ecommit\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--purge\u003c/code\u003e flag to the \u003ccode\u003estamp\u003c/code\u003e command \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/540\"\u003e#540\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/af67bb093df5652c867b88880c5934bfc68313cc\"\u003ecommit\u003c/a\u003e) (thanks \u003cstrong\u003eJono N\u003c/strong\u003e!)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eRelease 4.0.5\u003c/strong\u003e - 2023-09-12\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCompatibility fixes for Flask-SQLAlchemy \u0026gt;= 3.1 \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/526\"\u003e#526\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/f562178bbe1912912f3cb6877cbae8b0899c74da\"\u003ecommit\u003c/a\u003e) (thanks \u003cstrong\u003eDavid Lord\u003c/strong\u003e!)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eprocess_revision_directives\u003c/code\u003e option to be configurable \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/523\"\u003e#523\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/821e37fcc4a5e339f197153cdbb4dd2316cbd44b\"\u003ecommit\u003c/a\u003e) (thanks \u003cstrong\u003ellc\u003c/strong\u003e!)\u003c/li\u003e\n\u003cli\u003eStop testing Python 3.7, as Flask-SQLAlchemy 3.1 stopped supporting it (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/8d175193f00bf4e5578f0142d011093d8cd53d57\"\u003ecommit\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eRelease 4.0.4\u003c/strong\u003e - 2023-02-02\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCorrectly obtain database URL with SQLAlchemy 2.0 \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/505\"\u003e#505\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/c8cd02c5d3d43bbab462b863db5417b5d69228bb\"\u003ecommit\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eRelease 4.0.3\u003c/strong\u003e - 2023-01-29\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove legacy \u003cstrong\u003efuture\u003c/strong\u003e import in Alembic templates \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/504\"\u003e#504\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/7a388cfe320254735f4ed65ac655caaf0cae8b28\"\u003ecommit\u003c/a\u003e) (thanks \u003cstrong\u003ePamela Fox\u003c/strong\u003e!)\u003c/li\u003e\n\u003cli\u003eAdd SQLAlchemy 1.4 and 2.0 to the test matrix (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/7a725f2e3267f1c3bb4920cd3bff3a9ff1d7eb6e\"\u003ecommit\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSwitch to pytest as test runner (\u003c...\n\n_Description has been truncated_","html_url":"https://github.com/cabotage/cabotage-app/pull/149","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/cabotage%2Fcabotage-app/issues/149","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/149/packages"},{"uuid":"3730711535","node_id":"PR_kwDOPrR8PM648EqS","number":1123,"state":"open","title":"chore(deps)(deps): bump qrcode[pil] from 8.0 to 8.2","user":"dependabot[bot]","labels":["bug","documentation","enhancement","backend","dependencies","python","priority: high","security","automated","performance","needs-review","size/XS","refactor"],"assignees":["GrayGhostDev"],"locked":false,"comments_count":11,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-15T14:30:19.000Z","updated_at":"2025-12-15T14:38:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps)","packages":[{"name":"qrcode","old_version":"8.0","new_version":"8.2","repository_url":null}],"path":null,"ecosystem":"pip"},"body":"Bumps [qrcode[pil]](https://github.com/lincolnloop/python-qrcode) from 8.0 to 8.2.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lincolnloop/python-qrcode/blob/main/CHANGES.rst\"\u003eqrcode[pil]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2 (01 May 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize QRColorMask apply_mask method for enhanced performance\u003c/li\u003e\n\u003cli\u003eFix typos on StyledPilImage embeded_* parameters.\nThe old parameters with the typos are still accepted\nfor backward compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1 (02 April 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\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/lincolnloop/python-qrcode/commit/3704f57a1107dbf553a50f5b531da3859abe19cf\"\u003e\u003ccode\u003e3704f57\u003c/code\u003e\u003c/a\u003e Preparing release 8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/b593a2b86d8f9cd1bc24cc5623ee47cf1aa076b5\"\u003e\u003ccode\u003eb593a2b\u003c/code\u003e\u003c/a\u003e Fix embeded_* typo on paremeters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/d2674f83092d3573e164bb83468e51f59c85bf50\"\u003e\u003ccode\u003ed2674f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/383\"\u003e#383\u003c/a\u003e from btimby/spelling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/2ced7b4b38ea3132793723bbab588d5676fc8bc7\"\u003e\u003ccode\u003e2ced7b4\u003c/code\u003e\u003c/a\u003e Ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/c5e3f0180e025d9c0fd6adf8ed3c9998073c6137\"\u003e\u003ccode\u003ec5e3f01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/372\"\u003e#372\u003c/a\u003e from smalyu/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/cd3cd7bf87fc81860481902ca22d5b7463332b4b\"\u003e\u003ccode\u003ecd3cd7b\u003c/code\u003e\u003c/a\u003e Release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/5dcf89c56417ad37de8dba953f974324ae7b9271\"\u003e\u003ccode\u003e5dcf89c\u003c/code\u003e\u003c/a\u003e Preparing release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/10da1ba2c95886312097608bd4632ba34765e0e0\"\u003e\u003ccode\u003e10da1ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/386\"\u003e#386\u003c/a\u003e from hugovk/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/7cb996d04c6536a2dbf84cccf9fc471a200f0072\"\u003e\u003ccode\u003e7cb996d\u003c/code\u003e\u003c/a\u003e Upgrade Python syntax with pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/dc4831bde0c432e5d878b75818af38e9dc80cc87\"\u003e\u003ccode\u003edc4831b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lincolnloop/python-qrcode/compare/v8.0...v8.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=qrcode[pil]\u0026package-manager=pip\u0026previous-version=8.0\u0026new-version=8.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/GrayGhostDev/ToolboxAI-Solutions/pull/1123","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/GrayGhostDev%2FToolboxAI-Solutions/issues/1123","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1123/packages"},{"uuid":"3690058876","node_id":"PR_kwDOQTbNN8620v51","number":39,"state":"closed","title":"Bump the python group across 1 directory with 30 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-04T12:33:30.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-03T12:35:06.000Z","updated_at":"2025-12-04T12:33:32.000Z","time_to_close":86304,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python","update_count":30,"packages":[{"name":"celery","old_version":"5.5.3","new_version":"5.6.0","repository_url":"https://github.com/celery/celery"},{"name":"django","old_version":"5.2.8","new_version":"5.2.9","repository_url":"https://github.com/django/django"},{"name":"django-allauth","old_version":"65.13.0","new_version":"65.13.1"},{"name":"psycopg","old_version":"3.2.12","new_version":"3.3.1"},{"name":"redis","old_version":"7.0.1","new_version":"7.1.0","repository_url":"https://github.com/redis/redis-py"},{"name":"sentry-sdk","old_version":"2.43.0","new_version":"2.46.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"django-import-export","old_version":"4.1.1","new_version":"4.3.14","repository_url":"https://github.com/django-import-export/django-import-export"},{"name":"django-leaflet","old_version":"0.30.1","new_version":"0.33.0","repository_url":"https://github.com/makinacorpus/django-leaflet"},{"name":"djoser","old_version":"2.2.3","new_version":"2.3.3","repository_url":"https://github.com/sunscrapers/djoser"},{"name":"social-auth-app-django","old_version":"5.4.2","new_version":"5.6.0","repository_url":"https://github.com/python-social-auth/social-app-django"},{"name":"channels","old_version":"4.1.0","new_version":"4.3.2"},{"name":"channels-redis","old_version":"4.2.0","new_version":"4.3.0","repository_url":"https://github.com/django/channels_redis"},{"name":"django-filter","old_version":"25.1","new_version":"25.2","repository_url":"https://github.com/carltongibson/django-filter"},{"name":"pycryptodome","old_version":"3.19.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"qrcode","old_version":"8.1","new_version":"8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"},{"name":"djangorestframework-gis","old_version":"1.0","new_version":"1.2.0","repository_url":"https://github.com/openwisp/django-rest-framework-gis"},{"name":"xhtml2pdf","old_version":"0.2.16","new_version":"0.2.17","repository_url":"https://github.com/xhtml2pdf/xhtml2pdf"},{"name":"exponent-server-sdk","old_version":"2.1.0","new_version":"2.2.0","repository_url":"https://github.com/expo/exponent-server-sdk-python"},{"name":"python-bidi","old_version":"0.4.2","new_version":"0.6.7","repository_url":"https://github.com/MeirKriheli/python-bidi"},{"name":"django-unfold","old_version":"0.33.0","new_version":"0.72.0","repository_url":"https://github.com/unfoldadmin/django-unfold"},{"name":"django-simple-history","old_version":"3.7.0","new_version":"3.10.1","repository_url":"https://github.com/django-commons/django-simple-history"},{"name":"reportlab","old_version":"4.0.9","new_version":"4.4.5"},{"name":"django-auto-prefetch","old_version":"1.9.0","new_version":"1.14.0","repository_url":"https://github.com/tolomea/django-auto-prefetch"},{"name":"coverage","old_version":"7.11.0","new_version":"7.12.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"django-stubs","old_version":"5.2.7","new_version":"5.2.8"},{"name":"factory-boy","old_version":"3.3.2","new_version":"3.3.3","repository_url":"https://github.com/FactoryBoy/factory_boy"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.0","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.14.4","new_version":"0.14.7","repository_url":"https://github.com/astral-sh/ruff"},{"name":"werkzeug","old_version":"3.1.3","new_version":"3.1.4"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 30 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.0` |\n| [django](https://github.com/django/django) | `5.2.8` | `5.2.9` |\n| [django-allauth[mfa]](https://github.com/sponsors/pennersr) | `65.13.0` | `65.13.1` |\n| [psycopg[c]](https://github.com/psycopg/psycopg) | `3.2.12` | `3.3.1` |\n| [redis](https://github.com/redis/redis-py) | `7.0.1` | `7.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.43.0` | `2.46.0` |\n| [django-import-export](https://github.com/django-import-export/django-import-export) | `4.1.1` | `4.3.14` |\n| [django-leaflet](https://github.com/makinacorpus/django-leaflet) | `0.30.1` | `0.33.0` |\n| [djoser](https://github.com/sunscrapers/djoser) | `2.2.3` | `2.3.3` |\n| [social-auth-app-django](https://github.com/python-social-auth/social-app-django) | `5.4.2` | `5.6.0` |\n| [channels[daphne]](https://github.com/django/channels) | `4.1.0` | `4.3.2` |\n| [channels-redis](https://github.com/django/channels_redis) | `4.2.0` | `4.3.0` |\n| [django-filter](https://github.com/carltongibson/django-filter) | `25.1` | `25.2` |\n| [pycryptodome](https://github.com/Legrandin/pycryptodome) | `3.19.0` | `3.23.0` |\n| [qrcode](https://github.com/lincolnloop/python-qrcode) | `8.1` | `8.2` |\n| [djangorestframework-gis](https://github.com/openwisp/django-rest-framework-gis) | `1.0` | `1.2.0` |\n| [xhtml2pdf](https://github.com/xhtml2pdf/xhtml2pdf) | `0.2.16` | `0.2.17` |\n| [exponent-server-sdk](https://github.com/expo/exponent-server-sdk-python) | `2.1.0` | `2.2.0` |\n| [python-bidi](https://github.com/MeirKriheli/python-bidi) | `0.4.2` | `0.6.7` |\n| [django-unfold](https://github.com/unfoldadmin/django-unfold) | `0.33.0` | `0.72.0` |\n| [django-simple-history](https://github.com/django-commons/django-simple-history) | `3.7.0` | `3.10.1` |\n| [reportlab](https://www.reportlab.com/) | `4.0.9` | `4.4.5` |\n| [django-auto-prefetch](https://github.com/tolomea/django-auto-prefetch) | `1.9.0` | `1.14.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.11.0` | `7.12.0` |\n| [django-stubs[compatible-mypy]](https://github.com/sponsors/typeddjango) | `5.2.7` | `5.2.8` |\n| [factory-boy](https://github.com/FactoryBoy/factory_boy) | `3.3.2` | `3.3.3` |\n| [mypy](https://github.com/python/mypy) | `1.18.2` | `1.19.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.4` | `0.14.7` |\n| [werkzeug[watchdog]](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.4` |\n\n\nUpdates `celery` from 5.5.3 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/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9620\"\u003ecelery/celery#9620\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h3\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged in plaintext by the delayed delivery mechanism. Broker credentials are now properly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/giancarloromeo\"\u003e\u003ccode\u003e@​giancarloromeo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9997\"\u003ecelery/celery#9997\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eMemory Leak Fixes\u003c/h3\u003e\n\u003cp\u003eTwo significant memory leaks have been fixed in this release:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eException Handling Memory Leak\u003c/strong\u003e: Fixed a critical memory leak in task exception handling that was particularly severe on Python 3.11+ due to enhanced traceback data. The fix properly breaks reference cycles in tracebacks to allow garbage collection.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/jaiganeshs21\"\u003e\u003ccode\u003e@​jaiganeshs21\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9799\"\u003ecelery/celery#9799\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePending Result Memory Leak\u003c/strong\u003e: Fixed a memory leak where \u003ccode\u003eAsyncResult\u003c/code\u003e subscriptions were not being cleaned up when results were forgotten.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/tsoos99dev\"\u003e\u003ccode\u003e@​tsoos99dev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9806\"\u003ecelery/celery#9806\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eETA Task Memory Limit\u003c/h3\u003e\n\u003cp\u003eNew configuration option \u003ccode\u003eworker_eta_task_limit\u003c/code\u003e to prevent out-of-memory crashes when workers fetch large numbers of ETA or countdown tasks. Previously, workers could exhaust available memory when the broker contained many scheduled tasks.\u003c/p\u003e\n\u003cp\u003eExample usage:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eapp.conf.worker_eta_task_limit = 1000\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/sashu2310\"\u003e\u003ccode\u003e@​sashu2310\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9853\"\u003ecelery/celery#9853\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eQueue Type Selection for Auto-created Queues\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/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u003ch2\u003ePython 3.9 Minimum Version\u003c/h2\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python\nversion is now 3.9. Users still on Python 3.8 must upgrade their Python version\nbefore upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch2\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in\nCelery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS\nusers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProcessing throughput dropped from ~100 tasks/sec to ~3/sec in some environments\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUnknownOperationException\u003c/code\u003e errors causing container crash loops\u003c/li\u003e\n\u003cli\u003eSilent message processing failures with no error logs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eUsers of the SQS transport must ensure \u003ccode\u003epycurl\u003c/code\u003e is installed. If you removed\n\u003ccode\u003epycurl\u003c/code\u003e after upgrading to Celery 5.5.0, you will need to reinstall it.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@auvipy \u0026amp;lt;https://github.com/auvipy\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9620](https://github.com/celery/celery/issues/9620) \u0026amp;lt;https://github.com/celery/celery/pull/9620\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003ch2\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h2\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged\nin plaintext by the delayed delivery mechanism. Broker credentials are now\nproperly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@giancarloromeo \u0026amp;lt;https://github.com/giancarloromeo\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9997](https://github.com/celery/celery/issues/9997) \u0026amp;lt;https://github.com/celery/celery/pull/9997\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eMemory Leak Fixes\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\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/celery/celery/commit/cca11164860a1bee6ad8626c27a683b482f741eb\"\u003e\u003ccode\u003ecca1116\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10010\"\u003e#10010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/1133f22181bb22223d39c0060973695c6af55643\"\u003e\u003ccode\u003e1133f22\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.14.1 to 1.19.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10008\"\u003e#10008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0932d2c06e001903b90638f7c40a14f5407c9801\"\u003e\u003ccode\u003e0932d2c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10007\"\u003e#10007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/b446910f18860531b089d6c39f974265cc24a589\"\u003e\u003ccode\u003eb446910\u003c/code\u003e\u003c/a\u003e Prepare for (pre) release: v5.6.0rc2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10005\"\u003e#10005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/3f0f0fe7ea6a67a696d0a750644b552559ae368e\"\u003e\u003ccode\u003e3f0f0fe\u003c/code\u003e\u003c/a\u003e asynpool: Don't return from inside a finally block (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10000\"\u003e#10000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/95d05527c0e1fff5c1a38877ba87592983a7f993\"\u003e\u003ccode\u003e95d0552\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10003\"\u003e#10003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f32b92f0e481601e9cc9f1212a4feced3f48e1a0\"\u003e\u003ccode\u003ef32b92f\u003c/code\u003e\u003c/a\u003e Add Py39-314t to CI (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9999\"\u003e#9999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/63c1910221d9fb8c1931ff62c80c4c37232b2d58\"\u003e\u003ccode\u003e63c1910\u003c/code\u003e\u003c/a\u003e Don't fail task on timeout during cold shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9678\"\u003e#9678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/30649dbd41308fc8eef79b2aae179a908eaa7a51\"\u003e\u003ccode\u003e30649db\u003c/code\u003e\u003c/a\u003e Fix log leaking broker credentials (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9997\"\u003e#9997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/929412e2d4d328e337be3f177ca99fff10ab9bdc\"\u003e\u003ccode\u003e929412e\u003c/code\u003e\u003c/a\u003e Remove Python 4.0 version condition for pytest dependencies (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9993\"\u003e#9993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.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.8 to 5.2.9\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/c14b756185c88f7f2eb745ff061f3c221fea9de7\"\u003e\u003ccode\u003ec14b756\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.9 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/99e7d22f55497278d0bcb2e15e72ef532e62a31d\"\u003e\u003ccode\u003e99e7d22\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64460 -- Corrected quadratic inner text accumulation i...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/479415ce5249bcdebeb6570c72df2a87f45a7bbf\"\u003e\u003ccode\u003e479415c\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-13372 -- Protected FilteredRelation against SQL inject...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/da1dfe64c821ba03ca7b0c936184cca1ad641316\"\u003e\u003ccode\u003eda1dfe6\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36712\"\u003e#36712\u003c/a\u003e -- Evaluated type annotations lazily in template tag reg...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/e2ddec431395330b423ef193548f374b5c2f395e\"\u003e\u003ccode\u003ee2ddec4\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36743\"\u003e#36743\u003c/a\u003e -- Corrected docstring for DisallowedRedirect.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/b83ee616c683c5a5879a176a2bbb84cb715a92d5\"\u003e\u003ccode\u003eb83ee61\u003c/code\u003e\u003c/a\u003e [5.2.x] Closed temporary files in OverwritingStorageTests.test_save_overwrite...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/645dc99ab472b9152ccc483d7bbf4eca090da253\"\u003e\u003ccode\u003e645dc99\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35535\"\u003e#35535\u003c/a\u003e -- Used intended decorator in test_simple_block_tag_paren...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/85586052e8d1d9f160b9f1b351e61a787a8e4bed\"\u003e\u003ccode\u003e8558605\u003c/code\u003e\u003c/a\u003e [5.2.x] Added link to Python Pickle documentation in docs/topics/cache.txt.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/de1dc3a87427475590d8efe10f3f627397524fca\"\u003e\u003ccode\u003ede1dc3a\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed outdated redis-py link in cache docs.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ee92d41f562a229ae6c0e6f625d34e7e9ffdc0bb\"\u003e\u003ccode\u003eee92d41\u003c/code\u003e\u003c/a\u003e [5.2.x] Highlighted community package upgrade utilities in docs/howto/upgrade...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.2.8...5.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-allauth[mfa]` from 65.13.0 to 65.13.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg[c]` from 3.2.12 to 3.3.1\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[c]'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\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003ePsycopg 3.3.1\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eFix iteration on server-side cursors (:ticket:\u003ccode\u003e[#1226](https://github.com/psycopg/psycopg/issues/1226)\u003c/code\u003e).\u003c/p\u003e\n\u003ch2\u003ePsycopg 3.3.0\u003c/h2\u003e\n\u003cp\u003e.. rubric:: New top-level features\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd :ref:\u003ccode\u003etemplate strings queries \\\u0026lt;template-strings\u0026gt;\u003c/code\u003e (:ticket:\u003ccode\u003e[#1054](https://github.com/psycopg/psycopg/issues/1054)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eMore flexible :ref:\u003ccode\u003ecomposite adaptation\u0026lt;adapt-composite\u0026gt;\u003c/code\u003e: it is now possible\nto adapt Python objects to PostgreSQL composites and back even if they are not\nsequences or if they take keyword arguments (:ticket:\u003ccode\u003e[#932](https://github.com/psycopg/psycopg/issues/932)\u003c/code\u003e, :ticket:\u003ccode\u003e[#1202](https://github.com/psycopg/psycopg/issues/1202)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eCursors are now iterators_, not just iterables_. This means you can call\n\u003ccode\u003enext\u003c/code\u003e\\ \u003ccode\u003e(cur)\u003c/code\u003e or \u003ccode\u003eanext\u003c/code\u003e\\ \u003ccode\u003e(cur)\u003c/code\u003e, which is useful as a :ref:\u003ccode\u003etype-safe expression \u0026lt;typing-fetchone\u0026gt;\u003c/code\u003e (:ticket:\u003ccode\u003e[#1064](https://github.com/psycopg/psycopg/issues/1064)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eCursor.set_result()\u003c/code\u003e and \u003ccode\u003eCursor.results()\u003c/code\u003e to move across the result\nsets of queries executed though \u003ccode\u003e~Cursor.executemany()\u003c/code\u003e or\n\u003ccode\u003e~Cursor.execute()\u003c/code\u003e with multiple statements (:tickets:\u003ccode\u003e[#1080](https://github.com/psycopg/psycopg/issues/1080), [#1170](https://github.com/psycopg/psycopg/issues/1170)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd :ref:\u003ccode\u003etransaction-status\u003c/code\u003e to report the status during and after a\n\u003ccode\u003e~Connection.transaction()\u003c/code\u003e block (:ticket:\u003ccode\u003e[#969](https://github.com/psycopg/psycopg/issues/969)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAllow to change loaders using \u003ccode\u003e~adapt.AdaptersMap.register_loader()\u003c/code\u003e on\n\u003ccode\u003eCursor.adapters\u003c/code\u003e after a query result has been already returned\n(:ticket:\u003ccode\u003e[#884](https://github.com/psycopg/psycopg/issues/884)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. rubric:: New libpq wrapper features\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epq.PGconn.used_gssapi\u003c/code\u003e attribute and \u003ccode\u003eCapabilities.has_used_gssapi()\u003c/code\u003e\nfunction (:ticket:\u003ccode\u003e[#1138](https://github.com/psycopg/psycopg/issues/1138)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eConnectionInfo.full_protocol_version\u003c/code\u003e attribute,\n\u003ccode\u003eCapabilities.has_full_protocol_version()\u003c/code\u003e function (:ticket:\u003ccode\u003e[#1079](https://github.com/psycopg/psycopg/issues/1079)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. rubric:: Other changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDisable default GSSAPI preferential connection in the binary package\n(:ticket:\u003ccode\u003e[#1136](https://github.com/psycopg/psycopg/issues/1136)\u003c/code\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/psycopg/psycopg/commit/9bdd78cf4360b9229ab3f641c646e232fc69cc8a\"\u003e\u003ccode\u003e9bdd78c\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/4d27426bf197a1eca8ea99ab9e236e1c8e0f15fa\"\u003e\u003ccode\u003e4d27426\u003c/code\u003e\u003c/a\u003e Merge branch 'fix/server-cursor-iter'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/b9b82e86e3ce1972581a495ccbe28d5dbb15c449\"\u003e\u003ccode\u003eb9b82e8\u003c/code\u003e\u003c/a\u003e fix: fix iteration on server-side cursor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/2a75357de22bb63ede33006cd17c99b30e360cdf\"\u003e\u003ccode\u003e2a75357\u003c/code\u003e\u003c/a\u003e fix: add test to verify iteration in server-side cursor broken\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/25ebaa3946bc0912e645dbf4d490a29865a2fc3f\"\u003e\u003ccode\u003e25ebaa3\u003c/code\u003e\u003c/a\u003e chore: bump psycopg_pool package version to 3.3.1.dev1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/754282246e04c7ea32643de763fabd7fca7169d4\"\u003e\u003ccode\u003e7542822\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.1.dev1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/380ccceb57ef44452a4c3e851e5e6dee09eb9eaf\"\u003e\u003ccode\u003e380ccce\u003c/code\u003e\u003c/a\u003e chore: bump psycopg_pool package version to 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/2322a9a9d445da6cd049683e91f2df3702357182\"\u003e\u003ccode\u003e2322a9a\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/6e3b32a7adb8d99297d4904b0ed57390bf057d51\"\u003e\u003ccode\u003e6e3b32a\u003c/code\u003e\u003c/a\u003e fix: mark new register_composite() args as keyword only\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/1accac9a7c185c2f3f84720deec41908346cc04f\"\u003e\u003ccode\u003e1accac9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg/issues/1222\"\u003e#1222\u003c/a\u003e from dvarrazzo/fix/composite-adapt-info\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg/compare/3.2.12...3.3.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.0.1 to 7.1.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.1.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdding MSETEX command support. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3823\"\u003e#3823\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding CLAIM option to XREADGROUP command + unit tests (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3825\"\u003e#3825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eApply routing and response aggregation policies in OSS Cluster mode (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3834\"\u003e#3834\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdding support for CAS/CAD commands. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3837\"\u003e#3837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding support for HYBRID search. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3813\"\u003e#3813\u003c/a\u003e \u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3843\"\u003e#3843\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔥 Breaking changes (in experimental features)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace default health check and failure detector with custom (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3822\"\u003e#3822\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd **options to parse functions for sentinel (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3831\"\u003e#3831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenerating unique command cache key (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3765\"\u003e#3765\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdding Redis 8.4 RC1 image to test matrix. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3820\"\u003e#3820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove Python 3.9 support. Add Python 3.14 support. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3814\"\u003e#3814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSync readme with 7.0.1 and update lib version to latest stable released version - 7.0.1 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3821\"\u003e#3821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump rojopolis/spellcheck-github-actions from 0.52.0 to 0.53.0 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3827\"\u003e#3827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3828\"\u003e#3828\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump github/codeql-action from 3 to 4 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing flaky tests (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3833\"\u003e#3833\u003c/a\u003e \u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate 8.4 RC image tag to 8.4-RC1-pre.2 for pipeline test matrix (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3832\"\u003e#3832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd missing f-string when returning an error. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3841\"\u003e#3841\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding latest 8.4 image to test matrix. Updating the Hybrid VSIM query format to be in sync with spec after srv issue was fixed. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3843\"\u003e#3843\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand cluster READ_COMMANDS with additional read-only commands and reorganize the list of commands by category (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3845\"\u003e#3845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Type Hints for List Command Parameters from str to KeyT (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3848\"\u003e#3848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanging log level to be debug for failed maintenance notification enablement when enabled='auto' (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3851\"\u003e#3851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded custom event handler section (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanging current version to 8.4 as it is already GA (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3854\"\u003e#3854\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/ShubhamKaudewar\"\u003e\u003ccode\u003e@​ShubhamKaudewar\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/matthewwiese\"\u003e\u003ccode\u003e@​matthewwiese\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/peperon\"\u003e\u003ccode\u003e@​peperon\u003c/code\u003e\u003c/a\u003e \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/f7c1755d732a677e0eb05e74e46520115c087153\"\u003e\u003ccode\u003ef7c1755\u003c/code\u003e\u003c/a\u003e Changing current version to 8.4 as it is already GA (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3854\"\u003e#3854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/2235cc76d59a009d546e773d959261503ec3568e\"\u003e\u003ccode\u003e2235cc7\u003c/code\u003e\u003c/a\u003e Added custom event handler section (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/8cc50a5bc9cb972354e17fd9cd8b8542a6f1e4f5\"\u003e\u003ccode\u003e8cc50a5\u003c/code\u003e\u003c/a\u003e Changing log level to be debug for failed maintenance notification enablement...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/d1769a2e2b66c7cd0067358db10db1cc26b2967a\"\u003e\u003ccode\u003ed1769a2\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3612\"\u003e#3612\u003c/a\u003e Generating unique command cache key (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3765\"\u003e#3765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/b49dce1ff0f38c38a5fb89b3f332e84eae8186cb\"\u003e\u003ccode\u003eb49dce1\u003c/code\u003e\u003c/a\u003e Update Type Hints for List Command Parameters from str to KeyT (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3848\"\u003e#3848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/46ff0426550d65e51c7686fa0e12e8954d5d1bcd\"\u003e\u003ccode\u003e46ff042\u003c/code\u003e\u003c/a\u003e Expand cluster READ_COMMANDS with additional read-only commands and reorganiz...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/dc476754600e480dd29a16a2290db5a442114b33\"\u003e\u003ccode\u003edc47675\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.1.0 and added note in README that Python 3.9 suppor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/f026c1e66be68dc18d89e60bd54c5032bd927680\"\u003e\u003ccode\u003ef026c1e\u003c/code\u003e\u003c/a\u003e Adding latest 8.4 image to test matrix. Updating the Hybrid VSIM query format...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/a5ab18fb76522cb1341c81e0032d29df87c85013\"\u003e\u003ccode\u003ea5ab18f\u003c/code\u003e\u003c/a\u003e Adding support for HYBRID search. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3813\"\u003e#3813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/e6fb50506967dbdd6e8c334190c32651ebea1506\"\u003e\u003ccode\u003ee6fb505\u003c/code\u003e\u003c/a\u003e Adding support for CAS/CAD commands. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3837\"\u003e#3837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v7.0.1...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-sdk` from 2.43.0 to 2.46.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-python/releases\"\u003esentry-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.46.0\u003c/h2\u003e\n\u003ch3\u003eVarious fixes \u0026amp; improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve metadata on wrapped coroutines (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5105\"\u003e#5105\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake imports defensive to avoid \u003ccode\u003eModuleNotFoundError\u003c/code\u003e in Pydantic AI integration (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5135\"\u003e#5135\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix OpenAI agents integration mistakenly enabling itself (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5132\"\u003e#5132\u003c/a\u003e) by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd instrumentation to embedding functions for various backends (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5120\"\u003e#5120\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove embeddings support for OpenAI (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5121\"\u003e#5121\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance input handling for embeddings in LiteLLM integration (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5127\"\u003e#5127\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpect exceptions when re-raised (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5125\"\u003e#5125\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003eMagicMock\u003c/code\u003e from mocked \u003ccode\u003eModelResponse\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5126\"\u003e#5126\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.45.0\u003c/h2\u003e\n\u003ch3\u003eVarious fixes \u0026amp; improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOTLPIntegration (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4877\"\u003e#4877\u003c/a\u003e) by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eEnable the new OTLP integration with the code snippet below, and your OpenTelemetry instrumentation will be automatically sent to Sentry's OTLP ingestion endpoint.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e  import sentry_sdk\n  from sentry_sdk.integrations.otlp import OTLPIntegration\n\u003cp\u003esentry_sdk.init(\u003cbr /\u003e\ndsn=\u0026quot;\u0026lt;your-dsn\u0026gt;\u0026quot;,\u003cbr /\u003e\n# Add data like inputs and responses;\u003cbr /\u003e\n# see \u003ca href=\"https://docs.sentry.io/platforms/python/data-management/data-collected/\"\u003ehttps://docs.sentry.io/platforms/python/data-management/data-collected/\u003c/a\u003e for more info\u003cbr /\u003e\nsend_default_pii=True,\u003cbr /\u003e\nintegrations=[\u003cbr /\u003e\nOTLPIntegration(),\u003cbr /\u003e\n],\u003cbr /\u003e\n)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eUnder the hood, this will setup:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA \u003ccode\u003eSpanExporter\u003c/code\u003e that will automatically set up the OTLP ingestion endpoint from your DSN\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003ePropagator\u003c/code\u003e that ensures Distributed Tracing works\u003c/li\u003e\n\u003cli\u003eTrace/Span linking for all other Sentry events such as Errors, Logs, Crons and Metrics\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you were using the \u003ccode\u003eSentrySpanProcessor\u003c/code\u003e before, we recommend migrating over to \u003ccode\u003eOTLPIntegration\u003c/code\u003e since it's a much simpler setup.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efeat(integrations): implement context management for invoke_agent spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5089\"\u003e#5089\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efeat(loguru): Capture extra (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5096\"\u003e#5096\u003c/a\u003e) by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efeat: Attach \u003ccode\u003eserver.address\u003c/code\u003e to metrics (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5113\"\u003e#5113\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix: Cast message and detail attributes before appending exception notes (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5114\"\u003e#5114\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix(integrations): ensure that GEN_AI_AGENT_NAME is properly set for GEN_AI spans under an invoke_agent span (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5030\"\u003e#5030\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix(logs): Update \u003ccode\u003esentry.origin\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5112\"\u003e#5112\u003c/a\u003e) by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003echore: Deprecate description truncation option for Redis spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5073\"\u003e#5073\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003echore: Deprecate \u003ccode\u003emax_spans\u003c/code\u003e LangChain parameter (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5074\"\u003e#5074\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003echore(toxgen): Check availability of pip and add detail to exceptions (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5076\"\u003e#5076\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md\"\u003esentry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.46.0\u003c/h2\u003e\n\u003ch3\u003eVarious fixes \u0026amp; improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve metadata on wrapped coroutines (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5105\"\u003e#5105\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake imports defensive to avoid \u003ccode\u003eModuleNotFoundError\u003c/code\u003e in Pydantic AI integration (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5135\"\u003e#5135\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix OpenAI agents integration mistakenly enabling itself (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5132\"\u003e#5132\u003c/a\u003e) by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd instrumentation to embedding functions for various backends (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5120\"\u003e#5120\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove embeddings support for OpenAI (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5121\"\u003e#5121\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance input handling for embeddings in LiteLLM integration (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5127\"\u003e#5127\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpect exceptions when re-raised (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5125\"\u003e#5125\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003eMagicMock\u003c/code\u003e from mocked \u003ccode\u003eModelResponse\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5126\"\u003e#5126\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.45.0\u003c/h2\u003e\n\u003ch3\u003eVarious fixes \u0026amp; improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOTLPIntegration (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4877\"\u003e#4877\u003c/a\u003e) by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eEnable the new OTLP integration with the code snippet below, and your OpenTelemetry instrumentation will be automatically sent to Sentry's OTLP ingestion endpoint.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e  import sentry_sdk\n  from sentry_sdk.integrations.otlp import OTLPIntegration\n\u003cp\u003esentry_sdk.init(\u003cbr /\u003e\ndsn=\u0026quot;\u0026lt;your-dsn\u0026gt;\u0026quot;,\u003cbr /\u003e\n# Add data like inputs and responses;\u003cbr /\u003e\n# see \u003ca href=\"https://docs.sentry.io/platforms/python/data-management/data-collected/\"\u003ehttps://docs.sentry.io/platforms/python/data-management/data-collected/\u003c/a\u003e for more info\u003cbr /\u003e\nsend_default_pii=True,\u003cbr /\u003e\nintegrations=[\u003cbr /\u003e\nOTLPIntegration(),\u003cbr /\u003e\n],\u003cbr /\u003e\n)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eUnder the hood, this will setup:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA \u003ccode\u003eSpanExporter\u003c/code\u003e that will automatically set up the OTLP ingestion endpoint from your DSN\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003ePropagator\u003c/code\u003e that ensures Distributed Tracing works\u003c/li\u003e\n\u003cli\u003eTrace/Span linking for all other Sentry events such as Errors, Logs, Crons and Metrics\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you were using the \u003ccode\u003eSentrySpanProcessor\u003c/code\u003e before, we recommend migrating over to \u003ccode\u003eOTLPIntegration\u003c/code\u003e since it's a much simpler setup.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efeat(integrations): implement context management for invoke_agent spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5089\"\u003e#5089\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efeat(loguru): Capture extra (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5096\"\u003e#5096\u003c/a\u003e) by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efeat: Attach \u003ccode\u003eserver.address\u003c/code\u003e to metrics (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5113\"\u003e#5113\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix: Cast message and detail attributes before appending exception notes (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5114\"\u003e#5114\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix(integrations): ensure that GEN_AI_AGENT_NAME is properly set for GEN_AI spans under an invoke_agent span (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5030\"\u003e#5030\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix(logs): Update \u003ccode\u003esentry.origin\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5112\"\u003e#5112\u003c/a\u003e) by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003echore: Deprecate description truncation option for Redis spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5073\"\u003e#5073\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\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/getsentry/sentry-python/commit/d3375bc37b08f0bb203689d77ea81fea6511eda4\"\u003e\u003ccode\u003ed3375bc\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/23abfe299675a32dc7354e72aee8890918659479\"\u003e\u003ccode\u003e23abfe2\u003c/code\u003e\u003c/a\u003e release: 2.46.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/ca19d6300f53178e77e77ded477a91338ad9be09\"\u003e\u003ccode\u003eca19d63\u003c/code\u003e\u003c/a\u003e feat: Preserve metadata on wrapped coroutines (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5105\"\u003e#5105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/cf165e332b765b5ce657e09388fae454c1e63e54\"\u003e\u003ccode\u003ecf165e3\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5136\"\u003e#5136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/b8d6a57d7861eb2420fc591083f70c2d0f477379\"\u003e\u003ccode\u003eb8d6a57\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/create-github-app-token from 2.1.4 to 2.2.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5137\"\u003e#5137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/c0c28b842d2ef3eb2e876bb40594ce8130b3bacd\"\u003e\u003ccode\u003ec0c28b8\u003c/code\u003e\u003c/a\u003e build(deps): bump supercharge/redis-github-action from 1.8.0 to 1.8.1 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5138\"\u003e#5138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/fb18c2164e054dfcf11c86b392c45a19a0630112\"\u003e\u003ccode\u003efb18c21\u003c/code\u003e\u003c/a\u003e fix(pydantic-ai): Make imports defensive to avoid \u003ccode\u003eModuleNotFoundError\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5135\"\u003e#5135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/f945e382eeef31ad68738a0b6aef80119484ffbc\"\u003e\u003ccode\u003ef945e38\u003c/code\u003e\u003c/a\u003e Fix openai-agents import (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5132\"\u003e#5132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/8596f894907c488925eb3e1b9eb07c3219eef65c\"\u003e\u003ccode\u003e8596f89\u003c/code\u003e\u003c/a\u003e fix(integrations): enhance input handling for embeddings in LiteLLM integrati...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/0e6e80888296e2c907b399b375639ec7f662a2f6\"\u003e\u003ccode\u003e0e6e808\u003c/code\u003e\u003c/a\u003e test(openai-agents): Remove \u003ccode\u003eMagicMock\u003c/code\u003e from mocked \u003ccode\u003eModelResponse\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5126\"\u003e#5126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-python/compare/2.43.0...2.46.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-import-export` from 4.1.1 to 4.3.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-import-export/django-import-export/releases\"\u003edjango-import-export's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/release_notes.html\"\u003eRelease notes\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003efix for issue in 4.3.0 when xlsx (openpyxl) dependencies are not installed.\u003c/p\u003e\n\u003ch2\u003e4.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/release_notes.html\"\u003eRelease notes\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIncludes \u003ccode\u003eimport\u003c/code\u003e / \u003ccode\u003eexport\u003c/code\u003e management commands.\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/django-import-export/django-import-export/blob/main/docs/changelog.rst\"\u003edjango-import-export's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.14 (2025-11-13)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Ukrainian translation (\u003ccode\u003e2132 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2132\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.13 (2025-10-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: file_name is None in before_import_row when \u003ccode\u003eskip_import_confirm=True\u003c/code\u003e (\u003ccode\u003e2129 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2129\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.12 (2025-10-19)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMinor documentation fix\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.11 (2025-10-19)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix for export not retaining URI query params (\u003ccode\u003e2097 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2097\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.10 (2025-09-26)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved field value extraction for dict-based querysets (\u003ccode\u003e2098 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2098\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003ePerformance improvements for membership checks (\u003ccode\u003e2090 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2090\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eFix ForeignKeyWidget export issue (\u003ccode\u003e2117 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2117\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eImproved documentation for \u003ccode\u003eclean()\u003c/code\u003e methods (\u003ccode\u003e2115 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2115\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eDocumentation updates: JSONField export with attribute syntax (\u003ccode\u003e2100 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2100\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eDocumentation updates: handling TooManyFieldsSent (\u003ccode\u003e2103 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2103\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eUpdated Turkish translation (\u003ccode\u003e2101 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2101\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eUpdated Czech translation (\u003ccode\u003e2111 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2111\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.9 (2025-07-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow specifying meta options in the :ref:\u003ccode\u003emodel_resourcefactory\u0026lt;using_modelresource_factory\u0026gt;\u003c/code\u003e (\u003ccode\u003e2078 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2078\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAllow custom fields and methods in :ref:\u003ccode\u003emodel_resourcefactory\u0026lt;using_modelresource_factory\u0026gt;\u003c/code\u003e (\u003ccode\u003e2081 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2081\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eFAQ update to describe how to customize Excel exports (\u003ccode\u003e2088 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2088\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.8 (2025-06-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eui: fix error display twice issue on export field select page  (\u003ccode\u003e2066 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2066\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eui: add 'select all' fields toggle on export page (\u003ccode\u003e2068 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2068\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdd Hebrew translation (\u003ccode\u003e2071 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2071\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eui: fix display of non field errors on import (\u003ccode\u003e2075 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2075\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.7 (2025-02-25)\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/django-import-export/django-import-export/commit/7422d0e388332adcdd965993d42621d742677f84\"\u003e\u003ccode\u003e7422d0e\u003c/code\u003e\u003c/a\u003e updated changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/060f178b91ffa9eb177f803b9ad2f74bda6fb59e\"\u003e\u003ccode\u003e060f178\u003c/code\u003e\u003c/a\u003e Add Ukrainian translation (\u003ca href=\"https://redirect.github.com/django-import-export/django-import-export/issues/2132\"\u003e#2132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/9cd201d21864e7119cab9eb1db6df61c13b550ef\"\u003e\u003ccode\u003e9cd201d\u003c/code\u003e\u003c/a\u003e Fix: file_name is None in before_import_row when skip_import_confirm=True (\u003ca href=\"https://redirect.github.com/django-import-export/django-import-export/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/80408075c7001ae8048ad05348ee37736a053fe0\"\u003e\u003ccode\u003e8040807\u003c/code\u003e\u003c/a\u003e corrected release docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/b533b7e8436e5c652ad0b9fe2df79ecc83215e41\"\u003e\u003ccode\u003eb533b7e\u003c/code\u003e\u003c/a\u003e Deprecation warning test fix (\u003ca href=\"https://redirect.github.com/django-import-export/django-import-export/issues/2126\"\u003e#2126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/3cc1be8292eb1940fec21950657455e733a0b8e5\"\u003e\u003ccode\u003e3cc1be8\u003c/code\u003e\u003c/a\u003e updated changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/3b1735315cdd1ac1dd165a8dd56575453999560a\"\u003e\u003ccode\u003e3b17353\u003c/code\u003e\u003c/a\u003e minor documentation fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/2ad9bf8807b53e7c6a62905e9b4efe883da129d4\"\u003e\u003ccode\u003e2ad9bf8\u003c/code\u003e\u003c/a\u003e corrected documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/6e89f0e16764324bda2c2c919c2a4108f3247802\"\u003e\u003ccode\u003e6e89f0e\u003c/code\u003e\u003c/a\u003e Fix retain query string params in export action (\u003ca href=\"https://redirect.github.com/django-import-export/django-import-export/issues/2121\"\u003e#2121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/15ecbb9dce07fd10d5116403e9ad45e23cf9f557\"\u003e\u003ccode\u003e15ecbb9\u003c/code\u003e\u003c/a\u003e release 4.3.10\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-import-export/django-import-export/compare/4.1.1...4.3.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-leaflet` from 0.30.1 to 0.33.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/makinacorpus/django-leaflet/blob/master/CHANGES\"\u003edjango-leaflet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.33.0 (unreleased)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.33.0 (2025-12-01)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCSP: Don't test nonce for truthiness before inclusion \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/393\"\u003e#393\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSolve broken marker image paths in the admin panel \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/392\"\u003e#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emap_width\u003c/code\u003e and \u003ccode\u003emap_height\u003c/code\u003e are no longer supported in LeafletWidget \u003ccode\u003eattrs\u003c/code\u003e,\nuse traditional CSS to dimension maps (you can target the class\n\u003ccode\u003e.leaflet-container-default\u003c/code\u003e for example.) \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/401\"\u003e#401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Django 6.0 and Python 3.14 (\u003ccode\u003e[#396](https://github.com/makinacorpus/django-leaflet/issues/396) \u0026lt;https://github.com/makinacorpus/django-leaflet/pull/396\u0026gt;\u003c/code\u003e__) (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/398\"\u003e#398\u003c/a\u003e) .\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ccode\u003e[#396](https://github.com/makinacorpus/django-leaflet/issues/396) \u0026lt;https://github.com/makinacorpus/django-leaflet/pull/396\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.32.0 (2025-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Django 5.2 and Python 3.13 (\u003ccode\u003e[#388](https://github.com/makinacorpus/django-leaflet/issues/388) \u0026lt;https://github.com/makinacorpus/django-leaflet/pull/388\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8 (\u003ccode\u003e[#388](https://github.com/makinacorpus/django-leaflet/issues/388) \u0026lt;https://github.com/makinacorpus/django-leaflet/pull/388\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003cli\u003eAvoid defining withForms globally \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/391\"\u003e#391\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.31.0 (2024-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix icon control.\u003c/li\u003e\n\u003cli\u003eFix JS error if with-forms does not exists \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/379\"\u003e#379\u003c/a\u003e \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/380\"\u003e#380\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Django 5.1.\u003c/li\u003e\n\u003cli\u003eDrop support for Django \u0026lt; 4.2.\u003c/li\u003e\n\u003cli\u003eAvoid defining imgPathElement globally \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/384\"\u003e#384\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove forms dependency on 'extras' \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/385\"\u003e#385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePass with_forms to leaflet_draw_i18n template \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/387\"\u003e#387\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/makinacorpus/django-leaflet/commit/7fd8cc8b97898a758ff7a54531f246e32f3b622c\"\u003e\u003ccode\u003e7fd8cc8\u003c/code\u003e\u003c/a\u003e 0.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/64dfa9f0d22314808f8e8952d02ec419b8344733\"\u003e\u003ccode\u003e64dfa9f\u003c/code\u003e\u003c/a\u003e Update supported Python and Django versions (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/8381b5c84917d99bafbdbaa17a1004c44b26a1a3\"\u003e\u003ccode\u003e8381b5c\u003c/code\u003e\u003c/a\u003e Fixed Django 6 support (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/404\"\u003e#404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/4c8ed44872ea004d44ee3729e9ff89f1046a19c0\"\u003e\u003ccode\u003e4c8ed44\u003c/code\u003e\u003c/a\u003e CustomEvent is widely available for many years (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/400\"\u003e#400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/0e9ef3d6ceb8266dda7508b722cf2e08ad018534\"\u003e\u003ccode\u003e0e9ef3d\u003c/code\u003e\u003c/a\u003e Replace setup.py by pyproject.toml (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/402\"\u003e#402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/fc89112cdef578c7126c23d06a06371533e871af\"\u003e\u003ccode\u003efc89112\u003c/code\u003e\u003c/a\u003e Remove map_height/map_width variables and inline CSS block (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/401\"\u003e#401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/d60da4498ca0fd9fcae6017744a8181b13180233\"\u003e\u003ccode\u003ed60da44\u003c/code\u003e\u003c/a\u003e window.addEventListener is available in major browsers since 2015 (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/399\"\u003e#399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/baf412b31b10ca1ccc0859d6962690cd8b5c4831\"\u003e\u003ccode\u003ebaf412b\u003c/code\u003e\u003c/a\u003e Add support for Django 6 (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/398\"\u003e#398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/32fadf5a5b629575945dba6b5eee48a5cb0ebe44\"\u003e\u003ccode\u003e32fadf5\u003c/code\u003e\u003c/a\u003e Allow running only one specific test with quicktest.py (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/7e909b0ceef943a3a858d5fd24e3cefccad7b155\"\u003e\u003ccode\u003e7e909b0\u003c/code\u003e\u003c/a\u003e Update CHANGES\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/makinacorpus/django-leaflet/compare/0.30.1...0.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djoser` 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/sunscrapers/djoser/releases\"\u003edjoser's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert change from 2.3.2 that was limiting the users to install Djoser only with Django version lower than 4. Incorrect bug ticket \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/866\"\u003esunscrapers/djoser#866\u003c/a\u003e and follow up regression \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/886\"\u003esunscrapers/djoser#886\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd Persian translations \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/pull/881\"\u003esunscrapers/djoser#881\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd Django 5.2 and Python 3.13 support \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/pull/882\"\u003esunscrapers/djoser#882\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eallow dynamic serializer configuration from settings in provider auth view \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/pull/832\"\u003esunscrapers/djoser#832\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix djoser automatically installing the latest django version, if possible \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/866\"\u003esunscrapers/djoser#866\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for Django 5.1.1 (mails serialization was failing) \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/842\"\u003esunscrapers/djoser#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove django-templated-mail from deps \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/846\"\u003esunscrapers/djoser#846\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ea potentially breaking change: fix vuln where users were given tokens if the given password was correct, but they haven't passed Django internal AUTHENTICATION_BACKENDS \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/795\"\u003esunscrapers/djoser#795\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/sunscrapers/djoser/blob/master/CHANGELOG.rst\"\u003edjoser's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e2.3.3\u003c/code\u003e_ (2025-07-13)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert change from 2.3.2 that was limiting the users to install Djoser only with Django version lower than 4. Incorrect bug ticket \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/866\"\u003esunscrapers/djoser#866\u003c/a\u003e and follow up regression \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/886\"\u003esunscrapers/djoser#886\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ccode\u003e2.3.2\u003c/code\u003e_ (2025-07-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd Persian translations \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/pull/881\"\u003esunscrapers/djoser#881\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd Django 5.2 and Python 3.13 support \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/pull/882\"\u003esunscrapers/djoser#882\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eallow dynamic serializer configuration from settings in provider auth view \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/pull/832\"\u003esunscrapers/djoser#832\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix djoser automatically installing the latest django version, if possible \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/866\"\u003esunscrapers/djoser#866\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ccode\u003e2.3.1\u003c/code\u003e_ (2024-11-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for Django 5.1.1 (mails serialization was failing) \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/842\"\u003esunscrapers/djoser#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove django-templated-mail from deps \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/846\"\u003esunscrapers/djoser#846\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ccode\u003e2.3.0\u003c/code\u003e_ (2024-11-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ea potentially breaking change: fix vuln where users were given tokens if the given password was correct, but they haven't passed Django internal AUTHENTICATION_BACKENDS \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/795\"\u003esunscrapers/djoser#795\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\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/sunscrapers/djoser/commit/62614b9830c50a2cc16781b95125b294df87fe0c\"\u003e\u003ccode\u003e62614b9\u003c/code\u003e\u003c/a\u003e bump version 2.3.3 (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/96a0a7a0b511fa07d9edb336150b8e000606a8be\"\u003e\u003ccode\u003e96a0a7a\u003c/code\u003e\u003c/a\u003e revert django pin change (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/887\"\u003e#887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/ef18f77b3fe14ef1c79bc681cb0177a8af83964e\"\u003e\u003ccode\u003eef18f77\u003c/code\u003e\u003c/a\u003e Bump version to 2.3.2 (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/884\"\u003e#884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/9aa1e8256d5183a725071c59ff823f840657f196\"\u003e\u003ccode\u003e9aa1e82\u003c/code\u003e\u003c/a\u003e Documentation updated for JWT authentication (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/861\"\u003e#861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/1e06b5b2ad1f7b34096bf5e0efb07100c9aab5c0\"\u003e\u003ccode\u003e1e06b5b\u003c/code\u003e\u003c/a\u003e Allow dynamic serializer configuration via settings (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/832\"\u003e#832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/ef680b67e6df8545fe3b960b9e42dc974860d194\"\u003e\u003ccode\u003eef680b6\u003c/code\u003e\u003c/a\u003e feat: Add Persian locale (fa, fa_IR) support (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/881\"\u003e#881\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/ce7e4f6388f692a2adffe78c603e41de40c5efbf\"\u003e\u003ccode\u003ece7e4f6\u003c/code\u003e\u003c/a\u003e feat: Add Django 5.2 and Python 3.13 support (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/882\"\u003e#882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/eeb4c719472f1582aadee28ebcccb99a37813c06\"\u003e\u003ccode\u003eeeb4c71\u003c/code\u003e\u003c/a\u003e Bump the dev-dependencies group with 3 updates (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/868\"\u003e#868\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/8c07cb1090eafc93de0093ae4db3097bd523ddef\"\u003e\u003ccode\u003e8c07cb1\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/867\"\u003e#867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/eceaa040ee077cd483dc9a599a1196bcebe1edc8\"\u003e\u003ccode\u003eeceaa04\u003c/code\u003e\u003c/a\u003e drop --upgrade from GHA to prevent auto upgrade pinned deps (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/869\"\u003e#869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sunscrapers/djoser/compare/2.2.3...2.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `social-auth-app-django` from 5.4.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/python-social-auth/social-app-django/releases\"\u003esocial-auth-app-django's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.6.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed possibly unsafe account association (\u003ca href=\"https://github.com/python-social-auth/social-app-django/security/advisories/GHSA-wv4w-6qv2-qqfg\"\u003eCVE-2025-61783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStorage now filters for active users, you might need to customize \u003ccode\u003eSOCIAL_AUTH_ACTIVE_USERS_FILTER\u003c/code\u003e if your custom model does not have the \u003ccode\u003eis_active\u003c/code\u003e field\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDjango 6.0 and Python 3.14 compatibility\u003c/li\u003e\n\u003cli\u003eType annotations\u003c/li\u003e\n\u003cli\u003eLoginRequiredMiddleware compatibility\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRAISE_EXCEPTIONS\u003c/code\u003e and \u003ccode\u003eLOGIN_ERROR_URL\u003c/code\u003e can be configured per backend\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 5.5.1\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed authentication with OpenID based services\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDonations\u003c/h3\u003e\n\u003cp\u003eThis project welcomes donations to make the development sustainable, you can fund Python Social Auth on the following platforms:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sponsors/python-social-auth/\"\u003eGitHub Sponsors\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://opencollective.com/python-social-auth\"\u003eOpen Collective\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 5.5.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for older Django versions.\u003c/li\u003e\n\u003cli\u003eAdded non-empty constraint on \u003ccode\u003euid\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdded support for session restore with stricter SameSite cookie policy.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDonations\u003c/h3\u003e\n\u003cp\u003eThis project welcomes donations to make the development sustainable, you can fund Python Social Auth on the following platforms:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sponsors/python-social-auth/\"\u003eGitHub Sponsors\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://opencollective.com/python-social-auth\"\u003eOpen Collective\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 5.4.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edeps: Update supported Python versions by \u003ca href=\"https://github.com/a-grealish\"\u003e\u003ccode\u003e@​a-grealish\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/621\"\u003epython-social-auth/social-app-django#621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed rollback of extra_data migration by \u003ca href=\"https://github.com/niklas-scholz\"\u003e\u003ccode\u003e@​niklas-scholz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/626\"\u003epython-social-auth/social-app-django#626\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eModernize the build by \u003ca href=\"https://github.com/offbyone\"\u003e\u003ccode\u003e@​offbyone\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/641\"\u003epython-social-auth/social-app-django#641\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(ci): test django main only on Python 3.12+ by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/647\"\u003epython-social-auth/social-app-django#647\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: test against Django 5.1 and 5.2 by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/656\"\u003epython-social-auth/social-app-django#656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove requirements files by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/657\"\u003epython-social-auth/social-app-django#657\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update tox envlist by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/658\"\u003epython-social-auth/social-app-django#658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Version bump 5.4.3 by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/659\"\u003epython-social-auth/social-app-django#659\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/python-social-auth/social-app-django/blob/master/CHANGELOG.md\"\u003esocial-auth-app-django's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/releases/tag/5.6.0\"\u003e5.6.0\u003c/a\u003e - 2025-10-09\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed possibly unsafe account association (\u003ca href=\"https://github.com/python-social-auth/social-app-django/security/advisories/GHSA-wv4w-6qv2-qqfg\"\u003eCVE-2025-61783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStorage now filters for active users, you might need to customize \u003ccode\u003eSOCIAL_AUTH_ACTIVE_USERS_FILTER\u003c/code\u003e if your custom model does not have the \u003ccode\u003eis_active\u003c/code\u003e field\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDjango 6.0 and Python 3.14 compatibility\u003c/li\u003e\n\u003cli\u003eType annotations\u003c/li\u003e\n\u003cli\u003eLoginRequiredMiddleware compatibility\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRAISE_EXCEPTIONS\u003c/code\u003e and \u003ccode\u003eLOGIN_ERROR_URL\u003c/code\u003e can be configured per backend\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/releases/tag/5.5.1\"\u003e5.5.1\u003c/a\u003e - 2025-06-27\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed authentication with OpenID based services\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/releases/...\n\n_Description has been truncated_","html_url":"https://github.com/solnxtech-star/Learnyx-backend/pull/39","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/solnxtech-star%2FLearnyx-backend/issues/39","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/39/packages"},{"uuid":"3647104793","node_id":"PR_kwDOQTbNN860lgbI","number":14,"state":"closed","title":"Bump the python group across 1 directory with 23 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-11-21T12:32:34.000Z","author_association":null,"state_reason":null,"created_at":"2025-11-20T12:37:45.000Z","updated_at":"2025-11-21T12:32:36.000Z","time_to_close":86089,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python","update_count":23,"packages":[{"name":"redis","old_version":"7.0.1","new_version":"7.1.0","repository_url":"https://github.com/redis/redis-py"},{"name":"sentry-sdk","old_version":"2.43.0","new_version":"2.45.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"django-import-export","old_version":"4.1.1","new_version":"4.3.14","repository_url":"https://github.com/django-import-export/django-import-export"},{"name":"django-leaflet","old_version":"0.30.1","new_version":"0.32.0","repository_url":"https://github.com/makinacorpus/django-leaflet"},{"name":"djoser","old_version":"2.2.3","new_version":"2.3.3","repository_url":"https://github.com/sunscrapers/djoser"},{"name":"social-auth-app-django","old_version":"5.4.2","new_version":"5.6.0","repository_url":"https://github.com/python-social-auth/social-app-django"},{"name":"channels","old_version":"4.1.0","new_version":"4.3.1"},{"name":"channels-redis","old_version":"4.2.0","new_version":"4.3.0","repository_url":"https://github.com/django/channels_redis"},{"name":"django-filter","old_version":"25.1","new_version":"25.2","repository_url":"https://github.com/carltongibson/django-filter"},{"name":"pycryptodome","old_version":"3.19.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"qrcode","old_version":"8.1","new_version":"8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"},{"name":"djangorestframework-gis","old_version":"1.0","new_version":"1.2.0","repository_url":"https://github.com/openwisp/django-rest-framework-gis"},{"name":"xhtml2pdf","old_version":"0.2.16","new_version":"0.2.17","repository_url":"https://github.com/xhtml2pdf/xhtml2pdf"},{"name":"exponent-server-sdk","old_version":"2.1.0","new_version":"2.2.0","repository_url":"https://github.com/expo/exponent-server-sdk-python"},{"name":"python-bidi","old_version":"0.4.2","new_version":"0.6.7","repository_url":"https://github.com/MeirKriheli/python-bidi"},{"name":"django-unfold","old_version":"0.33.0","new_version":"0.71.0","repository_url":"https://github.com/unfoldadmin/django-unfold"},{"name":"django-simple-history","old_version":"3.7.0","new_version":"3.10.1","repository_url":"https://github.com/django-commons/django-simple-history"},{"name":"reportlab","old_version":"4.0.9","new_version":"4.4.5"},{"name":"django-auto-prefetch","old_version":"1.9.0","new_version":"1.14.0","repository_url":"https://github.com/tolomea/django-auto-prefetch"},{"name":"coverage","old_version":"7.11.0","new_version":"7.12.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"factory-boy","old_version":"3.3.2","new_version":"3.3.3","repository_url":"https://github.com/FactoryBoy/factory_boy"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.14.4","new_version":"0.14.5","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 23 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [redis](https://github.com/redis/redis-py) | `7.0.1` | `7.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.43.0` | `2.45.0` |\n| [django-import-export](https://github.com/django-import-export/django-import-export) | `4.1.1` | `4.3.14` |\n| [django-leaflet](https://github.com/makinacorpus/django-leaflet) | `0.30.1` | `0.32.0` |\n| [djoser](https://github.com/sunscrapers/djoser) | `2.2.3` | `2.3.3` |\n| [social-auth-app-django](https://github.com/python-social-auth/social-app-django) | `5.4.2` | `5.6.0` |\n| [channels[daphne]](https://github.com/django/channels) | `4.1.0` | `4.3.1` |\n| [channels-redis](https://github.com/django/channels_redis) | `4.2.0` | `4.3.0` |\n| [django-filter](https://github.com/carltongibson/django-filter) | `25.1` | `25.2` |\n| [pycryptodome](https://github.com/Legrandin/pycryptodome) | `3.19.0` | `3.23.0` |\n| [qrcode](https://github.com/lincolnloop/python-qrcode) | `8.1` | `8.2` |\n| [djangorestframework-gis](https://github.com/openwisp/django-rest-framework-gis) | `1.0` | `1.2.0` |\n| [xhtml2pdf](https://github.com/xhtml2pdf/xhtml2pdf) | `0.2.16` | `0.2.17` |\n| [exponent-server-sdk](https://github.com/expo/exponent-server-sdk-python) | `2.1.0` | `2.2.0` |\n| [python-bidi](https://github.com/MeirKriheli/python-bidi) | `0.4.2` | `0.6.7` |\n| [django-unfold](https://github.com/unfoldadmin/django-unfold) | `0.33.0` | `0.71.0` |\n| [django-simple-history](https://github.com/django-commons/django-simple-history) | `3.7.0` | `3.10.1` |\n| [reportlab](https://www.reportlab.com/) | `4.0.9` | `4.4.5` |\n| [django-auto-prefetch](https://github.com/tolomea/django-auto-prefetch) | `1.9.0` | `1.14.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.11.0` | `7.12.0` |\n| [factory-boy](https://github.com/FactoryBoy/factory_boy) | `3.3.2` | `3.3.3` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.4.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.4` | `0.14.5` |\n\n\nUpdates `redis` from 7.0.1 to 7.1.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.1.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdding MSETEX command support. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3823\"\u003e#3823\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding CLAIM option to XREADGROUP command + unit tests (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3825\"\u003e#3825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eApply routing and response aggregation policies in OSS Cluster mode (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3834\"\u003e#3834\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdding support for CAS/CAD commands. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3837\"\u003e#3837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding support for HYBRID search. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3813\"\u003e#3813\u003c/a\u003e \u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3843\"\u003e#3843\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔥 Breaking changes (in experimental features)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace default health check and failure detector with custom (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3822\"\u003e#3822\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd **options to parse functions for sentinel (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3831\"\u003e#3831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenerating unique command cache key (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3765\"\u003e#3765\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdding Redis 8.4 RC1 image to test matrix. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3820\"\u003e#3820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove Python 3.9 support. Add Python 3.14 support. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3814\"\u003e#3814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSync readme with 7.0.1 and update lib version to latest stable released version - 7.0.1 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3821\"\u003e#3821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump rojopolis/spellcheck-github-actions from 0.52.0 to 0.53.0 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3827\"\u003e#3827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3828\"\u003e#3828\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump github/codeql-action from 3 to 4 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing flaky tests (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3833\"\u003e#3833\u003c/a\u003e \u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate 8.4 RC image tag to 8.4-RC1-pre.2 for pipeline test matrix (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3832\"\u003e#3832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd missing f-string when returning an error. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3841\"\u003e#3841\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding latest 8.4 image to test matrix. Updating the Hybrid VSIM query format to be in sync with spec after srv issue was fixed. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3843\"\u003e#3843\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand cluster READ_COMMANDS with additional read-only commands and reorganize the list of commands by category (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3845\"\u003e#3845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Type Hints for List Command Parameters from str to KeyT (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3848\"\u003e#3848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanging log level to be debug for failed maintenance notification enablement when enabled='auto' (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3851\"\u003e#3851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded custom event handler section (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanging current version to 8.4 as it is already GA (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3854\"\u003e#3854\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/ShubhamKaudewar\"\u003e\u003ccode\u003e@​ShubhamKaudewar\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/matthewwiese\"\u003e\u003ccode\u003e@​matthewwiese\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/peperon\"\u003e\u003ccode\u003e@​peperon\u003c/code\u003e\u003c/a\u003e \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/f7c1755d732a677e0eb05e74e46520115c087153\"\u003e\u003ccode\u003ef7c1755\u003c/code\u003e\u003c/a\u003e Changing current version to 8.4 as it is already GA (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3854\"\u003e#3854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/2235cc76d59a009d546e773d959261503ec3568e\"\u003e\u003ccode\u003e2235cc7\u003c/code\u003e\u003c/a\u003e Added custom event handler section (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/8cc50a5bc9cb972354e17fd9cd8b8542a6f1e4f5\"\u003e\u003ccode\u003e8cc50a5\u003c/code\u003e\u003c/a\u003e Changing log level to be debug for failed maintenance notification enablement...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/d1769a2e2b66c7cd0067358db10db1cc26b2967a\"\u003e\u003ccode\u003ed1769a2\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3612\"\u003e#3612\u003c/a\u003e Generating unique command cache key (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3765\"\u003e#3765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/b49dce1ff0f38c38a5fb89b3f332e84eae8186cb\"\u003e\u003ccode\u003eb49dce1\u003c/code\u003e\u003c/a\u003e Update Type Hints for List Command Parameters from str to KeyT (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3848\"\u003e#3848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/46ff0426550d65e51c7686fa0e12e8954d5d1bcd\"\u003e\u003ccode\u003e46ff042\u003c/code\u003e\u003c/a\u003e Expand cluster READ_COMMANDS with additional read-only commands and reorganiz...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/dc476754600e480dd29a16a2290db5a442114b33\"\u003e\u003ccode\u003edc47675\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.1.0 and added note in README that Python 3.9 suppor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/f026c1e66be68dc18d89e60bd54c5032bd927680\"\u003e\u003ccode\u003ef026c1e\u003c/code\u003e\u003c/a\u003e Adding latest 8.4 image to test matrix. Updating the Hybrid VSIM query format...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/a5ab18fb76522cb1341c81e0032d29df87c85013\"\u003e\u003ccode\u003ea5ab18f\u003c/code\u003e\u003c/a\u003e Adding support for HYBRID search. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3813\"\u003e#3813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/e6fb50506967dbdd6e8c334190c32651ebea1506\"\u003e\u003ccode\u003ee6fb505\u003c/code\u003e\u003c/a\u003e Adding support for CAS/CAD commands. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3837\"\u003e#3837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v7.0.1...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-sdk` from 2.43.0 to 2.45.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-python/releases\"\u003esentry-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.45.0\u003c/h2\u003e\n\u003ch3\u003eVarious fixes \u0026amp; improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOTLPIntegration (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4877\"\u003e#4877\u003c/a\u003e) by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eEnable the new OTLP integration with the code snippet below, and your OpenTelemetry instrumentation will be automatically sent to Sentry's OTLP ingestion endpoint.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e  import sentry_sdk\n  from sentry_sdk.integrations.otlp import OTLPIntegration\n\u003cp\u003esentry_sdk.init(\u003cbr /\u003e\ndsn=\u0026quot;\u0026lt;your-dsn\u0026gt;\u0026quot;,\u003cbr /\u003e\n# Add data like inputs and responses;\u003cbr /\u003e\n# see \u003ca href=\"https://docs.sentry.io/platforms/python/data-management/data-collected/\"\u003ehttps://docs.sentry.io/platforms/python/data-management/data-collected/\u003c/a\u003e for more info\u003cbr /\u003e\nsend_default_pii=True,\u003cbr /\u003e\nintegrations=[\u003cbr /\u003e\nOTLPIntegration(),\u003cbr /\u003e\n],\u003cbr /\u003e\n)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eUnder the hood, this will setup:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA \u003ccode\u003eSpanExporter\u003c/code\u003e that will automatically set up the OTLP ingestion endpoint from your DSN\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003ePropagator\u003c/code\u003e that ensures Distributed Tracing works\u003c/li\u003e\n\u003cli\u003eTrace/Span linking for all other Sentry events such as Errors, Logs, Crons and Metrics\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you were using the \u003ccode\u003eSentrySpanProcessor\u003c/code\u003e before, we recommend migrating over to \u003ccode\u003eOTLPIntegration\u003c/code\u003e since it's a much simpler setup.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efeat(integrations): implement context management for invoke_agent spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5089\"\u003e#5089\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efeat(loguru): Capture extra (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5096\"\u003e#5096\u003c/a\u003e) by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efeat: Attach \u003ccode\u003eserver.address\u003c/code\u003e to metrics (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5113\"\u003e#5113\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix: Cast message and detail attributes before appending exception notes (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5114\"\u003e#5114\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix(integrations): ensure that GEN_AI_AGENT_NAME is properly set for GEN_AI spans under an invoke_agent span (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5030\"\u003e#5030\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix(logs): Update \u003ccode\u003esentry.origin\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5112\"\u003e#5112\u003c/a\u003e) by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003echore: Deprecate description truncation option for Redis spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5073\"\u003e#5073\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003echore: Deprecate \u003ccode\u003emax_spans\u003c/code\u003e LangChain parameter (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5074\"\u003e#5074\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003echore(toxgen): Check availability of pip and add detail to exceptions (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5076\"\u003e#5076\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003echore: add MCP SDK Pydantic AI and OpenAI Agents to the list of auto enabled integrations (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5111\"\u003e#5111\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003etest: add tests for either FastMCP implementation (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5075\"\u003e#5075\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix(ci): Re-enable skipped tests (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5104\"\u003e#5104\u003c/a\u003e) by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eci: 🤖 Update test matrix with new releases (11/17) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5110\"\u003e#5110\u003c/a\u003e) by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eci: Force coverage core ctrace for 3.14 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5108\"\u003e#5108\u003c/a\u003e) by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.44.0\u003c/h2\u003e\n\u003ch3\u003eVarious fixes \u0026amp; improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(openai): Check response text is present to avoid AttributeError (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5081\"\u003e#5081\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(pydantic-ai): Do not fail on new \u003ccode\u003eToolManager._call_tool()\u003c/code\u003e parameters (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5084\"\u003e#5084\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests(huggingface): Avoid \u003ccode\u003eNone\u003c/code\u003e version (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5083\"\u003e#5083\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\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/getsentry/sentry-python/blob/master/CHANGELOG.md\"\u003esentry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.45.0\u003c/h2\u003e\n\u003ch3\u003eVarious fixes \u0026amp; improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOTLPIntegration (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4877\"\u003e#4877\u003c/a\u003e) by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eEnable the new OTLP integration with the code snippet below, and your OpenTelemetry instrumentation will be automatically sent to Sentry's OTLP ingestion endpoint.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e  import sentry_sdk\n  from sentry_sdk.integrations.otlp import OTLPIntegration\n\u003cp\u003esentry_sdk.init(\u003cbr /\u003e\ndsn=\u0026quot;\u0026lt;your-dsn\u0026gt;\u0026quot;,\u003cbr /\u003e\n# Add data like inputs and responses;\u003cbr /\u003e\n# see \u003ca href=\"https://docs.sentry.io/platforms/python/data-management/data-collected/\"\u003ehttps://docs.sentry.io/platforms/python/data-management/data-collected/\u003c/a\u003e for more info\u003cbr /\u003e\nsend_default_pii=True,\u003cbr /\u003e\nintegrations=[\u003cbr /\u003e\nOTLPIntegration(),\u003cbr /\u003e\n],\u003cbr /\u003e\n)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eUnder the hood, this will setup:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA \u003ccode\u003eSpanExporter\u003c/code\u003e that will automatically set up the OTLP ingestion endpoint from your DSN\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003ePropagator\u003c/code\u003e that ensures Distributed Tracing works\u003c/li\u003e\n\u003cli\u003eTrace/Span linking for all other Sentry events such as Errors, Logs, Crons and Metrics\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you were using the \u003ccode\u003eSentrySpanProcessor\u003c/code\u003e before, we recommend migrating over to \u003ccode\u003eOTLPIntegration\u003c/code\u003e since it's a much simpler setup.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efeat(integrations): implement context management for invoke_agent spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5089\"\u003e#5089\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efeat(loguru): Capture extra (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5096\"\u003e#5096\u003c/a\u003e) by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efeat: Attach \u003ccode\u003eserver.address\u003c/code\u003e to metrics (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5113\"\u003e#5113\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix: Cast message and detail attributes before appending exception notes (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5114\"\u003e#5114\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix(integrations): ensure that GEN_AI_AGENT_NAME is properly set for GEN_AI spans under an invoke_agent span (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5030\"\u003e#5030\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix(logs): Update \u003ccode\u003esentry.origin\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5112\"\u003e#5112\u003c/a\u003e) by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003echore: Deprecate description truncation option for Redis spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5073\"\u003e#5073\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003echore: Deprecate \u003ccode\u003emax_spans\u003c/code\u003e LangChain parameter (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5074\"\u003e#5074\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003echore(toxgen): Check availability of pip and add detail to exceptions (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5076\"\u003e#5076\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003echore: add MCP SDK Pydantic AI and OpenAI Agents to the list of auto enabled integrations (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5111\"\u003e#5111\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003etest: add tests for either FastMCP implementation (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5075\"\u003e#5075\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix(ci): Re-enable skipped tests (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5104\"\u003e#5104\u003c/a\u003e) by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eci: 🤖 Update test matrix with new releases (11/17) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5110\"\u003e#5110\u003c/a\u003e) by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eci: Force coverage core ctrace for 3.14 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5108\"\u003e#5108\u003c/a\u003e) by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.44.0\u003c/h2\u003e\n\u003ch3\u003eVarious fixes \u0026amp; improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(openai): Check response text is present to avoid AttributeError (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5081\"\u003e#5081\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\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/getsentry/sentry-python/commit/8adce74e8ce5edc983e01293e2e43c1e32a684fc\"\u003e\u003ccode\u003e8adce74\u003c/code\u003e\u003c/a\u003e Polish changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/a7b008e0a6a40b10717ebd81042dfd7d2325fbdd\"\u003e\u003ccode\u003ea7b008e\u003c/code\u003e\u003c/a\u003e release: 2.45.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/c68c3d6b5152b879bc107f76d9a9c78e95792235\"\u003e\u003ccode\u003ec68c3d6\u003c/code\u003e\u003c/a\u003e fix: Cast message and detail attributes before appending exception notes (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5114\"\u003e#5114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/14aff96f8a96b5ffc9003bcedab7993c2382c82a\"\u003e\u003ccode\u003e14aff96\u003c/code\u003e\u003c/a\u003e fix(integrations): ensure that GEN_AI_AGENT_NAME is properly set for GEN_AI s...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/f89d77b1e851701476cdac28e0bc0351f8ab4e0b\"\u003e\u003ccode\u003ef89d77b\u003c/code\u003e\u003c/a\u003e test: add tests for either FastMCP implementation (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/66be3d2450f1452b95c66080e3ae045b1ec79697\"\u003e\u003ccode\u003e66be3d2\u003c/code\u003e\u003c/a\u003e feat: Attach \u003ccode\u003eserver.address\u003c/code\u003e to metrics (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5113\"\u003e#5113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/c4071b3a09a9ac4cb57b8df075fa7b7c8b97a2d3\"\u003e\u003ccode\u003ec4071b3\u003c/code\u003e\u003c/a\u003e chore: Deprecate description truncation option for Redis spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5073\"\u003e#5073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/25999b5df50329382cd1c4834e839ae2ed92c1b3\"\u003e\u003ccode\u003e25999b5\u003c/code\u003e\u003c/a\u003e chore: Deprecate \u003ccode\u003emax_spans\u003c/code\u003e LangChain parameter (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5074\"\u003e#5074\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/c4d0ba8b37dbe1b3a08f0c199b6201fd14ef6204\"\u003e\u003ccode\u003ec4d0ba8\u003c/code\u003e\u003c/a\u003e fix(logs): Update \u003ccode\u003esentry.origin\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5112\"\u003e#5112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/c6ad9ac6e5dbaf1aadc64617df1a6b1c813226d2\"\u003e\u003ccode\u003ec6ad9ac\u003c/code\u003e\u003c/a\u003e chore(toxgen): Check availability of pip and add detail to exceptions (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5076\"\u003e#5076\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-python/compare/2.43.0...2.45.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-import-export` from 4.1.1 to 4.3.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-import-export/django-import-export/releases\"\u003edjango-import-export's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/release_notes.html\"\u003eRelease notes\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003efix for issue in 4.3.0 when xlsx (openpyxl) dependencies are not installed.\u003c/p\u003e\n\u003ch2\u003e4.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/release_notes.html\"\u003eRelease notes\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIncludes \u003ccode\u003eimport\u003c/code\u003e / \u003ccode\u003eexport\u003c/code\u003e management commands.\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/django-import-export/django-import-export/blob/main/docs/changelog.rst\"\u003edjango-import-export's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.14 (2025-11-13)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Ukrainian translation (\u003ccode\u003e2132 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2132\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.13 (2025-10-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: file_name is None in before_import_row when \u003ccode\u003eskip_import_confirm=True\u003c/code\u003e (\u003ccode\u003e2129 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2129\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.12 (2025-10-19)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMinor documentation fix\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.11 (2025-10-19)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix for export not retaining URI query params (\u003ccode\u003e2097 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2097\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.10 (2025-09-26)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved field value extraction for dict-based querysets (\u003ccode\u003e2098 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2098\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003ePerformance improvements for membership checks (\u003ccode\u003e2090 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2090\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eFix ForeignKeyWidget export issue (\u003ccode\u003e2117 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2117\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eImproved documentation for \u003ccode\u003eclean()\u003c/code\u003e methods (\u003ccode\u003e2115 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2115\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eDocumentation updates: JSONField export with attribute syntax (\u003ccode\u003e2100 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2100\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eDocumentation updates: handling TooManyFieldsSent (\u003ccode\u003e2103 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2103\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eUpdated Turkish translation (\u003ccode\u003e2101 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2101\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eUpdated Czech translation (\u003ccode\u003e2111 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2111\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.9 (2025-07-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow specifying meta options in the :ref:\u003ccode\u003emodel_resourcefactory\u0026lt;using_modelresource_factory\u0026gt;\u003c/code\u003e (\u003ccode\u003e2078 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2078\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAllow custom fields and methods in :ref:\u003ccode\u003emodel_resourcefactory\u0026lt;using_modelresource_factory\u0026gt;\u003c/code\u003e (\u003ccode\u003e2081 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2081\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eFAQ update to describe how to customize Excel exports (\u003ccode\u003e2088 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2088\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.8 (2025-06-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eui: fix error display twice issue on export field select page  (\u003ccode\u003e2066 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2066\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eui: add 'select all' fields toggle on export page (\u003ccode\u003e2068 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2068\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdd Hebrew translation (\u003ccode\u003e2071 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2071\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eui: fix display of non field errors on import (\u003ccode\u003e2075 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2075\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.7 (2025-02-25)\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/django-import-export/django-import-export/commit/7422d0e388332adcdd965993d42621d742677f84\"\u003e\u003ccode\u003e7422d0e\u003c/code\u003e\u003c/a\u003e updated changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/060f178b91ffa9eb177f803b9ad2f74bda6fb59e\"\u003e\u003ccode\u003e060f178\u003c/code\u003e\u003c/a\u003e Add Ukrainian translation (\u003ca href=\"https://redirect.github.com/django-import-export/django-import-export/issues/2132\"\u003e#2132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/9cd201d21864e7119cab9eb1db6df61c13b550ef\"\u003e\u003ccode\u003e9cd201d\u003c/code\u003e\u003c/a\u003e Fix: file_name is None in before_import_row when skip_import_confirm=True (\u003ca href=\"https://redirect.github.com/django-import-export/django-import-export/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/80408075c7001ae8048ad05348ee37736a053fe0\"\u003e\u003ccode\u003e8040807\u003c/code\u003e\u003c/a\u003e corrected release docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/b533b7e8436e5c652ad0b9fe2df79ecc83215e41\"\u003e\u003ccode\u003eb533b7e\u003c/code\u003e\u003c/a\u003e Deprecation warning test fix (\u003ca href=\"https://redirect.github.com/django-import-export/django-import-export/issues/2126\"\u003e#2126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/3cc1be8292eb1940fec21950657455e733a0b8e5\"\u003e\u003ccode\u003e3cc1be8\u003c/code\u003e\u003c/a\u003e updated changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/3b1735315cdd1ac1dd165a8dd56575453999560a\"\u003e\u003ccode\u003e3b17353\u003c/code\u003e\u003c/a\u003e minor documentation fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/2ad9bf8807b53e7c6a62905e9b4efe883da129d4\"\u003e\u003ccode\u003e2ad9bf8\u003c/code\u003e\u003c/a\u003e corrected documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/6e89f0e16764324bda2c2c919c2a4108f3247802\"\u003e\u003ccode\u003e6e89f0e\u003c/code\u003e\u003c/a\u003e Fix retain query string params in export action (\u003ca href=\"https://redirect.github.com/django-import-export/django-import-export/issues/2121\"\u003e#2121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/15ecbb9dce07fd10d5116403e9ad45e23cf9f557\"\u003e\u003ccode\u003e15ecbb9\u003c/code\u003e\u003c/a\u003e release 4.3.10\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-import-export/django-import-export/compare/4.1.1...4.3.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-leaflet` from 0.30.1 to 0.32.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/makinacorpus/django-leaflet/blob/master/CHANGES\"\u003edjango-leaflet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.32.0 (2025-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Django 5.2 and Python 3.13 (\u003ccode\u003e[#388](https://github.com/makinacorpus/django-leaflet/issues/388) \u0026lt;https://github.com/makinacorpus/django-leaflet/pull/388\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8 (\u003ccode\u003e[#388](https://github.com/makinacorpus/django-leaflet/issues/388) \u0026lt;https://github.com/makinacorpus/django-leaflet/pull/388\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003cli\u003eAvoid defining withForms globally \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/391\"\u003e#391\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.31.0 (2024-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix icon control.\u003c/li\u003e\n\u003cli\u003eFix JS error if with-forms does not exists \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/379\"\u003e#379\u003c/a\u003e \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/380\"\u003e#380\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Django 5.1.\u003c/li\u003e\n\u003cli\u003eDrop support for Django \u0026lt; 4.2.\u003c/li\u003e\n\u003cli\u003eAvoid defining imgPathElement globally \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/384\"\u003e#384\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove forms dependency on 'extras' \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/385\"\u003e#385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePass with_forms to leaflet_draw_i18n template \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/387\"\u003e#387\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/makinacorpus/django-leaflet/commit/c3a2fd266455a907b6d3b90a6c258defbeed0a50\"\u003e\u003ccode\u003ec3a2fd2\u003c/code\u003e\u003c/a\u003e 0.32.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/c89e0c5f68c5ba25bc5aa9f0259e6df1619d9fcc\"\u003e\u003ccode\u003ec89e0c5\u003c/code\u003e\u003c/a\u003e Update CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/a3996308b1b281b3d33eb4f2417ce30be12bebd6\"\u003e\u003ccode\u003ea399630\u003c/code\u003e\u003c/a\u003e Avoid defining withForms globally (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/edbe0f887a6c7bbff17a2537a83e54837a4e3fd8\"\u003e\u003ccode\u003eedbe0f8\u003c/code\u003e\u003c/a\u003e Support Django 5.2 and Python 3.13, drop Python 3.8 (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/388\"\u003e#388\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/f51ce8e60ef61acf5675f831e07dbd900e0c4f06\"\u003e\u003ccode\u003ef51ce8e\u003c/code\u003e\u003c/a\u003e back to dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/433fc04bc054e2f4daf413c3780710787a9e5cbb\"\u003e\u003ccode\u003e433fc04\u003c/code\u003e\u003c/a\u003e 0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/0c13b9d4434ea845e07acebfa197c05e334aa98a\"\u003e\u003ccode\u003e0c13b9d\u003c/code\u003e\u003c/a\u003e Pass with_forms to leaflet_draw_i18n template (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/8efe27533421dec2c0401bcce849fbbb37e39489\"\u003e\u003ccode\u003e8efe275\u003c/code\u003e\u003c/a\u003e Remove forms dependency on 'extras' (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/08422bb9dbde5285dfe35b5e2fffcf7e7787207a\"\u003e\u003ccode\u003e08422bb\u003c/code\u003e\u003c/a\u003e Avoid defining imgPathElement globally (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/347f9021ae25e071bacb2166d592a7190086ca1a\"\u003e\u003ccode\u003e347f902\u003c/code\u003e\u003c/a\u003e Drop support for Django \u0026lt; 4.2 (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/makinacorpus/django-leaflet/compare/0.30.1...0.32.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djoser` 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/sunscrapers/djoser/releases\"\u003edjoser's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert change from 2.3.2 that was limiting the users to install Djoser only with Django version lower than 4. Incorrect bug ticket \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/866\"\u003esunscrapers/djoser#866\u003c/a\u003e and follow up regression \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/886\"\u003esunscrapers/djoser#886\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd Persian translations \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/pull/881\"\u003esunscrapers/djoser#881\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd Django 5.2 and Python 3.13 support \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/pull/882\"\u003esunscrapers/djoser#882\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eallow dynamic serializer configuration from settings in provider auth view \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/pull/832\"\u003esunscrapers/djoser#832\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix djoser automatically installing the latest django version, if possible \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/866\"\u003esunscrapers/djoser#866\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for Django 5.1.1 (mails serialization was failing) \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/842\"\u003esunscrapers/djoser#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove django-templated-mail from deps \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/846\"\u003esunscrapers/djoser#846\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ea potentially breaking change: fix vuln where users were given tokens if the given password was correct, but they haven't passed Django internal AUTHENTICATION_BACKENDS \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/795\"\u003esunscrapers/djoser#795\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/sunscrapers/djoser/blob/master/CHANGELOG.rst\"\u003edjoser's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e2.3.3\u003c/code\u003e_ (2025-07-13)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert change from 2.3.2 that was limiting the users to install Djoser only with Django version lower than 4. Incorrect bug ticket \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/866\"\u003esunscrapers/djoser#866\u003c/a\u003e and follow up regression \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/886\"\u003esunscrapers/djoser#886\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ccode\u003e2.3.2\u003c/code\u003e_ (2025-07-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd Persian translations \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/pull/881\"\u003esunscrapers/djoser#881\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd Django 5.2 and Python 3.13 support \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/pull/882\"\u003esunscrapers/djoser#882\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eallow dynamic serializer configuration from settings in provider auth view \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/pull/832\"\u003esunscrapers/djoser#832\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix djoser automatically installing the latest django version, if possible \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/866\"\u003esunscrapers/djoser#866\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ccode\u003e2.3.1\u003c/code\u003e_ (2024-11-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for Django 5.1.1 (mails serialization was failing) \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/842\"\u003esunscrapers/djoser#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove django-templated-mail from deps \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/846\"\u003esunscrapers/djoser#846\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ccode\u003e2.3.0\u003c/code\u003e_ (2024-11-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ea potentially breaking change: fix vuln where users were given tokens if the given password was correct, but they haven't passed Django internal AUTHENTICATION_BACKENDS \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/795\"\u003esunscrapers/djoser#795\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\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/sunscrapers/djoser/commit/62614b9830c50a2cc16781b95125b294df87fe0c\"\u003e\u003ccode\u003e62614b9\u003c/code\u003e\u003c/a\u003e bump version 2.3.3 (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/96a0a7a0b511fa07d9edb336150b8e000606a8be\"\u003e\u003ccode\u003e96a0a7a\u003c/code\u003e\u003c/a\u003e revert django pin change (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/887\"\u003e#887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/ef18f77b3fe14ef1c79bc681cb0177a8af83964e\"\u003e\u003ccode\u003eef18f77\u003c/code\u003e\u003c/a\u003e Bump version to 2.3.2 (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/884\"\u003e#884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/9aa1e8256d5183a725071c59ff823f840657f196\"\u003e\u003ccode\u003e9aa1e82\u003c/code\u003e\u003c/a\u003e Documentation updated for JWT authentication (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/861\"\u003e#861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/1e06b5b2ad1f7b34096bf5e0efb07100c9aab5c0\"\u003e\u003ccode\u003e1e06b5b\u003c/code\u003e\u003c/a\u003e Allow dynamic serializer configuration via settings (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/832\"\u003e#832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/ef680b67e6df8545fe3b960b9e42dc974860d194\"\u003e\u003ccode\u003eef680b6\u003c/code\u003e\u003c/a\u003e feat: Add Persian locale (fa, fa_IR) support (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/881\"\u003e#881\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/ce7e4f6388f692a2adffe78c603e41de40c5efbf\"\u003e\u003ccode\u003ece7e4f6\u003c/code\u003e\u003c/a\u003e feat: Add Django 5.2 and Python 3.13 support (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/882\"\u003e#882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/eeb4c719472f1582aadee28ebcccb99a37813c06\"\u003e\u003ccode\u003eeeb4c71\u003c/code\u003e\u003c/a\u003e Bump the dev-dependencies group with 3 updates (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/868\"\u003e#868\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/8c07cb1090eafc93de0093ae4db3097bd523ddef\"\u003e\u003ccode\u003e8c07cb1\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/867\"\u003e#867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/eceaa040ee077cd483dc9a599a1196bcebe1edc8\"\u003e\u003ccode\u003eeceaa04\u003c/code\u003e\u003c/a\u003e drop --upgrade from GHA to prevent auto upgrade pinned deps (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/869\"\u003e#869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sunscrapers/djoser/compare/2.2.3...2.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `social-auth-app-django` from 5.4.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/python-social-auth/social-app-django/releases\"\u003esocial-auth-app-django's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.6.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed possibly unsafe account association (\u003ca href=\"https://github.com/python-social-auth/social-app-django/security/advisories/GHSA-wv4w-6qv2-qqfg\"\u003eCVE-2025-61783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStorage now filters for active users, you might need to customize \u003ccode\u003eSOCIAL_AUTH_ACTIVE_USERS_FILTER\u003c/code\u003e if your custom model does not have the \u003ccode\u003eis_active\u003c/code\u003e field\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDjango 6.0 and Python 3.14 compatibility\u003c/li\u003e\n\u003cli\u003eType annotations\u003c/li\u003e\n\u003cli\u003eLoginRequiredMiddleware compatibility\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRAISE_EXCEPTIONS\u003c/code\u003e and \u003ccode\u003eLOGIN_ERROR_URL\u003c/code\u003e can be configured per backend\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 5.5.1\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed authentication with OpenID based services\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDonations\u003c/h3\u003e\n\u003cp\u003eThis project welcomes donations to make the development sustainable, you can fund Python Social Auth on the following platforms:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sponsors/python-social-auth/\"\u003eGitHub Sponsors\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://opencollective.com/python-social-auth\"\u003eOpen Collective\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 5.5.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for older Django versions.\u003c/li\u003e\n\u003cli\u003eAdded non-empty constraint on \u003ccode\u003euid\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdded support for session restore with stricter SameSite cookie policy.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDonations\u003c/h3\u003e\n\u003cp\u003eThis project welcomes donations to make the development sustainable, you can fund Python Social Auth on the following platforms:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sponsors/python-social-auth/\"\u003eGitHub Sponsors\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://opencollective.com/python-social-auth\"\u003eOpen Collective\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 5.4.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edeps: Update supported Python versions by \u003ca href=\"https://github.com/a-grealish\"\u003e\u003ccode\u003e@​a-grealish\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/621\"\u003epython-social-auth/social-app-django#621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed rollback of extra_data migration by \u003ca href=\"https://github.com/niklas-scholz\"\u003e\u003ccode\u003e@​niklas-scholz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/626\"\u003epython-social-auth/social-app-django#626\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eModernize the build by \u003ca href=\"https://github.com/offbyone\"\u003e\u003ccode\u003e@​offbyone\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/641\"\u003epython-social-auth/social-app-django#641\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(ci): test django main only on Python 3.12+ by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/647\"\u003epython-social-auth/social-app-django#647\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: test against Django 5.1 and 5.2 by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/656\"\u003epython-social-auth/social-app-django#656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove requirements files by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/657\"\u003epython-social-auth/social-app-django#657\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update tox envlist by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/658\"\u003epython-social-auth/social-app-django#658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Version bump 5.4.3 by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/659\"\u003epython-social-auth/social-app-django#659\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/python-social-auth/social-app-django/blob/master/CHANGELOG.md\"\u003esocial-auth-app-django's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/releases/tag/5.6.0\"\u003e5.6.0\u003c/a\u003e - 2025-10-09\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed possibly unsafe account association (\u003ca href=\"https://github.com/python-social-auth/social-app-django/security/advisories/GHSA-wv4w-6qv2-qqfg\"\u003eCVE-2025-61783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStorage now filters for active users, you might need to customize \u003ccode\u003eSOCIAL_AUTH_ACTIVE_USERS_FILTER\u003c/code\u003e if your custom model does not have the \u003ccode\u003eis_active\u003c/code\u003e field\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDjango 6.0 and Python 3.14 compatibility\u003c/li\u003e\n\u003cli\u003eType annotations\u003c/li\u003e\n\u003cli\u003eLoginRequiredMiddleware compatibility\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRAISE_EXCEPTIONS\u003c/code\u003e and \u003ccode\u003eLOGIN_ERROR_URL\u003c/code\u003e can be configured per backend\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/releases/tag/5.5.1\"\u003e5.5.1\u003c/a\u003e - 2025-06-27\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed authentication with OpenID based services\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/releases/tag/5.5.0\"\u003e5.5.0\u003c/a\u003e - 2025-06-27\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for older Django versions.\u003c/li\u003e\n\u003cli\u003eAdded non-empty constraind on \u003ccode\u003euid\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdded support for session restore with stricter SameSite cookie policy.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/releases/tag/5.4.3\"\u003e5.4.3\u003c/a\u003e - 2025-02-13\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTested with recent Django and Python\u003c/li\u003e\n\u003cli\u003eModernized build system\u003c/li\u003e\n\u003cli\u003eFixed rollback of migrations\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-social-auth/social-app-django/commit/d1256b8593b3c3c9168232ce7712ee1cb27333de\"\u003e\u003ccode\u003ed1256b8\u003c/code\u003e\u003c/a\u003e chore: release 5.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/commit/ad7154fd9fce1e79d33f3b01ad96b4779d2ea6d2\"\u003e\u003ccode\u003ead7154f\u003c/code\u003e\u003c/a\u003e feat: test with Python 3.14 and Django 6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/commit/b0cacdb5a3c29436148e2a2c90e7aa92c7c0ab60\"\u003e\u003ccode\u003eb0cacdb\u003c/code\u003e\u003c/a\u003e fix(deps): update dependency django-stubs to v5.2.7 (\u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/issues/817\"\u003e#817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/commit/b38830ba6e92934ee06498c8f162cc4011ce08a6\"\u003e\u003ccode\u003eb38830b\u003c/code\u003e\u003c/a\u003e fix(deps): update dependency django-stubs-ext to v5.2.7 (\u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/issues/818\"\u003e#818\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/commit/598056e2b46c0abe47d38bdfc7027ea6aeedb9b7\"\u003e\u003ccode\u003e598056e\u003c/code\u003e\u003c/a\u003e chore(deps): update github/codeql-action action to v4 (\u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/issues/816\"\u003e#816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/commit/6b6cf28f716f7744e998421548be29ec2e8db400\"\u003e\u003ccode\u003e6b6cf28\u003c/code\u003e\u003c/a\u003e chore(deps): update astral-sh/setup-uv action to v7 (\u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/issues/815\"\u003e#815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/commit/08285a3286b32ce00e72aff1b86c931f19b5dbb9\"\u003e\u003ccode\u003e08285a3\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.0 (\u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/issues/814\"\u003e#814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/commit/1406696761f5965ee340d5a11b458d525b750007\"\u003e\u003ccode\u003e1406696\u003c/code\u003e\u003c/a\u003e chore(deps): update github/codeql-action action to v3.30.7 (\u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/issues/813\"\u003e#813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/commit/2432af5d7d9d3bcee1498e311b6344c04f3a7664\"\u003e\u003ccode\u003e2432af5\u003c/code\u003e\u003c/a\u003e feat: allow to override RAISE_EXCEPTIONS and LOGIN_ERROR_URL per backend (\u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/issues/812\"\u003e#812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/commit/47dd0a94213fc6c26a0a7a21f38af7ed26e47ebd\"\u003e\u003ccode\u003e47dd0a9\u003c/code\u003e\u003c/a\u003e Fix linting issues in storage integration tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-social-auth/social-app-django/compare/5.4.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 `channels[daphne]` from 4.1.0 to 4.3.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/channels/blob/main/CHANGELOG.txt\"\u003echannels[daphne]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.1 (2025-08-01)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed testing live server setup when test DB name was not set.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.0 (2025-07-28)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated asgiref dependency to v3.9+.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for EOL Python and Django versions. Python 3.9 is now the\nminimum supported version.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed compatibility of \u003ccode\u003eChannelsLiveServerTestCase\u003c/code\u003e with Django 5.2.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed DB setup for spawned testing subprocess, typically on Windows and macOS.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee the \u003ccode\u003eVersion 4.3.0 release notes \u0026lt;https://channels.readthedocs.io/en/latest/releases/4.3.0.html\u0026gt;\u003c/code\u003e_ for more\ndetails.\u003c/p\u003e\n\u003ch2\u003e4.2.2 (2025-03-30)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded fallbacks for old valid channel/group name checks.\u003c/p\u003e\n\u003cp\u003eThese were renamed in 4.2.1 but (as internal methods) without deprecation.\nThey are restored (and deprecated) here to allow updating channel layers\nusing them.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.1 (2025-03-29)\u003c/h2\u003e\n\u003cp\u003eChannels 4.2.1 primarily updates the metadata for supported Python and Django\nversions.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded official support for Django 5.2 LTS.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded official support for Python 3.13.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a warning for the length of the channel layer group names.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee also the \u003ccode\u003eVersion 4.2.1 release notes \u0026lt;https://channels.readthedocs.io/en/latest/releases/4.2.1.html\u0026gt;\u003c/code\u003e_ in the docs.\u003c/p\u003e\n\u003ch2\u003e4.2.0 (2024-11-15)\u003c/h2\u003e\n\u003cp\u003eChannels 4.2 introduces a couple of major but backwards-compatible\nchanges, including most notably enhanced async suppport and fixing\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/django/channels/commit/95589a7dc70f4ff295757c8e68f55015a250cd63\"\u003e\u003ccode\u003e95589a7\u003c/code\u003e\u003c/a\u003e Version 4.3.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels/commit/5038d69e8d96b1b21d096c92c398ccbe30f122a5\"\u003e\u003ccode\u003e5038d69\u003c/code\u003e\u003c/a\u003e Fix live server setup when test DB name not set.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels/commit/f17a8fe021e45415f6eca9bc286649247bf45750\"\u003e\u003ccode\u003ef17a8fe\u003c/code\u003e\u003c/a\u003e Bump browser-actions/setup-chrome from 1 to 2 (\u003ca href=\"https://redirect.github.com/django/channels/issues/2175\"\u003e#2175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels/commit/2d64b3f0665ce722dcd0fc7d68c51cdaaab3ac82\"\u003e\u003ccode\u003e2d64b3f\u003c/code\u003e\u003c/a\u003e Version 4.3.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels/commit/253a6543756e64a2067eaeb631281ed8f61c439e\"\u003e\u003ccode\u003e253a654\u003c/code\u003e\u003c/a\u003e Fixed 4.2.1 release notes file extension.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels/commit/4aaefa962d742f85a32b1fe98bdd21d0f9d4b0c1\"\u003e\u003ccode\u003e4aaefa9\u003c/code\u003e\u003c/a\u003e Fixed DB setup for spawned testing subprocess.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels/commit/cd447717a84a8800081c437fc3a1ee4b2f616ae6\"\u003e\u003ccode\u003ecd44771\u003c/code\u003e\u003c/a\u003e Made ChannelsLiveServerTestCase compatible with Django 5.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels/commit/b72da7fc75a66a66125d09e64bb9b9ed0b87de11\"\u003e\u003ccode\u003eb72da7f\u003c/code\u003e\u003c/a\u003e Updated dependencies after asgiref v3.9. (\u003ca href=\"https://redirect.github.com/django/channels/issues/2168\"\u003e#2168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels/commit/0efba8cba0e1bcf3f7cdd7a77d1cb0a06f970ebe\"\u003e\u003ccode\u003e0efba8c\u003c/code\u003e\u003c/a\u003e Correct the place of the 'version switcher' in docs. (\u003ca href=\"https://redirect.github.com/django/channels/issues/2167\"\u003e#2167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels/commit/8bf5c7d0c0a0ecf82e1f7aeec086305fbdfcf863\"\u003e\u003ccode\u003e8bf5c7d\u003c/code\u003e\u003c/a\u003e Update websocket.py: fix typo. (\u003ca href=\"https://redirect.github.com/django/channels/issues/2158\"\u003e#2158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/channels/compare/4.1.0...4.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `channels-redis` from 4.2.0 to 4.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/channels_redis/blob/main/CHANGELOG.txt\"\u003echannels-redis's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.0 (2025-07-22)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.13.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for EOL Python 3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated Channels dependency to at least v4.2.2.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated asgiref dependency to at least v3.9.1.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed compatibility with latest versions of pytest-asyncio.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRenamed internal methods in core channel layer for compatibility with\nChannels v4.2.1+\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped testing against legacy Channels v3 branch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated testing against latest redis-py versions.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.1 (2024-11-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a way to register and use custom serializer formats.\nSee README.rst.\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/django/channels_redis/commit/84986055bbaaafd46a826ab750b28e9773c6da4d\"\u003e\u003ccode\u003e8498605\u003c/code\u003e\u003c/a\u003e Updated version and changelog for v4.3.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels_redis/commit/3e03c4566472358f60ca2bdd121651594ca844b7\"\u003e\u003ccode\u003e3e03c45\u003c/code\u003e\u003c/a\u003e Update Channels and asgiref dependencies to latest versions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels_redis/commit/3f42840931527d921b39e258ac883fb9b6e353b1\"\u003e\u003ccode\u003e3f42840\u003c/code\u003e\u003c/a\u003e Update redis-py testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels_redis/commit/4f35ef54cf2665c56c2e33cd233badf18a558f0a\"\u003e\u003ccode\u003e4f35ef5\u003c/code\u003e\u003c/a\u003e Adjust Channels testing matrix.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels_redis/commit/26f3f8f912454c6b3946dea4723c7ead9fae506a\"\u003e\u003ccode\u003e26f3f8f\u003c/code\u003e\u003c/a\u003e Renamed internal methods in core channel layer.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels_redis/commit/b359bf7dd434bbb68d77d4de3e1e2454f751cb93\"\u003e\u003ccode\u003eb359bf7\u003c/code\u003e\u003c/a\u003e Stop using old event_loop fixture.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels_redis/commit/f439527a1d5845fc0185b69410c839a6a20da7c5\"\u003e\u003ccode\u003ef439527\u003c/code\u003e\u003c/a\u003e Dropped Python 3.8 from test matrix.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels_redis/commit/662b90dce03e7592a03b86a8c7bd36f281d2c7a3\"\u003e\u003ccode\u003e662b90d\u003c/code\u003e\u003c/a\u003e Added support for Python 3.13 (\u003ca href=\"https://redirect.github.com/django/channels_redis/issues/404\"\u003e#404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels_redis/commit/ab8fd13f7df59beef2900e2f83040213463e7469\"\u003e\u003ccode\u003eab8fd13\u003c/code\u003e\u003c/a\u003e Fixed README syntax errors.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels_redis/commit/20fe75d595302380971e084d47ebaea91f152825\"\u003e\u003ccode\u003e20fe75d\u003c/code\u003e\u003c/a\u003e Set date for 4.2.1 release.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/channels_redis/compare/4.2.0...4.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-filter` from 25.1 to 25.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/carltongibson/django-filter/blob/main/CHANGES.rst\"\u003edjango-filter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 25.2 (2025-10-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded testing for Django 6.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for Django \u0026lt;5.2 LTS\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for Python 3.9.\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/carltongibson/django-filter/commit/17ec565554bea4119ad74d2ffccdfb9740d9845b\"\u003e\u003ccode\u003e17ec565\u003c/code\u003e\u003c/a\u003e Bumped version for 25.2 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/9b4b8fdbfe84d471b2e69b7b28faacdd0dca2661\"\u003e\u003ccode\u003e9b4b8fd\u003c/code\u003e\u003c/a\u003e Updated testing for Django 6.0. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1730\"\u003e#1730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/1b07b3e4c22354af31f3dcbaf4337566d7803fd4\"\u003e\u003ccode\u003e1b07b3e\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/carltongibson/django-filter/issues/1726\"\u003e#1726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/27a116864880a503b869c87a61e3e3ee597dae42\"\u003e\u003ccode\u003e27a1168\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1722\"\u003e#1722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/7f59b6f092dadee749540a93c760f84fe5e08b9f\"\u003e\u003ccode\u003e7f59b6f\u003c/code\u003e\u003c/a\u003e Add drf as optional dependencies (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1724\"\u003e#1724\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/635343ec55c9928bfa297314711df77fa83ff6c7\"\u003e\u003ccode\u003e635343e\u003c/code\u003e\u003c/a\u003e Add reference anchors to filter types to facilitate intersphinx refs (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1706\"\u003e#1706\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/7b3176e2ea05a42f2684296733004579f6dcece5\"\u003e\u003ccode\u003e7b3176e\u003c/code\u003e\u003c/a\u003e Document steps for postgres full text search (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1704\"\u003e#1704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/carltongibson/django-filter/compare/25.1...25.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pycryptodome` from 3.19.0 to 3.23.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Legrandin/pycryptodome/releases\"\u003epycryptodome's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.23.0 - Dunkerque\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded cipher modes Key Wrap (KW, RFC3394) and Key Wrap with Padding (KWP, RFC5649).\nBoth are defined also in NIST SP 800-38F.\u003c/li\u003e\n\u003cli\u003eWheels for Windows ARM.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eResolved issues\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eGH#862: For HashEdDSA and Ed448, sign() and verify() modified the state of the XOF.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.22.0 - Caen\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for HPKE (RFC 9180).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eResolved issues\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eGH#812: CCM ciphers will now fail before encrypting (or decrypting)\ndata beyond the limit imposed by the nonce length.\u003c/li\u003e\n\u003cli\u003eGH#846: fix infinite loop with RC4 for data larger than 4GB.\u003c/li\u003e\n\u003cli\u003eGH#852: handle correctly invalid PEM files with less than 3 lines.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.21.0 - Bourdeaux\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBy setting the PYCRYPTODOME_DISABLE_GMP environment variable,\nthe GMP library will not be used even if detected.\u003c/li\u003e\n\u003cli\u003eAdd support for Curve25519 / X25519.\u003c/li\u003e\n\u003cli\u003eAdd support for Curve448 / X448.\u003c/li\u003e\n\u003cli\u003eAdd attribute \u003ccode\u003ecurve\u003c/code\u003e to EccPoint and EccXPoint classes,\nwith the canonical name of the curve.\u003c/li\u003e\n\u003cli\u003eGH#781: the label for the SP800_108_Counter KDF may now\ncontain zero bytes. Thanks to Julien Rische.\u003c/li\u003e\n\u003cli\u003eGH#814: RSA keys for PSS can be imported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eResolved issues\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eGH#810: fixed negation of Ed25519 points.\u003c/li\u003e\n\u003cli\u003eGH#819: accept an RFC5916 ECPrivateKey even if it doesn't\ncontain any of the optional elements\n(parameters [0] and publicKey[1]).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.5.\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/Legrandin/pycryptodome/blob/master/Changelog.rst\"\u003epycryptodome's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.23.0 (17 May 2025)\n++++++++++++++++++++++++++\u003c/p\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded cipher modes Key Wrap (KW, RFC3394) and Key Wrap with Padding (KWP, RFC5649).\nBoth are defined also in NIST SP 800-38F.\u003c/li\u003e\n\u003cli\u003eWheels for Windows ARM.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eResolved issues\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eGH#862: For HashEdDSA and Ed448, sign() and verify() modified the state of the XOF.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.22.0 (16 March 2025)\n++++++++++++++++++++++++++\u003c/p\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for HPKE (RFC 9180).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eResolved issues\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eGH#812: CCM ciphers will now fail before encrypting (or decrypting)\ndata beyond the limit imposed by the nonce length.\u003c/li\u003e\n\u003cli\u003eGH#846: fix infinite loop with RC4 for data larger than 4GB.\u003c/li\u003e\n\u003cli\u003eGH#852: handle correctly invalid PEM files with less than 3 lines.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.21.0 (30 September 2024)\n++++++++++++++++++++++++++\u003c/p\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBy setting the PYCRYPTODOME_DISABLE_GMP environment variable,\nthe GMP library will not be used even if detected.\u003c/li\u003e\n\u003cli\u003eAdd support for Curve25519 / X25519.\u003c/li\u003e\n\u003cli\u003eAdd support for Curve448 / X448.\u003c/li\u003e\n\u003cli\u003eAdd attribute \u003ccode\u003ecurve\u003c/code\u003e to EccPoint and EccXPoint classes,\nwith the canonical name of the curve.\u003c/li\u003e\n\u003cli\u003eGH#781: the label for the SP800_108_Counter KDF may now\ncontain zero bytes. Thanks to Julien Rische.\u003c/li\u003e\n\u003cli\u003eGH#814: RSA keys for PSS can be imported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eResolved issues\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eGH#810: fixed negation of Ed25519 points.\u003c/li\u003e\n\u003cli\u003eGH#819: accept an RFC5916 ECPrivateKey even if it doesn't\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/Legrandin/pycryptodome/commit/cde63f8f9b64f1c8cd86249128cfd5986c2c43af\"\u003e\u003ccode\u003ecde63f8\u003c/code\u003e\u003c/a\u003e Undo license information in pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Legrandin/pycryptodome/commit/51ccbaccc4a37cc331a44d69e20377fbb10c0725\"\u003e\u003ccode\u003e51ccbac\u003c/code\u003e\u003c/a\u003e Add license information in pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Legrandin/pycryptodome/commit/8d4e536029914c510432de8e2924a0566b94b515\"\u003e\u003ccode\u003e8d4e536\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Legrandin/pycryptodome/commit/865287411c18671b14266bbaa6a5a639cc2e199c\"\u003e\u003ccode\u003e8652874\u003c/code\u003e\u003c/a\u003e Add license information in pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Legrandin/pycryptodome/commit/1006d4ffa495e27dbd0ff9181357d661b7e1f0ba\"\u003e\u003ccode\u003e1006d4f\u003c/code\u003e\u003c/a\u003e Build cpython-freeth...\n\n_Description has been truncated_","html_url":"https://github.com/solnxtech-star/Learnyx-backend/pull/14","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/solnxtech-star%2FLearnyx-backend/issues/14","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/14/packages"},{"uuid":"3607371970","node_id":"PR_kwDOQQPBPs6yf4nF","number":18,"state":"open","title":"build(deps): bump qrcode[pil] from 7.4.2 to 8.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":5,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-11-10T10:44:10.000Z","updated_at":"2025-11-10T10:44:38.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"qrcode","old_version":"7.4.2","new_version":"8.2","repository_url":null}],"path":null,"ecosystem":"pip"},"body":"Bumps [qrcode[pil]](https://github.com/lincolnloop/python-qrcode) from 7.4.2 to 8.2.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lincolnloop/python-qrcode/blob/main/CHANGES.rst\"\u003eqrcode[pil]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2 (01 May 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize QRColorMask apply_mask method for enhanced performance\u003c/li\u003e\n\u003cli\u003eFix typos on StyledPilImage embeded_* parameters.\nThe old parameters with the typos are still accepted\nfor backward compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1 (02 April 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0 (27 September 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.11 and 3.12.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python \u0026lt;=3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange local development setup to use Poetry_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTestsuite and code quality checks are done through Github Actions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCode quality and formatting utilises ruff_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003etyping_extensions\u003c/code\u003e as a dependency, as it's no longer required\nwith having Python 3.9+ as a requirement.\nhaving Python 3.9+ as a requirement.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOnly allow high error correction rate (\u003ccode\u003eqrcode.ERROR_CORRECT_H\u003c/code\u003e)\nwhen generating\nQR codes with embedded images to ensure content is readable\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _Poetry: \u003ca href=\"https://python-poetry.org\"\u003ehttps://python-poetry.org\u003c/a\u003e\n.. _ruff: \u003ca href=\"https://astral.sh/ruff\"\u003ehttps://astral.sh/ruff\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/lincolnloop/python-qrcode/commit/3704f57a1107dbf553a50f5b531da3859abe19cf\"\u003e\u003ccode\u003e3704f57\u003c/code\u003e\u003c/a\u003e Preparing release 8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/b593a2b86d8f9cd1bc24cc5623ee47cf1aa076b5\"\u003e\u003ccode\u003eb593a2b\u003c/code\u003e\u003c/a\u003e Fix embeded_* typo on paremeters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/d2674f83092d3573e164bb83468e51f59c85bf50\"\u003e\u003ccode\u003ed2674f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/383\"\u003e#383\u003c/a\u003e from btimby/spelling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/2ced7b4b38ea3132793723bbab588d5676fc8bc7\"\u003e\u003ccode\u003e2ced7b4\u003c/code\u003e\u003c/a\u003e Ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/c5e3f0180e025d9c0fd6adf8ed3c9998073c6137\"\u003e\u003ccode\u003ec5e3f01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/372\"\u003e#372\u003c/a\u003e from smalyu/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/cd3cd7bf87fc81860481902ca22d5b7463332b4b\"\u003e\u003ccode\u003ecd3cd7b\u003c/code\u003e\u003c/a\u003e Release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/5dcf89c56417ad37de8dba953f974324ae7b9271\"\u003e\u003ccode\u003e5dcf89c\u003c/code\u003e\u003c/a\u003e Preparing release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/10da1ba2c95886312097608bd4632ba34765e0e0\"\u003e\u003ccode\u003e10da1ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/386\"\u003e#386\u003c/a\u003e from hugovk/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/7cb996d04c6536a2dbf84cccf9fc471a200f0072\"\u003e\u003ccode\u003e7cb996d\u003c/code\u003e\u003c/a\u003e Upgrade Python syntax with pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/dc4831bde0c432e5d878b75818af38e9dc80cc87\"\u003e\u003ccode\u003edc4831b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lincolnloop/python-qrcode/compare/v7.4.2...v8.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=qrcode[pil]\u0026package-manager=pip\u0026previous-version=7.4.2\u0026new-version=8.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/m9dswyptrn-web/SupersonicBuilder/pull/18","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/m9dswyptrn-web%2FSupersonicBuilder/issues/18","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/18/packages"},{"uuid":"3559680313","node_id":"PR_kwDOQFDxxc6wDE44","number":24,"state":"open","title":"chore(deps): bump the python-minor-patch group across 1 directory with 31 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-10-28T04:03:59.000Z","updated_at":"2025-10-28T04:04:00.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.115.0","new_version":"0.120.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.32.0","new_version":"0.38.0"},{"name":"pydantic","old_version":"2.9.2","new_version":"2.12.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.6.0","new_version":"2.11.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"sqlalchemy","old_version":"2.0.36","new_version":"2.0.44","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"alembic","old_version":"1.13.3","new_version":"1.17.0","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pandas","old_version":"2.2.3","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"shapely","old_version":"2.0.6","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"python-multipart","old_version":"0.0.12","new_version":"0.0.20","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"reportlab","old_version":"4.2.5","new_version":"4.4.4"},{"name":"vobject","old_version":"0.9.8","new_version":"0.9.9","repository_url":"https://github.com/py-vobject/vobject"},{"name":"python-jose","old_version":"3.3.0","new_version":"3.5.0"},{"name":"bcrypt","old_version":"4.2.0","new_version":"4.3.0","repository_url":"https://github.com/pyca/bcrypt"},{"name":"qrcode","old_version":"8.0","new_version":"8.2"},{"name":"requests","old_version":"2.32.3","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"prometheus-fastapi-instrumentator","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"prometheus-client","old_version":"0.21.0","new_version":"0.23.1","repository_url":"https://github.com/prometheus/client_python"},{"name":"celery","old_version":"5.4.0","new_version":"5.5.3","repository_url":"https://github.com/celery/celery"},{"name":"redis","old_version":"5.2.0","new_version":"5.3.1","repository_url":"https://github.com/redis/redis-py"},{"name":"python-levenshtein","old_version":"0.26.0","new_version":"0.27.1","repository_url":"https://github.com/rapidfuzz/python-Levenshtein"},{"name":"pytest","old_version":"8.3.3","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"0.24.0","new_version":"0.26.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"bandit","old_version":"1.7.10","new_version":"1.8.6","repository_url":"https://github.com/PyCQA/bandit"},{"name":"minio","old_version":"7.2.7","new_version":"7.2.18","repository_url":"https://github.com/minio/minio-py"},{"name":"transformers","old_version":"4.35.2","new_version":"4.57.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"torch","old_version":"2.1.1","new_version":"2.9.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"torchvision","old_version":"0.16.1","new_version":"0.24.0","repository_url":"https://github.com/pytorch/vision"},{"name":"sentencepiece","old_version":"0.1.99","new_version":"0.2.1","repository_url":"https://github.com/google/sentencepiece"}],"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.115.0` | `0.120.1` |\n| [uvicorn[standard]](https://github.com/Kludex/uvicorn) | `0.32.0` | `0.38.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.9.2` | `2.12.3` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.6.0` | `2.11.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.36` | `2.0.44` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.13.3` | `1.17.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.2.3` | `2.3.3` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.6` | `2.1.2` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.12` | `0.0.20` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [reportlab](https://www.reportlab.com/) | `4.2.5` | `4.4.4` |\n| [vobject](https://github.com/py-vobject/vobject) | `0.9.8` | `0.9.9` |\n| [python-jose[cryptography]](https://github.com/mpdavis/python-jose) | `3.3.0` | `3.5.0` |\n| [bcrypt](https://github.com/pyca/bcrypt) | `4.2.0` | `4.3.0` |\n| [qrcode[pil]](https://github.com/lincolnloop/python-qrcode) | `8.0` | `8.2` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.32.5` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `7.0.0` | `7.1.0` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.21.0` | `0.23.1` |\n| [celery](https://github.com/celery/celery) | `5.4.0` | `5.5.3` |\n| [redis](https://github.com/redis/redis-py) | `5.2.0` | `5.3.1` |\n| [python-levenshtein](https://github.com/rapidfuzz/python-Levenshtein) | `0.26.0` | `0.27.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.3` | `8.4.2` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.24.0` | `0.26.0` |\n| [bandit](https://github.com/PyCQA/bandit) | `1.7.10` | `1.8.6` |\n| [minio](https://github.com/minio/minio-py) | `7.2.7` | `7.2.18` |\n| [transformers](https://github.com/huggingface/transformers) | `4.35.2` | `4.57.1` |\n| [torch](https://github.com/pytorch/pytorch) | `2.1.1` | `2.9.0` |\n| [torchvision](https://github.com/pytorch/vision) | `0.16.1` | `0.24.0` |\n| [sentencepiece](https://github.com/google/sentencepiece) | `0.1.99` | `0.2.1` |\n\n\nUpdates `fastapi` from 0.115.0 to 0.120.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.120.1\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Bump Starlette to \u0026lt;\u003ccode\u003e0.50.0\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14234\"\u003e#14234\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\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add \u003ccode\u003elicense\u003c/code\u003e and \u003ccode\u003elicense-files\u003c/code\u003e to \u003ccode\u003epyproject.toml\u003c/code\u003e, remove \u003ccode\u003eLicense\u003c/code\u003e from \u003ccode\u003eclassifiers\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14230\"\u003e#14230\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.120.0\u003c/h2\u003e\n\u003cp\u003eThere are no major nor breaking changes in this release. ☕️\u003c/p\u003e\n\u003cp\u003eThe internal reference documentation now uses \u003ccode\u003eannotated_doc.Doc\u003c/code\u003e instead of \u003ccode\u003etyping_extensions.Doc\u003c/code\u003e, this adds a new (very small) dependency on \u003ca href=\"https://github.com/fastapi/annotated-doc\"\u003e\u003ccode\u003eannotated-doc\u003c/code\u003e\u003c/a\u003e, a package made just to provide that \u003ccode\u003eDoc\u003c/code\u003e documentation utility class.\u003c/p\u003e\n\u003cp\u003eI would expect \u003ccode\u003etyping_extensions.Doc\u003c/code\u003e to be deprecated and then removed at some point from \u003ccode\u003etyping_extensions\u003c/code\u003e, for that reason there's the new \u003ccode\u003eannotated-doc\u003c/code\u003e micro-package. If you are curious about this, you can read more in the repo for \u003ca href=\"https://github.com/fastapi/annotated-doc\"\u003e\u003ccode\u003eannotated-doc\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis new version \u003ccode\u003e0.120.0\u003c/code\u003e only contains that transition to the new home package for that utility class \u003ccode\u003eDoc\u003c/code\u003e.\u003c/p\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/14188\"\u003e#14188\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➕ Migrate internal reference documentation from \u003ccode\u003etyping_extensions.Doc\u003c/code\u003e to \u003ccode\u003eannotated_doc.Doc\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14222\"\u003e#14222\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 German LLM prompt and test file. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14189\"\u003e#14189\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⬆ [pre-commit.ci] pre-commit autoupdate. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14181\"\u003e#14181\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\u003c/ul\u003e\n\u003ch2\u003e0.119.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix internal Pydantic v1 compatibility (warnings) for Python 3.14 and Pydantic 2.12.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14186\"\u003e#14186\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📝 Replace \u003ccode\u003estarlette.io\u003c/code\u003e by \u003ccode\u003estarlette.dev\u003c/code\u003e and \u003ccode\u003euvicorn.org\u003c/code\u003e by \u003ccode\u003euvicorn.dev\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14176\"\u003e#14176\u003c/a\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\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🔧 Add sponsor Requestly. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14205\"\u003e#14205\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🔧 Configure reminder for \u003ccode\u003ewaiting\u003c/code\u003e label in \u003ccode\u003eissue-manager\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14156\"\u003e#14156\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.119.0\u003c/h2\u003e\n\u003cp\u003eFastAPI now (temporarily) supports both Pydantic v2 models and \u003ccode\u003epydantic.v1\u003c/code\u003e models at the same time in the same app, to make it easier for any FastAPI apps still using Pydantic v1 to gradually but quickly \u003cstrong\u003emigrate to Pydantic v2\u003c/strong\u003e.\u003c/p\u003e\n\u003cpre lang=\"Python\"\u003e\u003ccode\u003efrom fastapi import FastAPI\nfrom pydantic import BaseModel as BaseModelV2\nfrom pydantic.v1 import BaseModel\n\u003cp\u003e\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\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/78c94c3f565b9b992d1eecafaeb0991e2b177d7c\"\u003e\u003ccode\u003e78c94c3\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.120.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b0301b2803ff98efa638de90ebac05a76a85e20\"\u003e\u003ccode\u003e4b0301b\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/436932aef587e8120439f545ad25220114ea15ab\"\u003e\u003ccode\u003e436932a\u003c/code\u003e\u003c/a\u003e ⬆️ Bump Starlette to \u0026lt;\u003ccode\u003e0.50.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14234\"\u003e#14234\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3ea6a4a0b14583c690b31cbd6951d561f1b6da5c\"\u003e\u003ccode\u003e3ea6a4a\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/96dd32718b36155e221e96a3025f71d654d5031a\"\u003e\u003ccode\u003e96dd327\u003c/code\u003e\u003c/a\u003e 🔧 Add \u003ccode\u003elicense\u003c/code\u003e and \u003ccode\u003elicense-files\u003c/code\u003e to \u003ccode\u003epyproject.toml\u003c/code\u003e, remove \u003ccode\u003eLicense\u003c/code\u003e fro...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cd40c5b40ffd8ba0c6a6a6c96bbf34ec1cf9c525\"\u003e\u003ccode\u003ecd40c5b\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.120.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1c6ee57bbfeebfa21a393b7939c85d9d4d29f0b0\"\u003e\u003ccode\u003e1c6ee57\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/09f40968cb03e878aa25bc83340f891b09d1e418\"\u003e\u003ccode\u003e09f4096\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d390f2e41fb508de416071d481937bc7be486589\"\u003e\u003ccode\u003ed390f2e\u003c/code\u003e\u003c/a\u003e ➕ Migrate internal reference documentation from \u003ccode\u003etyping_extensions.Doc\u003c/code\u003e to `a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cb7018d782c88b189f11d6141c8231ffb9b403b0\"\u003e\u003ccode\u003ecb7018d\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.0...0.120.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn[standard]` from 0.32.0 to 0.38.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[standard]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.38.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 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/2723\"\u003eKludex/uvicorn#2723\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NGANAMODEIJunior\"\u003e\u003ccode\u003e@​NGANAMODEIJunior\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2713\"\u003eKludex/uvicorn#2713\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.37.0...0.38.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.37.0...0.38.0\u003c/a\u003e\u003c/p\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\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[standard]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.38.0 (October 18, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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\u003ch2\u003e0.34.2 (April 19, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFlush stdout buffer on Windows to trigger reload (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2604\"\u003e#2604\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.34.1 (April 13, 2025)\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/Kludex/uvicorn/commit/3850ad6520cafb290bd4174fa9c4ca5d33440c82\"\u003e\u003ccode\u003e3850ad6\u003c/code\u003e\u003c/a\u003e Version 0.38.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2733\"\u003e#2733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9b3f17a549ec96f57bf4d975145fc58feefdd4e8\"\u003e\u003ccode\u003e9b3f17a\u003c/code\u003e\u003c/a\u003e Support Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/ce79f95d065c053b36449f67b3b2cefee5ecf167\"\u003e\u003ccode\u003ece79f95\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Add Marcelo Trylesinski to the license (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2699\"\u003e#2699\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2730\"\u003e#2730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/dbf8797b47c79da542f530f2143b8e851e2388fd\"\u003e\u003ccode\u003edbf8797\u003c/code\u003e\u003c/a\u003e docs: add social icons (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2728\"\u003e#2728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/58f28be98eb95c8cf25905df10997b4af81c23e3\"\u003e\u003ccode\u003e58f28be\u003c/code\u003e\u003c/a\u003e Add section about event loop (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2725\"\u003e#2725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/93d95107490d5ea3693601388d7783c450058271\"\u003e\u003ccode\u003e93d9510\u003c/code\u003e\u003c/a\u003e Bump docs dependencies (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2724\"\u003e#2724\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9b1c6c45ed7fe8bd485ddad475f0feff03971af7\"\u003e\u003ccode\u003e9b1c6c4\u003c/code\u003e\u003c/a\u003e Move Marcelo Trylesinski to maintainers in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2719\"\u003e#2719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/57a61d86f2f123b1d35b9ff71e0f29d22d10806f\"\u003e\u003ccode\u003e57a61d8\u003c/code\u003e\u003c/a\u003e Add discord to README (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2718\"\u003e#2718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7ef5f9f5e7e79887b4ab4214c15ab5a9ce63e193\"\u003e\u003ccode\u003e7ef5f9f\u003c/code\u003e\u003c/a\u003e chore(deps): bump astral-sh/setup-uv from 6.7.0 to 6.8.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2717\"\u003e#2717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/6d26d88970379cbf20b4dbf4f70e27f191db4ede\"\u003e\u003ccode\u003e6d26d88\u003c/code\u003e\u003c/a\u003e Update pyproject.toml for PEP639 compliance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2713\"\u003e#2713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.32.0...0.38.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.9.2 to 2.12.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.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRaise a warning when an invalid after model validator function signature is raised 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/12414\"\u003e#12414\u003c/a\u003e.\nStarting in 2.12.0, using class methods for \u003cem\u003eafter\u003c/em\u003e model validators raised an error, but the error wasn't raised concistently. We decided to emit a deprecation warning instead.\u003c/li\u003e\n\u003cli\u003eAdd \u003ca href=\"https://docs.pydantic.dev/latest/api/fields/#pydantic.fields.FieldInfo.asdict\"\u003e\u003ccode\u003eFieldInfo.asdict()\u003c/code\u003e\u003c/a\u003e method, improve documentation around \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/12411\"\u003e#12411\u003c/a\u003e.\nThis also adds back support for mutations on \u003ccode\u003eFieldInfo\u003c/code\u003e classes, that are reused as \u003ccode\u003eAnnotated\u003c/code\u003e metadata. \u003cstrong\u003eHowever\u003c/strong\u003e, note that this is still \u003cem\u003enot\u003c/em\u003e a supported pattern. Instead, please refer to the \u003ca href=\"https://docs.pydantic.dev/latest/examples/dynamic_models/\"\u003eadded example\u003c/a\u003e in the documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-12-release#changes\"\u003eblog post\u003c/a\u003e section on changes was also updated to document the changes related to \u003ccode\u003eserialize_as_any\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.2...v2.12.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.2...v2.12.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.2 2025-10-14\u003c/h2\u003e\n\u003ch2\u003ev2.12.2 (2025-10-14)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRelease a new \u003ccode\u003epydantic-core\u003c/code\u003e version, as a corrupted CPython 3.10 \u003ccode\u003emanylinux2014_aarch64\u003c/code\u003e wheel got uploaded (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1843\"\u003epydantic-core#1843\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with recursive generic models with a parent model class 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/12398\"\u003e#12398\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.1...v2.12.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.1...v2.12.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.1 2025-10-13\u003c/h2\u003e\n\u003ch2\u003ev2.12.1 (2025-10-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the first 2.12 patch release, addressing most (but not all yet) regressions from the initial 2.12.0 release.\u003c/p\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDo not evaluate annotations when inspecting validators and serializers 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/12355\"\u003e#12355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake sure \u003ccode\u003eNone\u003c/code\u003e is converted as \u003ccode\u003eNoneType\u003c/code\u003e in Python 3.14 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/12370\"\u003e#12370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBackport V1 runtime warning when using Python 3.14 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/12367\"\u003e#12367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix error message for invalid validator signatures 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/12366\"\u003e#12366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePopulate field name in \u003ccode\u003eValidationInfo\u003c/code\u003e for validation of default value 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/1826\"\u003epydantic-core#1826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEncode credentials in \u003ccode\u003eMultiHostUrl\u003c/code\u003e builder by \u003ca href=\"https://github.com/willswire\"\u003e\u003ccode\u003e@​willswire\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1829\"\u003epydantic-core#1829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect field serializers when using \u003ccode\u003eserialize_as_any\u003c/code\u003e serialization flag 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/1829\"\u003epydantic-core#1829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix various \u003ccode\u003eRootModel\u003c/code\u003e serialization issues 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/1836\"\u003epydantic-core#1836\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\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/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.12 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported\n\u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRaise a warning when an invalid after model validator function signature is raised 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/12414\"\u003e#12414\u003c/a\u003e.\nStarting in 2.12.0, using class methods for \u003cem\u003eafter\u003c/em\u003e model validators raised an error, but the error wasn't raised concistently. We decided\nto emit a deprecation warning instead.\u003c/li\u003e\n\u003cli\u003eAdd \u003ca href=\"https://docs.pydantic.dev/latest/api/fields/#pydantic.fields.FieldInfo.asdict\"\u003e\u003ccode\u003eFieldInfo.asdict()\u003c/code\u003e\u003c/a\u003e method, improve documentation around \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/12411\"\u003e#12411\u003c/a\u003e.\nThis also add back support for mutations on \u003ccode\u003eFieldInfo\u003c/code\u003e classes, that are reused as \u003ccode\u003eAnnotated\u003c/code\u003e metadata. \u003cstrong\u003eHowever\u003c/strong\u003e, note that this is still\n\u003cem\u003enot\u003c/em\u003e a supported pattern. Instead, please refer to the \u003ca href=\"https://docs.pydantic.dev/latest/examples/dynamic_models/\"\u003eadded example\u003c/a\u003e in the documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-12-release#changes\"\u003eblog post\u003c/a\u003e section on changes was also updated to document the changes related to \u003ccode\u003eserialize_as_any\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003ev2.12.2 (2025-10-14)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.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\u003eRelease a new \u003ccode\u003epydantic-core\u003c/code\u003e version, as a corrupted CPython 3.10 \u003ccode\u003emanylinux2014_aarch64\u003c/code\u003e wheel got uploaded (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1843\"\u003epydantic-core#1843\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with recursive generic models with a parent model class 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/12398\"\u003e#12398\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.1 (2025-10-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the first 2.12 patch release, addressing most (but not all yet) regressions from the initial 2.12.0 release.\u003c/p\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDo not evaluate annotations when inspecting validators and serializers 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/12355\"\u003e#12355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake sure \u003ccode\u003eNone\u003c/code\u003e is converted as \u003ccode\u003eNoneType\u003c/code\u003e in Python 3.14 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/12370\"\u003e#12370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBackport V1 runtime warning when using Python 3.14 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/12367\"\u003e#12367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix error message for invalid validator signatures 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/12366\"\u003e#12366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePopulate field name in \u003ccode\u003eValidationInfo\u003c/code\u003e for validation of default value 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/1826\"\u003epydantic-core#1826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEncode credentials in \u003ccode\u003eMultiHostUrl\u003c/code\u003e builder by \u003ca href=\"https://github.com/willswire\"\u003e\u003ccode\u003e@​willswire\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1829\"\u003epydantic-core#1829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect field serializers when using \u003ccode\u003eserialize_as_any\u003c/code\u003e serialization flag 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/1829\"\u003epydantic-core#1829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix various \u003ccode\u003eRootModel\u003c/code\u003e serialization issues 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/1836\"\u003epydantic-core#1836\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\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/pydantic/pydantic/commit/1a8850d101e67d2744ba8c6286e1172d7cd89d0b\"\u003e\u003ccode\u003e1a8850d\u003c/code\u003e\u003c/a\u003e Prepare release 2.12.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/09dbcf29c73c3fd7fd3ef1edfebe357e807cc9ca\"\u003e\u003ccode\u003e09dbcf2\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eFieldInfo.asdict()\u003c/code\u003e method, improve documentation around \u003ccode\u003eFieldInfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5da43310ec61a7b9b3017b2b9f388e778398a1bc\"\u003e\u003ccode\u003e5da4331\u003c/code\u003e\u003c/a\u003e Improve documentation about serialize as any behavior\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/9c863245ad3799ab331f33b52e2d7441e9c1191e\"\u003e\u003ccode\u003e9c86324\u003c/code\u003e\u003c/a\u003e Raise a warning when an invalid after model validator function signature is r...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/36a73c6ed53df7f1cad3343bc811e1dd3f52d26f\"\u003e\u003ccode\u003e36a73c6\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003epydantic-extra-types\u003c/code\u003e dependency to version \u003ccode\u003e\u0026gt;=2.10.6\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1e616a3a6fa0201f840c08143cac883e56a2d9df\"\u003e\u003ccode\u003e1e616a3\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/dc302e2d09f0eed14729f69bc61a258f1f35d35c\"\u003e\u003ccode\u003edc302e2\u003c/code\u003e\u003c/a\u003e Fix issue with recursive generic models with a parent model class\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/6876485d0cffeb66c915695574344ae4b03645a7\"\u003e\u003ccode\u003e6876485\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epydantic-core\u003c/code\u003e to v2.41.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b4076c66773b514d4891f036a4cc562b8ff0ff21\"\u003e\u003ccode\u003eb4076c6\u003c/code\u003e\u003c/a\u003e Prepare release 2.12.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b67f07291167b4005a6eeee05fcad67b43a53f41\"\u003e\u003ccode\u003eb67f072\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epydantic-core\u003c/code\u003e to v2.41.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.9.2...v2.12.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.6.0 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.6.0...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.36 to 2.0.44\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.44\u003c/h1\u003e\n\u003cp\u003eReleased: October 10, 2025\u003c/p\u003e\n\u003ch2\u003eplatform\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[platform] [bug]\u003c/strong\u003e Unblocked automatic greenlet installation for Python 3.14 now that\nthere are greenlet wheels on pypi for python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [usecase]\u003c/strong\u003e The way ORM Annotated Declarative interprets Python \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e type aliases\nin \u003ccode\u003eMapped[]\u003c/code\u003e annotations has been refined to expand the lookup scheme. A\n\u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e type can now be resolved based on either its direct presence in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e or its immediate resolved\nvalue, as long as a recursive lookup across multiple \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e types is\nnot required for it to resolve. This change reverses part of the\nrestrictions introduced in 2.0.37 as part of \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/11955\"\u003e#11955\u003c/a\u003e, which\ndeprecated (and disallowed in 2.1) the ability to resolve any \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e\ntype that was not explicitly present in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e. Recursive lookups of\n\u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e types remains deprecated in 2.0 and disallowed in version 2.1,\nas do implicit lookups of \u003ccode\u003eNewType\u003c/code\u003e types without an entry in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eAdditionally, new support has been added for generic \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e aliases that\nrefer to \u003ca href=\"https://peps.python.org/pep-0593\"\u003ePEP 593\u003c/a\u003e \u003ccode\u003eAnnotated\u003c/code\u003e constructs containing\n\u003ccode\u003e_orm.mapped_column()\u003c/code\u003e configurations. See the sections below for\nexamples.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12829\"\u003e#12829\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed a caching issue where \u003ccode\u003e_orm.with_loader_criteria()\u003c/code\u003e would\nincorrectly reuse cached bound parameter values when used with\n\u003ccode\u003e_sql.CompoundSelect\u003c/code\u003e constructs such as \u003ccode\u003e_sql.union()\u003c/code\u003e. The\nissue was caused by the cache key for compound selects not including the\nexecution options that are part of the \u003ccode\u003e_sql.Executable\u003c/code\u003e base class,\nwhich \u003ccode\u003e_orm.with_loader_criteria()\u003c/code\u003e uses to apply its criteria\ndynamically. The fix ensures that compound selects and other executable\nconstructs properly include execution options in their cache key traversal.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12905\"\u003e#12905\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\u003cstrong\u003e[engine] [bug]\u003c/strong\u003e Implemented initial support for free-threaded Python by adding new tests\nand reworking the test harness to include Python 3.13t and Python 3.14t in\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 `alembic` from 1.13.3 to 1.17.0\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.17.0\u003c/h1\u003e\n\u003cp\u003eReleased: October 11, 2025\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[change] [tests]\u003c/strong\u003e The top-level test runner has been changed to use \u003ccode\u003enox\u003c/code\u003e, adding a\n\u003ccode\u003enoxfile.py\u003c/code\u003e as well as some included modules.   The \u003ccode\u003etox.ini\u003c/code\u003e file\nremains in place so that \u003ccode\u003etox\u003c/code\u003e runs will continue to function in the near\nterm, however it will be eventually removed and improvements and\nmaintenance going forward will be only towards \u003ccode\u003enoxfile.py\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[change] [general]\u003c/strong\u003e The minimum Python version is now 3.10, as Python 3.9 is EOL.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\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 `psycopg2-binary` 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-binary'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\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 `shapely` from 2.0.6 to 2.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shapely/shapely/releases\"\u003eshapely's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation of certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor a full changelog , see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions, improvements and bug fixes. Highlights include initial support for geometries with M or ZM values, functionality for coverage validation and simplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1 and are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0rc1\u003c/h2\u003e\n\u003cp\u003eShapely version 2.1.0 is a major release featuring various new functions, improvements and bug fixes. This is a first release candidate.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.0.7\u003c/h2\u003e\n\u003cp\u003eShapely 2.0.7 fixes 3 bugs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix compilation error on certain Linux platforms, such as Alpine (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/1945\"\u003e#1945\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixes crash when reading nonlinear geometry types (\u003ccode\u003eCircularString\u003c/code\u003e, \u003ccode\u003eCompoundCurve\u003c/code\u003e, \u003ccode\u003eMultiCurve\u003c/code\u003e, \u003ccode\u003eCurvePolygon\u003c/code\u003e, \u003ccode\u003eMultiSurface\u003c/code\u003e) from WKB/WKT with GEOS \u0026gt;= 3.13; these types are not yet supported in Shapely and now raise a \u003ccode\u003eNotImplementedError\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2160\"\u003e#2160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix the \u003ccode\u003eproject()\u003c/code\u003e method to return a Python float (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2093\"\u003e#2093\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWheels include GEOS 3.11.4.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-0-7\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-0-7\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/shapely/shapely/blob/main/CHANGES.txt\"\u003eshapely's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2 (2025-09-24)\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1 (2025-05-19)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation\nof certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.0 (2025-04-03)\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions,\nimprovements and bug fixes. Highlights include initial support for geometries\nwith M or ZM values, functionality for coverage validation and\nsimplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1\nand are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see\n\u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.0.7 (2025-01-30)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix compilation error on certain Linux platforms, such as Alpine (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/1945\"\u003e#1945\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixes crash when reading nonlinear geometry types (CircularString,\nCompoundCurve, MultiCurve, CurvePolygon, MultiSurface) from WKB/WKT with\nGEOS \u0026gt;= 3.13; these types are not yet supported in Shapely and now raise a\n\u003ccode\u003eNotImplementedError\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2160\"\u003e#2160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix the \u003ccode\u003eproject\u003c/code\u003e method to return a Python float (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2093\"\u003e#2093\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/shapely/shapely/commit/5fb639d1056888d135fe56bfaf750c9648addeec\"\u003e\u003ccode\u003e5fb639d\u003c/code\u003e\u003c/a\u003e RLS: 2.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/70509a1bee5ebd6637cda98b5c9d83707c341888\"\u003e\u003ccode\u003e70509a1\u003c/code\u003e\u003c/a\u003e DOC/RLS: indicate Python 3.14 support in pyproject.toml and release notes for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5c572b622027f6917c75afd728f201a144fb597d\"\u003e\u003ccode\u003e5c572b6\u003c/code\u003e\u003c/a\u003e CI: add testing with GEOS 3.14 and Python 3.14 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2330\"\u003e#2330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/a9093336b1ea77559d44148a7f1ed92ab3bc2999\"\u003e\u003ccode\u003ea909333\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.1.3 to 3.2.0 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2328\"\u003e#2328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/2086d4428e29da17bafc684acbfb04bb537ce573\"\u003e\u003ccode\u003e2086d44\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2326\"\u003e#2326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/50c1cf30be0e37081991b6d5a5dc3531cfbe35da\"\u003e\u003ccode\u003e50c1cf3\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2321\"\u003e#2321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/39490ab685a42a2c189f2ce7a45b7d07053e8e8f\"\u003e\u003ccode\u003e39490ab\u003c/code\u003e\u003c/a\u003e TST: update test_coverage_union_overlapping_inputs for upstream GEOS change (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5ef437c898b54f723ad0e4a8b6b513b9cc5d68a2\"\u003e\u003ccode\u003e5ef437c\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2320\"\u003e#2320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/7b5ff3d24b7889d35f96ee3ae9ec26250b3d6147\"\u003e\u003ccode\u003e7b5ff3d\u003c/code\u003e\u003c/a\u003e BLD: add Python 3.14 wheels [Bump pypa/cibuildwheel from 3.0.1 to 3.1.3] (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2316\"\u003e#2316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/480dbb14f47b685e95c03654983405185c15babd\"\u003e\u003ccode\u003e480dbb1\u003c/code\u003e\u003c/a\u003e TST: update frechet_distance densify test for latest GEOS main (densify\u0026gt;0.001...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/shapely/shapely/compare/2.0.6...2.1.2\"\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.12 to 0.0.20\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.20\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle messages containing only end boundary, fixes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/38\"\u003e#38\u003c/a\u003e by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect...\n\n_Description has been truncated_","html_url":"https://github.com/newwdead/CRM/pull/24","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/newwdead%2FCRM/issues/24","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/24/packages"},{"uuid":"3551307167","node_id":"PR_kwDOQFDxxc6vnTnP","number":20,"state":"open","title":"Bump the python-minor-patch group in /backend with 26 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-10-24T23:31:26.000Z","updated_at":"2025-10-26T18:01:08.109Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-minor-patch","update_count":26,"packages":[{"name":"fastapi","old_version":"0.115.0","new_version":"0.120.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.32.0","new_version":"0.38.0"},{"name":"pydantic","old_version":"2.9.2","new_version":"2.12.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.6.0","new_version":"2.11.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"sqlalchemy","old_version":"2.0.36","new_version":"2.0.44","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"alembic","old_version":"1.13.3","new_version":"1.17.0","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pandas","old_version":"2.2.3","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"opencv-python-headless","old_version":"4.10.0.84","new_version":"4.12.0.88","repository_url":"https://github.com/opencv/opencv-python"},{"name":"python-multipart","old_version":"0.0.12","new_version":"0.0.20","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"reportlab","old_version":"4.2.5","new_version":"4.4.4"},{"name":"vobject","old_version":"0.9.8","new_version":"0.9.9","repository_url":"https://github.com/py-vobject/vobject"},{"name":"python-jose","old_version":"3.3.0","new_version":"3.5.0"},{"name":"bcrypt","old_version":"4.2.0","new_version":"4.3.0","repository_url":"https://github.com/pyca/bcrypt"},{"name":"qrcode","old_version":"8.0","new_version":"8.2"},{"name":"requests","old_version":"2.32.3","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"prometheus-fastapi-instrumentator","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"prometheus-client","old_version":"0.21.0","new_version":"0.23.1","repository_url":"https://github.com/prometheus/client_python"},{"name":"celery","old_version":"5.4.0","new_version":"5.5.3","repository_url":"https://github.com/celery/celery"},{"name":"redis","old_version":"5.2.0","new_version":"5.3.1","repository_url":"https://github.com/redis/redis-py"},{"name":"python-levenshtein","old_version":"0.26.0","new_version":"0.27.1","repository_url":"https://github.com/rapidfuzz/python-Levenshtein"},{"name":"pytest","old_version":"8.3.3","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"0.24.0","new_version":"0.26.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"bandit","old_version":"1.7.10","new_version":"1.8.6","repository_url":"https://github.com/PyCQA/bandit"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps the python-minor-patch group in /backend with 26 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.115.0` | `0.120.0` |\n| [uvicorn[standard]](https://github.com/Kludex/uvicorn) | `0.32.0` | `0.38.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.9.2` | `2.12.3` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.6.0` | `2.11.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.36` | `2.0.44` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.13.3` | `1.17.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.2.3` | `2.3.3` |\n| [opencv-python-headless](https://github.com/opencv/opencv-python) | `4.10.0.84` | `4.12.0.88` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.12` | `0.0.20` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [reportlab](https://www.reportlab.com/) | `4.2.5` | `4.4.4` |\n| [vobject](https://github.com/py-vobject/vobject) | `0.9.8` | `0.9.9` |\n| [python-jose[cryptography]](https://github.com/mpdavis/python-jose) | `3.3.0` | `3.5.0` |\n| [bcrypt](https://github.com/pyca/bcrypt) | `4.2.0` | `4.3.0` |\n| [qrcode[pil]](https://github.com/lincolnloop/python-qrcode) | `8.0` | `8.2` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.32.5` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `7.0.0` | `7.1.0` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.21.0` | `0.23.1` |\n| [celery](https://github.com/celery/celery) | `5.4.0` | `5.5.3` |\n| [redis](https://github.com/redis/redis-py) | `5.2.0` | `5.3.1` |\n| [python-levenshtein](https://github.com/rapidfuzz/python-Levenshtein) | `0.26.0` | `0.27.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.3` | `8.4.2` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.24.0` | `0.26.0` |\n| [bandit](https://github.com/PyCQA/bandit) | `1.7.10` | `1.8.6` |\n\nUpdates `fastapi` from 0.115.0 to 0.120.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.120.0\u003c/h2\u003e\n\u003cp\u003eThere are no major nor breaking changes in this release. ☕️\u003c/p\u003e\n\u003cp\u003eThe internal reference documentation now uses \u003ccode\u003eannotated_doc.Doc\u003c/code\u003e instead of \u003ccode\u003etyping_extensions.Doc\u003c/code\u003e, this adds a new (very small) dependency on \u003ca href=\"https://github.com/fastapi/annotated-doc\"\u003e\u003ccode\u003eannotated-doc\u003c/code\u003e\u003c/a\u003e, a package made just to provide that \u003ccode\u003eDoc\u003c/code\u003e documentation utility class.\u003c/p\u003e\n\u003cp\u003eI would expect \u003ccode\u003etyping_extensions.Doc\u003c/code\u003e to be deprecated and then removed at some point from \u003ccode\u003etyping_extensions\u003c/code\u003e, for that reason there's the new \u003ccode\u003eannotated-doc\u003c/code\u003e micro-package. If you are curious about this, you can read more in the repo for \u003ca href=\"https://github.com/fastapi/annotated-doc\"\u003e\u003ccode\u003eannotated-doc\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis new version \u003ccode\u003e0.120.0\u003c/code\u003e only contains that transition to the new home package for that utility class \u003ccode\u003eDoc\u003c/code\u003e.\u003c/p\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/14188\"\u003e#14188\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➕ Migrate internal reference documentation from \u003ccode\u003etyping_extensions.Doc\u003c/code\u003e to \u003ccode\u003eannotated_doc.Doc\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14222\"\u003e#14222\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 German LLM prompt and test file. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14189\"\u003e#14189\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⬆ [pre-commit.ci] pre-commit autoupdate. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14181\"\u003e#14181\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\u003c/ul\u003e\n\u003ch2\u003e0.119.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix internal Pydantic v1 compatibility (warnings) for Python 3.14 and Pydantic 2.12.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14186\"\u003e#14186\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📝 Replace \u003ccode\u003estarlette.io\u003c/code\u003e by \u003ccode\u003estarlette.dev\u003c/code\u003e and \u003ccode\u003euvicorn.org\u003c/code\u003e by \u003ccode\u003euvicorn.dev\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14176\"\u003e#14176\u003c/a\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\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🔧 Add sponsor Requestly. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14205\"\u003e#14205\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🔧 Configure reminder for \u003ccode\u003ewaiting\u003c/code\u003e label in \u003ccode\u003eissue-manager\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14156\"\u003e#14156\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.119.0\u003c/h2\u003e\n\u003cp\u003eFastAPI now (temporarily) supports both Pydantic v2 models and \u003ccode\u003epydantic.v1\u003c/code\u003e models at the same time in the same app, to make it easier for any FastAPI apps still using Pydantic v1 to gradually but quickly \u003cstrong\u003emigrate to Pydantic v2\u003c/strong\u003e.\u003c/p\u003e\n\u003cpre lang=\"Python\"\u003e\u003ccode\u003efrom fastapi import FastAPI\nfrom pydantic import BaseModel as BaseModelV2\nfrom pydantic.v1 import BaseModel\n\u003cp\u003eclass Item(BaseModel):\nname: str\ndescription: str | None = None\u003c/p\u003e\n\u003cp\u003eclass ItemV2(BaseModelV2):\ntitle: str\nsummary: str | None = None\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\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/cd40c5b40ffd8ba0c6a6a6c96bbf34ec1cf9c525\"\u003e\u003ccode\u003ecd40c5b\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.120.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1c6ee57bbfeebfa21a393b7939c85d9d4d29f0b0\"\u003e\u003ccode\u003e1c6ee57\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/09f40968cb03e878aa25bc83340f891b09d1e418\"\u003e\u003ccode\u003e09f4096\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d390f2e41fb508de416071d481937bc7be486589\"\u003e\u003ccode\u003ed390f2e\u003c/code\u003e\u003c/a\u003e ➕ Migrate internal reference documentation from \u003ccode\u003etyping_extensions.Doc\u003c/code\u003e to `a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cb7018d782c88b189f11d6141c8231ffb9b403b0\"\u003e\u003ccode\u003ecb7018d\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/a578ea1fd3f0b4918a4a530b85955f9b99db5a3d\"\u003e\u003ccode\u003ea578ea1\u003c/code\u003e\u003c/a\u003e 🛠️ Update German LLM prompt and test file (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14189\"\u003e#14189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9c912d1dd6929795c070cd00f4ee92eefce21559\"\u003e\u003ccode\u003e9c912d1\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/da011f212a27652c31de8a7fda2ce8872f845e27\"\u003e\u003ccode\u003eda011f2\u003c/code\u003e\u003c/a\u003e ⬆ [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14181\"\u003e#14181\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/046d49b5a9ab1113a1dccf6767ab7def7ec35349\"\u003e\u003ccode\u003e046d49b\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/847280450a0e2b6d82f4e912978cbc6e46535e9b\"\u003e\u003ccode\u003e8472804\u003c/code\u003e\u003c/a\u003e 🌐 Sync German docs (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14188\"\u003e#14188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.115.0...0.120.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn[standard]` from 0.32.0 to 0.38.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[standard]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.38.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 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/2723\"\u003eKludex/uvicorn#2723\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NGANAMODEIJunior\"\u003e\u003ccode\u003e@​NGANAMODEIJunior\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2713\"\u003eKludex/uvicorn#2713\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.37.0...0.38.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.37.0...0.38.0\u003c/a\u003e\u003c/p\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\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[standard]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.38.0 (October 18, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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\u003ch2\u003e0.34.2 (April 19, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFlush stdout buffer on Windows to trigger reload (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2604\"\u003e#2604\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.34.1 (April 13, 2025)\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/Kludex/uvicorn/commit/3850ad6520cafb290bd4174fa9c4ca5d33440c82\"\u003e\u003ccode\u003e3850ad6\u003c/code\u003e\u003c/a\u003e Version 0.38.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2733\"\u003e#2733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9b3f17a549ec96f57bf4d975145fc58feefdd4e8\"\u003e\u003ccode\u003e9b3f17a\u003c/code\u003e\u003c/a\u003e Support Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/ce79f95d065c053b36449f67b3b2cefee5ecf167\"\u003e\u003ccode\u003ece79f95\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Add Marcelo Trylesinski to the license (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2699\"\u003e#2699\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2730\"\u003e#2730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/dbf8797b47c79da542f530f2143b8e851e2388fd\"\u003e\u003ccode\u003edbf8797\u003c/code\u003e\u003c/a\u003e docs: add social icons (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2728\"\u003e#2728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/58f28be98eb95c8cf25905df10997b4af81c23e3\"\u003e\u003ccode\u003e58f28be\u003c/code\u003e\u003c/a\u003e Add section about event loop (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2725\"\u003e#2725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/93d95107490d5ea3693601388d7783c450058271\"\u003e\u003ccode\u003e93d9510\u003c/code\u003e\u003c/a\u003e Bump docs dependencies (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2724\"\u003e#2724\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9b1c6c45ed7fe8bd485ddad475f0feff03971af7\"\u003e\u003ccode\u003e9b1c6c4\u003c/code\u003e\u003c/a\u003e Move Marcelo Trylesinski to maintainers in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2719\"\u003e#2719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/57a61d86f2f123b1d35b9ff71e0f29d22d10806f\"\u003e\u003ccode\u003e57a61d8\u003c/code\u003e\u003c/a\u003e Add discord to README (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2718\"\u003e#2718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7ef5f9f5e7e79887b4ab4214c15ab5a9ce63e193\"\u003e\u003ccode\u003e7ef5f9f\u003c/code\u003e\u003c/a\u003e chore(deps): bump astral-sh/setup-uv from 6.7.0 to 6.8.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2717\"\u003e#2717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/6d26d88970379cbf20b4dbf4f70e27f191db4ede\"\u003e\u003ccode\u003e6d26d88\u003c/code\u003e\u003c/a\u003e Update pyproject.toml for PEP639 compliance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2713\"\u003e#2713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.32.0...0.38.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.9.2 to 2.12.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.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRaise a warning when an invalid after model validator function signature is raised 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/12414\"\u003e#12414\u003c/a\u003e.\nStarting in 2.12.0, using class methods for \u003cem\u003eafter\u003c/em\u003e model validators raised an error, but the error wasn't raised concistently. We decided to emit a deprecation warning instead.\u003c/li\u003e\n\u003cli\u003eAdd \u003ca href=\"https://docs.pydantic.dev/latest/api/fields/#pydantic.fields.FieldInfo.asdict\"\u003e\u003ccode\u003eFieldInfo.asdict()\u003c/code\u003e\u003c/a\u003e method, improve documentation around \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/12411\"\u003e#12411\u003c/a\u003e.\nThis also adds back support for mutations on \u003ccode\u003eFieldInfo\u003c/code\u003e classes, that are reused as \u003ccode\u003eAnnotated\u003c/code\u003e metadata. \u003cstrong\u003eHowever\u003c/strong\u003e, note that this is still \u003cem\u003enot\u003c/em\u003e a supported pattern. Instead, please refer to the \u003ca href=\"https://docs.pydantic.dev/latest/examples/dynamic_models/\"\u003eadded example\u003c/a\u003e in the documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-12-release#changes\"\u003eblog post\u003c/a\u003e section on changes was also updated to document the changes related to \u003ccode\u003eserialize_as_any\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.2...v2.12.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.2...v2.12.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.2 2025-10-14\u003c/h2\u003e\n\u003ch2\u003ev2.12.2 (2025-10-14)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRelease a new \u003ccode\u003epydantic-core\u003c/code\u003e version, as a corrupted CPython 3.10 \u003ccode\u003emanylinux2014_aarch64\u003c/code\u003e wheel got uploaded (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1843\"\u003epydantic-core#1843\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with recursive generic models with a parent model class 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/12398\"\u003e#12398\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.1...v2.12.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.1...v2.12.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.1 2025-10-13\u003c/h2\u003e\n\u003ch2\u003ev2.12.1 (2025-10-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the first 2.12 patch release, addressing most (but not all yet) regressions from the initial 2.12.0 release.\u003c/p\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDo not evaluate annotations when inspecting validators and serializers 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/12355\"\u003e#12355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake sure \u003ccode\u003eNone\u003c/code\u003e is converted as \u003ccode\u003eNoneType\u003c/code\u003e in Python 3.14 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/12370\"\u003e#12370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBackport V1 runtime warning when using Python 3.14 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/12367\"\u003e#12367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix error message for invalid validator signatures 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/12366\"\u003e#12366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePopulate field name in \u003ccode\u003eValidationInfo\u003c/code\u003e for validation of default value 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/1826\"\u003epydantic-core#1826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEncode credentials in \u003ccode\u003eMultiHostUrl\u003c/code\u003e builder by \u003ca href=\"https://github.com/willswire\"\u003e\u003ccode\u003e@​willswire\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1829\"\u003epydantic-core#1829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect field serializers when using \u003ccode\u003eserialize_as_any\u003c/code\u003e serialization flag 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/1829\"\u003epydantic-core#1829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix various \u003ccode\u003eRootModel\u003c/code\u003e serialization issues 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/1836\"\u003epydantic-core#1836\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\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/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.12 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported\n\u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRaise a warning when an invalid after model validator function signature is raised 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/12414\"\u003e#12414\u003c/a\u003e.\nStarting in 2.12.0, using class methods for \u003cem\u003eafter\u003c/em\u003e model validators raised an error, but the error wasn't raised concistently. We decided\nto emit a deprecation warning instead.\u003c/li\u003e\n\u003cli\u003eAdd \u003ca href=\"https://docs.pydantic.dev/latest/api/fields/#pydantic.fields.FieldInfo.asdict\"\u003e\u003ccode\u003eFieldInfo.asdict()\u003c/code\u003e\u003c/a\u003e method, improve documentation around \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/12411\"\u003e#12411\u003c/a\u003e.\nThis also add back support for mutations on \u003ccode\u003eFieldInfo\u003c/code\u003e classes, that are reused as \u003ccode\u003eAnnotated\u003c/code\u003e metadata. \u003cstrong\u003eHowever\u003c/strong\u003e, note that this is still\n\u003cem\u003enot\u003c/em\u003e a supported pattern. Instead, please refer to the \u003ca href=\"https://docs.pydantic.dev/latest/examples/dynamic_models/\"\u003eadded example\u003c/a\u003e in the documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-12-release#changes\"\u003eblog post\u003c/a\u003e section on changes was also updated to document the changes related to \u003ccode\u003eserialize_as_any\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003ev2.12.2 (2025-10-14)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.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\u003eRelease a new \u003ccode\u003epydantic-core\u003c/code\u003e version, as a corrupted CPython 3.10 \u003ccode\u003emanylinux2014_aarch64\u003c/code\u003e wheel got uploaded (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1843\"\u003epydantic-core#1843\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with recursive generic models with a parent model class 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/12398\"\u003e#12398\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.1 (2025-10-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the first 2.12 patch release, addressing most (but not all yet) regressions from the initial 2.12.0 release.\u003c/p\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDo not evaluate annotations when inspecting validators and serializers 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/12355\"\u003e#12355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake sure \u003ccode\u003eNone\u003c/code\u003e is converted as \u003ccode\u003eNoneType\u003c/code\u003e in Python 3.14 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/12370\"\u003e#12370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBackport V1 runtime warning when using Python 3.14 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/12367\"\u003e#12367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix error message for invalid validator signatures 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/12366\"\u003e#12366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePopulate field name in \u003ccode\u003eValidationInfo\u003c/code\u003e for validation of default value 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/1826\"\u003epydantic-core#1826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEncode credentials in \u003ccode\u003eMultiHostUrl\u003c/code\u003e builder by \u003ca href=\"https://github.com/willswire\"\u003e\u003ccode\u003e@​willswire\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1829\"\u003epydantic-core#1829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect field serializers when using \u003ccode\u003eserialize_as_any\u003c/code\u003e serialization flag 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/1829\"\u003epydantic-core#1829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix various \u003ccode\u003eRootModel\u003c/code\u003e serialization issues 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/1836\"\u003epydantic-core#1836\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\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/pydantic/pydantic/commit/1a8850d101e67d2744ba8c6286e1172d7cd89d0b\"\u003e\u003ccode\u003e1a8850d\u003c/code\u003e\u003c/a\u003e Prepare release 2.12.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/09dbcf29c73c3fd7fd3ef1edfebe357e807cc9ca\"\u003e\u003ccode\u003e09dbcf2\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eFieldInfo.asdict()\u003c/code\u003e method, improve documentation around \u003ccode\u003eFieldInfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5da43310ec61a7b9b3017b2b9f388e778398a1bc\"\u003e\u003ccode\u003e5da4331\u003c/code\u003e\u003c/a\u003e Improve documentation about serialize as any behavior\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/9c863245ad3799ab331f33b52e2d7441e9c1191e\"\u003e\u003ccode\u003e9c86324\u003c/code\u003e\u003c/a\u003e Raise a warning when an invalid after model validator function signature is r...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/36a73c6ed53df7f1cad3343bc811e1dd3f52d26f\"\u003e\u003ccode\u003e36a73c6\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003epydantic-extra-types\u003c/code\u003e dependency to version \u003ccode\u003e\u0026gt;=2.10.6\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1e616a3a6fa0201f840c08143cac883e56a2d9df\"\u003e\u003ccode\u003e1e616a3\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/dc302e2d09f0eed14729f69bc61a258f1f35d35c\"\u003e\u003ccode\u003edc302e2\u003c/code\u003e\u003c/a\u003e Fix issue with recursive generic models with a parent model class\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/6876485d0cffeb66c915695574344ae4b03645a7\"\u003e\u003ccode\u003e6876485\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epydantic-core\u003c/code\u003e to v2.41.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b4076c66773b514d4891f036a4cc562b8ff0ff21\"\u003e\u003ccode\u003eb4076c6\u003c/code\u003e\u003c/a\u003e Prepare release 2.12.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b67f07291167b4005a6eeee05fcad67b43a53f41\"\u003e\u003ccode\u003eb67f072\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epydantic-core\u003c/code\u003e to v2.41.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.9.2...v2.12.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.6.0 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.6.0...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.36 to 2.0.44\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.44\u003c/h1\u003e\n\u003cp\u003eReleased: October 10, 2025\u003c/p\u003e\n\u003ch2\u003eplatform\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[platform] [bug]\u003c/strong\u003e Unblocked automatic greenlet installation for Python 3.14 now that\nthere are greenlet wheels on pypi for python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [usecase]\u003c/strong\u003e The way ORM Annotated Declarative interprets Python \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e type aliases\nin \u003ccode\u003eMapped[]\u003c/code\u003e annotations has been refined to expand the lookup scheme. A\n\u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e type can now be resolved based on either its direct presence in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e or its immediate resolved\nvalue, as long as a recursive lookup across multiple \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e types is\nnot required for it to resolve. This change reverses part of the\nrestrictions introduced in 2.0.37 as part of \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/11955\"\u003e#11955\u003c/a\u003e, which\ndeprecated (and disallowed in 2.1) the ability to resolve any \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e\ntype that was not explicitly present in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e. Recursive lookups of\n\u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e types remains deprecated in 2.0 and disallowed in version 2.1,\nas do implicit lookups of \u003ccode\u003eNewType\u003c/code\u003e types without an entry in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eAdditionally, new support has been added for generic \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e aliases that\nrefer to \u003ca href=\"https://peps.python.org/pep-0593\"\u003ePEP 593\u003c/a\u003e \u003ccode\u003eAnnotated\u003c/code\u003e constructs containing\n\u003ccode\u003e_orm.mapped_column()\u003c/code\u003e configurations. See the sections below for\nexamples.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12829\"\u003e#12829\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed a caching issue where \u003ccode\u003e_orm.with_loader_criteria()\u003c/code\u003e would\nincorrectly reuse cached bound parameter values when used with\n\u003ccode\u003e_sql.CompoundSelect\u003c/code\u003e constructs such as \u003ccode\u003e_sql.union()\u003c/code\u003e. The\nissue was caused by the cache key for compound selects not including the\nexecution options that are part of the \u003ccode\u003e_sql.Executable\u003c/code\u003e base class,\nwhich \u003ccode\u003e_orm.with_loader_criteria()\u003c/code\u003e uses to apply its criteria\ndynamically. The fix ensures that compound selects and other executable\nconstructs properly include execution options in their cache key traversal.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12905\"\u003e#12905\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\u003cstrong\u003e[engine] [bug]\u003c/strong\u003e Implemented initial support for free-threaded Python by adding new tests\nand reworking the test harness to include Python 3.13t and Python 3.14t in\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 `alembic` from 1.13.3 to 1.17.0\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.17.0\u003c/h1\u003e\n\u003cp\u003eReleased: October 11, 2025\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[change] [tests]\u003c/strong\u003e The top-level test runner has been changed to use \u003ccode\u003enox\u003c/code\u003e, adding a\n\u003ccode\u003enoxfile.py\u003c/code\u003e as well as some included modules.   The \u003ccode\u003etox.ini\u003c/code\u003e file\nremains in place so that \u003ccode\u003etox\u003c/code\u003e runs will continue to function in the near\nterm, however it will be eventually removed and improvements and\nmaintenance going forward will be only towards \u003ccode\u003enoxfile.py\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[change] [general]\u003c/strong\u003e The minimum Python version is now 3.10, as Python 3.9 is EOL.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\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 `psycopg2-binary` 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-binary'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\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 `opencv-python-headless` from 4.10.0.84 to 4.12.0.88\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/opencv/opencv-python/releases\"\u003eopencv-python-headless's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.12.0.88\u003c/h2\u003e\n\u003cp\u003eComplete OpenCV 4.12.0 changelog: \u003ca href=\"https://github.com/opencv/opencv/wiki/OpenCV-Change-Logs#version4120\"\u003ehttps://github.com/opencv/opencv/wiki/OpenCV-Change-Logs#version4120\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePython:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded libavif to the package and corresponding image format support on Linux and Mac OS. Windows is in progress.\u003c/li\u003e\n\u003cli\u003eEnabled GIF support by default.\u003c/li\u003e\n\u003cli\u003eUpdated Numpy dependency rules. Packages for Python 3.9+ are built with Numpy 2.x. Packages for older Python version are built with Numpy 1.x.\u003c/li\u003e\n\u003cli\u003eImproved libjpeg-turbo performance in Windows builds (added NASM and assembly branches).\u003c/li\u003e\n\u003cli\u003eMade DNN, FLANN, G-API modules optional during the package build (bindings generation and typing).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.11.0.86\u003c/h2\u003e\n\u003cp\u003eComplete OpenCV 4.11.0 changelog: \u003ca href=\"https://github.com/opencv/opencv/wiki/OpenCV-Change-Logs#version4110\"\u003ehttps://github.com/opencv/opencv/wiki/OpenCV-Change-Logs#version4110\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePython:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded Python 3.13 support\u003c/li\u003e\n\u003cli\u003eFixed build with Python 3.12\u003c/li\u003e\n\u003cli\u003eFixed confg path for the case when Python Limited API is disabled\u003c/li\u003e\n\u003cli\u003eFixed build with system wide CMake, if CMake is not available with pip\u003c/li\u003e\n\u003cli\u003eEnabled all jpeg-turbo optimizations on Windows (assembler)\u003c/li\u003e\n\u003cli\u003eSplit Python type stubs per-module to allow modules list customization\u003c/li\u003e\n\u003cli\u003eMinimal Mac OS raised to 13.0.\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\u003eSee full diff in \u003ca href=\"https://github.com/opencv/opencv-python/commits\"\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.12 to 0.0.20\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.20\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle messages containing only end boundary, fixes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/38\"\u003e#38\u003c/a\u003e 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/142\"\u003eKludex/python-multipart#142\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/Mr-Sunglasses\"\u003e\u003ccode\u003e@​Mr-Sunglasses\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/185\"\u003eKludex/python-multipart#185\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.19...0.0.20\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.19...0.0.20\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.19\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDon't warn when CRLF is found after last 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/193\"\u003eKludex/python-multipart#193\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/python-multipart/compare/0.0.18...0.0.19\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.18...0.0.19\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.18\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHard break if found data after last boundary on \u003ccode\u003eMultipartParser\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/189\"\u003eKludex/python-multipart#189\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/python-multipart/compare/0.0.17...0.0.18\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.17...0.0.18\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.17\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle PermissionError in fallback code for old import name by \u003ca href=\"https://github.com/defnull\"\u003e\u003ccode\u003e@​defnull\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/182\"\u003eKludex/python-multipart#182\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/python-multipart/compare/0.0.16...0.0.17\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.16...0.0.17\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd dunder attributes to \u003ccode\u003emultipart\u003c/code\u003e package 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/177\"\u003eKludex/python-multipart#177\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/python-multipart/compare/0.0.15...0.0.16\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.15...0.0.16\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.15\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace \u003ccode\u003eFutureWarning\u003c/code\u003e to \u003ccode\u003ePendingDeprecationWarning\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/174\"\u003e#174\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd missing files to SDist \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/171\"\u003e#171\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\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/master/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.20 (2024-12-16)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle messages containing only end boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/142\"\u003e#142\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.19 (2024-11-30)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDon't warn when CRLF is found after last boundary on \u003ccode\u003eMultipartParser\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/193\"\u003e#193\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.18 (2024-11-28)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHard break if found data after last boundary on \u003ccode\u003eMultipartParser\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/189\"\u003e#189\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.17 (2024-10-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle PermissionError in fallback code for old import name \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/182\"\u003e#182\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.16 (2024-10-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd dunder attributes to \u003ccode\u003emultipart\u003c/code\u003e package \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/177\"\u003e#177\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.15 (2024-10-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace \u003ccode\u003eFutureWarning\u003c/code\u003e to \u003ccode\u003ePendingDeprecationWarning\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/174\"\u003e#174\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd missing files to SDist \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/171\"\u003e#171\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.14 (2024-10-24)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix import scheme for \u003ccode\u003emultipart\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/168\"\u003e#168\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.13 (2024-10-20)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename import to \u003ccode\u003epython_multipart\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/166\"\u003e#166\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/b083cef4d6c68cf036bae1d9c68a986c6e1e3cc4\"\u003e\u003ccode\u003eb083cef\u003c/code\u003e\u003c/a\u003e Version 0.0.20 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/197\"\u003e#197\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/04d3cf5ef58c8ac8d28d36ea410fba131f5eff3f\"\u003e\u003ccode\u003e04d3cf5\u003c/code\u003e\u003c/a\u003e Handle messages containing only end boundary, fixes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/38\"\u003e#38\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/142\"\u003e#142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/f1c5a2821b24786f418ae535aa2fbb5ae4c60d6c\"\u003e\u003ccode\u003ef1c5a28\u003c/code\u003e\u003c/a\u003e feat: Add python 3.13 in CI matrix. (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/185\"\u003e#185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/4bffa0c7c6c836ace85486b95c1e144e340059d8\"\u003e\u003ccode\u003e4bffa0c\u003c/code\u003e\u003c/a\u003e doc: A file parameter is not a field (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/127\"\u003e#127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6f3295bc79a1f8decdb23ce1720a6428908d8e33\"\u003e\u003ccode\u003e6f3295b\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 3 to 4 in the github-actions group (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/194\"\u003e#194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/c4fe4d3cebc08c660e57dd709af1ffa7059b3177\"\u003e\u003ccode\u003ec4fe4d3\u003c/code\u003e\u003c/a\u003e Don't warn when CRLF is found after last boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/5b1aed83adadbff1677779cd...\n\n_Description has been truncated_","html_url":"https://github.com/newwdead/CRM/pull/20","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/newwdead%2FCRM/issues/20","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/20/packages"},{"uuid":"3508445785","node_id":"PR_kwDOPWLP8s6tYMBm","number":87,"state":"open","title":"chore(deps): bump qrcode from 7.4.2 to 8.2 in /backend","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":"2025-10-13T04:48:33.000Z","updated_at":"2025-10-19T20:54:26.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"qrcode","old_version":"7.4.2","new_version":"8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps [qrcode](https://github.com/lincolnloop/python-qrcode) from 7.4.2 to 8.2.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lincolnloop/python-qrcode/blob/main/CHANGES.rst\"\u003eqrcode's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2 (01 May 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize QRColorMask apply_mask method for enhanced performance\u003c/li\u003e\n\u003cli\u003eFix typos on StyledPilImage embeded_* parameters.\nThe old parameters with the typos are still accepted\nfor backward compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1 (02 April 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0 (27 September 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.11 and 3.12.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python \u0026lt;=3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange local development setup to use Poetry_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTestsuite and code quality checks are done through Github Actions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCode quality and formatting utilises ruff_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003etyping_extensions\u003c/code\u003e as a dependency, as it's no longer required\nwith having Python 3.9+ as a requirement.\nhaving Python 3.9+ as a requirement.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOnly allow high error correction rate (\u003ccode\u003eqrcode.ERROR_CORRECT_H\u003c/code\u003e)\nwhen generating\nQR codes with embedded images to ensure content is readable\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _Poetry: \u003ca href=\"https://python-poetry.org\"\u003ehttps://python-poetry.org\u003c/a\u003e\n.. _ruff: \u003ca href=\"https://astral.sh/ruff\"\u003ehttps://astral.sh/ruff\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/lincolnloop/python-qrcode/commit/3704f57a1107dbf553a50f5b531da3859abe19cf\"\u003e\u003ccode\u003e3704f57\u003c/code\u003e\u003c/a\u003e Preparing release 8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/b593a2b86d8f9cd1bc24cc5623ee47cf1aa076b5\"\u003e\u003ccode\u003eb593a2b\u003c/code\u003e\u003c/a\u003e Fix embeded_* typo on paremeters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/d2674f83092d3573e164bb83468e51f59c85bf50\"\u003e\u003ccode\u003ed2674f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/383\"\u003e#383\u003c/a\u003e from btimby/spelling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/2ced7b4b38ea3132793723bbab588d5676fc8bc7\"\u003e\u003ccode\u003e2ced7b4\u003c/code\u003e\u003c/a\u003e Ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/c5e3f0180e025d9c0fd6adf8ed3c9998073c6137\"\u003e\u003ccode\u003ec5e3f01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/372\"\u003e#372\u003c/a\u003e from smalyu/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/cd3cd7bf87fc81860481902ca22d5b7463332b4b\"\u003e\u003ccode\u003ecd3cd7b\u003c/code\u003e\u003c/a\u003e Release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/5dcf89c56417ad37de8dba953f974324ae7b9271\"\u003e\u003ccode\u003e5dcf89c\u003c/code\u003e\u003c/a\u003e Preparing release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/10da1ba2c95886312097608bd4632ba34765e0e0\"\u003e\u003ccode\u003e10da1ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/386\"\u003e#386\u003c/a\u003e from hugovk/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/7cb996d04c6536a2dbf84cccf9fc471a200f0072\"\u003e\u003ccode\u003e7cb996d\u003c/code\u003e\u003c/a\u003e Upgrade Python syntax with pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/dc4831bde0c432e5d878b75818af38e9dc80cc87\"\u003e\u003ccode\u003edc4831b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lincolnloop/python-qrcode/compare/v7.4.2...v8.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=qrcode\u0026package-manager=pip\u0026previous-version=7.4.2\u0026new-version=8.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/Hanalyx/OpenWatch/pull/87","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hanalyx%2FOpenWatch/issues/87","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/87/packages"},{"uuid":"2897227159","node_id":"PR_kwDOA7w_yM6ssC2X","number":973,"state":"closed","title":"chore(deps): update qrcode requirement from ==7.4.* to ==8.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-10-08T12:49:48.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-08T12:11:51.000Z","updated_at":"2025-10-08T12:49:48.000Z","time_to_close":2277,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): update","packages":[{"name":"qrcode","old_version":"==7.4.*","new_version":"==8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [qrcode](https://github.com/lincolnloop/python-qrcode) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lincolnloop/python-qrcode/blob/main/CHANGES.rst\"\u003eqrcode's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2 (01 May 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize QRColorMask apply_mask method for enhanced performance\u003c/li\u003e\n\u003cli\u003eFix typos on StyledPilImage embeded_* parameters.\nThe old parameters with the typos are still accepted\nfor backward compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1 (02 April 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0 (27 September 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.11 and 3.12.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python \u0026lt;=3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange local development setup to use Poetry_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTestsuite and code quality checks are done through Github Actions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCode quality and formatting utilises ruff_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003etyping_extensions\u003c/code\u003e as a dependency, as it's no longer required\nwith having Python 3.9+ as a requirement.\nhaving Python 3.9+ as a requirement.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOnly allow high error correction rate (\u003ccode\u003eqrcode.ERROR_CORRECT_H\u003c/code\u003e)\nwhen generating\nQR codes with embedded images to ensure content is readable\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _Poetry: \u003ca href=\"https://python-poetry.org\"\u003ehttps://python-poetry.org\u003c/a\u003e\n.. _ruff: \u003ca href=\"https://astral.sh/ruff\"\u003ehttps://astral.sh/ruff\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.4.2 (6 February 2023)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow \u003ccode\u003epypng\u003c/code\u003e factory to allow for saving to a string (like\n\u003ccode\u003eqr.save(\u0026quot;some_file.png\u0026quot;)\u003c/code\u003e) in addition to file-like objects.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.4.1 (3 February 2023)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix bad over-optimization in v7.4 that broke large QR codes. Thanks to\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/lincolnloop/python-qrcode/commit/3704f57a1107dbf553a50f5b531da3859abe19cf\"\u003e\u003ccode\u003e3704f57\u003c/code\u003e\u003c/a\u003e Preparing release 8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/b593a2b86d8f9cd1bc24cc5623ee47cf1aa076b5\"\u003e\u003ccode\u003eb593a2b\u003c/code\u003e\u003c/a\u003e Fix embeded_* typo on paremeters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/d2674f83092d3573e164bb83468e51f59c85bf50\"\u003e\u003ccode\u003ed2674f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/383\"\u003e#383\u003c/a\u003e from btimby/spelling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/2ced7b4b38ea3132793723bbab588d5676fc8bc7\"\u003e\u003ccode\u003e2ced7b4\u003c/code\u003e\u003c/a\u003e Ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/c5e3f0180e025d9c0fd6adf8ed3c9998073c6137\"\u003e\u003ccode\u003ec5e3f01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/372\"\u003e#372\u003c/a\u003e from smalyu/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/cd3cd7bf87fc81860481902ca22d5b7463332b4b\"\u003e\u003ccode\u003ecd3cd7b\u003c/code\u003e\u003c/a\u003e Release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/5dcf89c56417ad37de8dba953f974324ae7b9271\"\u003e\u003ccode\u003e5dcf89c\u003c/code\u003e\u003c/a\u003e Preparing release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/10da1ba2c95886312097608bd4632ba34765e0e0\"\u003e\u003ccode\u003e10da1ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/386\"\u003e#386\u003c/a\u003e from hugovk/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/7cb996d04c6536a2dbf84cccf9fc471a200f0072\"\u003e\u003ccode\u003e7cb996d\u003c/code\u003e\u003c/a\u003e Upgrade Python syntax with pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/dc4831bde0c432e5d878b75818af38e9dc80cc87\"\u003e\u003ccode\u003edc4831b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lincolnloop/python-qrcode/compare/v7.4...v8.2\"\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 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/fossasia/eventyay-tickets/pull/973","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/fossasia%2Feventyay-tickets/issues/973","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/973/packages"},{"uuid":"3459843451","node_id":"PR_kwDOEB4avM6q1chY","number":664,"state":"open","title":"Bump the all-dependencies group across 1 directory with 14 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-27T06:19:21.000Z","updated_at":"2025-09-27T18:03:09.626Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-dependencies","update_count":14,"packages":[{"name":"botocore","old_version":"1.40.31","new_version":"1.40.40","repository_url":"https://github.com/boto/botocore"},{"name":"cython","old_version":"3.1.3","new_version":"3.1.4","repository_url":"https://github.com/cython/cython"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.0","repository_url":"https://github.com/jazzband/django-two-factor-auth"},{"name":"prometheus-client","old_version":"0.22.1","new_version":"0.23.1","repository_url":"https://github.com/prometheus/client_python"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/giampaolo/psutil"},{"name":"sentry-sdk","old_version":"2.38.0","new_version":"2.39.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"coverage","old_version":"7.10.6","new_version":"7.10.7","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"djangorestframework-stubs","old_version":"3.16.2","new_version":"3.16.3","repository_url":"https://github.com/typeddjango/djangorestframework-stubs"},{"name":"mypy","old_version":"1.18.1","new_version":"1.18.2","repository_url":"https://github.com/python/mypy"},{"name":"ruff","old_version":"0.13.0","new_version":"0.13.2","repository_url":"https://github.com/astral-sh/ruff"},{"name":"asgiref","old_version":"3.9.1","new_version":"3.9.2","repository_url":"https://github.com/django/asgiref"},{"name":"boto3","old_version":"1.40.31","new_version":"1.40.40","repository_url":"https://github.com/boto/boto3"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"qrcode","old_version":"7.4.2","new_version":"8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-dependencies group with 14 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [botocore](https://github.com/boto/botocore) | `1.40.31` | `1.40.40` |\n| [cython](https://github.com/cython/cython) | `3.1.3` | `3.1.4` |\n| [django-two-factor-auth](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.0` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.1` | `0.23.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.38.0` | `2.39.0` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.10.6` | `7.10.7` |\n| [djangorestframework-stubs](https://github.com/typeddjango/djangorestframework-stubs) | `3.16.2` | `3.16.3` |\n| [mypy](https://github.com/python/mypy) | `1.18.1` | `1.18.2` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.13.0` | `0.13.2` |\n| [asgiref](https://github.com/django/asgiref) | `3.9.1` | `3.9.2` |\n| [boto3](https://github.com/boto/boto3) | `1.40.31` | `1.40.40` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [qrcode](https://github.com/lincolnloop/python-qrcode) | `7.4.2` | `8.2` |\n\n\nUpdates `botocore` from 1.40.31 to 1.40.40\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/dc5ce63e11ad7bea6673caece94030d7be1bb65a\"\u003e\u003ccode\u003edc5ce63\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.40'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/47bf642a85b99fcccbceffe9a8176ba4e799bbfa\"\u003e\u003ccode\u003e47bf642\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.40\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/7aba801c56fd4994ae2cf101ec6ff542f6ca480d\"\u003e\u003ccode\u003e7aba801\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/c6cd61c0c49a684f720ca8f16ca87a3ed3c7a842\"\u003e\u003ccode\u003ec6cd61c\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/a50fa088011949427d58698e5407d0ac6bc336f2\"\u003e\u003ccode\u003ea50fa08\u003c/code\u003e\u003c/a\u003e Fix except block issue in s3 integ tests (\u003ca href=\"https://redirect.github.com/boto/botocore/issues/3567\"\u003e#3567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/52dfbc24ae75261706573f2953d5bb678f067164\"\u003e\u003ccode\u003e52dfbc2\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.39'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/3e17a0535d5a34b2799c9d0250881f5969725e5b\"\u003e\u003ccode\u003e3e17a05\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.39' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/ffb96fc31dc0342c4f57422b4e3afb4642b7643f\"\u003e\u003ccode\u003effb96fc\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/3c7e1aaf8f4b1c22a156d437da9d79bdc95a289e\"\u003e\u003ccode\u003e3c7e1aa\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/4ba20e8142dba092be4aac98b59a0ad17414d88a\"\u003e\u003ccode\u003e4ba20e8\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/botocore/compare/1.40.31...1.40.40\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cython` from 3.1.3 to 3.1.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/cython/cython/blob/master/CHANGES.rst\"\u003ecython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.1.4 (2025-09-16)\u003c/h1\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeclarations for the new \u003ccode\u003ePyUnstable_*()\u003c/code\u003e refcounting C-API functions in Py3.14 were added.\n(Github issue :issue:\u003ccode\u003e6836\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe monitoring code could crash on tracing.\n(Github issue :issue:\u003ccode\u003e7050\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eInitialising the monitoring code could fail with a CPython exception.\nSee \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1790#issuecomment-3257410149\"\u003enedbat/coveragepy#1790\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOptimised integer shifting triggered undefined behaviour in C.\n(Github issue :issue:\u003ccode\u003e7089\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeallocating objects that inherit from external types defined in pxd files\ncould run into an infinite loop.\n(Github issue :issue:\u003ccode\u003e7143\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eA reference to metaclasses could be leaked on instantiation.\n(Github issue :issue:\u003ccode\u003e7130\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e(Unlikely) error handling during empty builtin container tests was ineffective.\n(Github issue :issue:\u003ccode\u003e7190\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eGenerated \u003ccode\u003e*_api.h\u003c/code\u003e files used potentially unknown Cython configuration macros.\n(Github issue :issue:\u003ccode\u003e7108\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003ecythonize()\u003c/code\u003e avoids parallel compiler runs on systems using \u003ccode\u003espawn()\u003c/code\u003e in multiprocessing.\nPatch by Marcel Bargull.  (Github issue :issue:\u003ccode\u003e3262\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ccode\u003e@cython.ufunc\u003c/code\u003e  decorator was missing in type checker stubs.\nPatch by jayClean.  (Github issue :issue:\u003ccode\u003e7109\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/cython/cython/commit/236e4a3ccd24d4e24c9d7c40a8580d359663832c\"\u003e\u003ccode\u003e236e4a3\u003c/code\u003e\u003c/a\u003e Build: Update cibuildwheel version to 3.1.4.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/cb2e2a3e0ee746df3296742d4d55d0d79e0bd6f5\"\u003e\u003ccode\u003ecb2e2a3\u003c/code\u003e\u003c/a\u003e Prepare release of 3.1.4.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/4fdb99040b19270e172aba671d4a9a9ae091b872\"\u003e\u003ccode\u003e4fdb990\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/fa78291097175b9fcd32c5012bb6239bdf06e467\"\u003e\u003ccode\u003efa78291\u003c/code\u003e\u003c/a\u003e Remove confusing \u0026quot;optionally\u0026quot; from embedded docs (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7071\"\u003e#7071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/2886cd958ed0b7383ae86d59ddc74bb13e9d3336\"\u003e\u003ccode\u003e2886cd9\u003c/code\u003e\u003c/a\u003e Fix error handling in empty container test (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7096\"\u003eGH-7096\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/8993322ace48de38650efe82f6a529e72781ab19\"\u003e\u003ccode\u003e8993322\u003c/code\u003e\u003c/a\u003e Library: Add declarations for new refcounting C-API functions in Py3.14.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/dc54ef2e7aa529a9a02debb2378865475ca08ad8\"\u003e\u003ccode\u003edc54ef2\u003c/code\u003e\u003c/a\u003e Simpify some conditions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/41f985e8fbcc203f61c9b4720ee605ac582ce18b\"\u003e\u003ccode\u003e41f985e\u003c/code\u003e\u003c/a\u003e Bump OS X runner version to \u0026quot;macos-latest\u0026quot; (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7041\"\u003eGH-7041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/dd18f11f9203b68a6acba0b73c5958229c7298dc\"\u003e\u003ccode\u003edd18f11\u003c/code\u003e\u003c/a\u003e Disable parallel cythonization for \u0026quot;spawn\u0026quot; start method. (\u003ca href=\"https://redirect.github.com/cython/cython/issues/3263\"\u003eGH-3263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/be16c519e1548465836f8223ea18fb26b32df919\"\u003e\u003ccode\u003ebe16c51\u003c/code\u003e\u003c/a\u003e Fix a small typo (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7125\"\u003e#7125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/cython/cython/compare/3.1.3...3.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-two-factor-auth` from 1.17.0 to 1.18.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/django-two-factor-auth/releases\"\u003edjango-two-factor-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.18.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocumentation for setting yubikey support forgot to inform users they would\nneed to add our yubikey plugin to \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove reference to release-notes that had been missed, docs now build\nwithout warnings\u003c/li\u003e\n\u003cli\u003eWebAuthn: avoid submitting the wrong form\u003c/li\u003e\n\u003cli\u003eEmail gateway: tell user to use correct django-otp plugin\u003c/li\u003e\n\u003cli\u003eFix infinite redirect on admin site with AdminSiteOTPRequiredMixin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow qrcode 8.x.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ephonenumbers\u003c/code\u003e is no longer a hard requirement for users who don't require it.\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eEmailDevice.confirmed\u003c/code\u003e default to \u003ccode\u003eFalse\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAny \u003ccode\u003eStaticDevice\u003c/code\u003e can be used as backup tokens, not just those labelled\n\u0026quot;backup\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Django 5.2\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13\u003c/li\u003e\n\u003cli\u003eDjango check for \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e to make sure \u003ccode\u003etwo_factor\u003c/code\u003e is present and\ncomes before its plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\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/jazzband/django-two-factor-auth/blob/master/CHANGELOG.md\"\u003edjango-two-factor-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.18.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocumentation for setting yubikey support forgot to inform users they would\nneed to add our yubikey plugin to \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove reference to release-notes that had been missed, docs now build\nwithout warnings\u003c/li\u003e\n\u003cli\u003eWebAuthn: avoid submitting the wrong form\u003c/li\u003e\n\u003cli\u003eEmail gateway: tell user to use correct django-otp plugin\u003c/li\u003e\n\u003cli\u003eFix infinite redirect on admin site with AdminSiteOTPRequiredMixin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow qrcode 8.x.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ephonenumbers\u003c/code\u003e is no longer a hard requirement for users who don't require it.\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eEmailDevice.confirmed\u003c/code\u003e default to \u003ccode\u003eFalse\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAny \u003ccode\u003eStaticDevice\u003c/code\u003e can be used as backup tokens, not just those labelled\n\u0026quot;backup\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Django 5.2\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13\u003c/li\u003e\n\u003cli\u003eDjango check for \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e to make sure \u003ccode\u003etwo_factor\u003c/code\u003e is present and\ncomes before its plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\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/jazzband/django-two-factor-auth/commit/7405b6fd545ddbbd67d28292fca2c8ef6cf0de92\"\u003e\u003ccode\u003e7405b6f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/774\"\u003e#774\u003c/a\u003e from moggers87/release-1.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/b47945c8188e46ad2f64bf929c1a745682b6de15\"\u003e\u003ccode\u003eb47945c\u003c/code\u003e\u003c/a\u003e Update CHANGELOG with latest changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/b20741c609ca3fd3fe52dd3cfe1ebc3e98ce2383\"\u003e\u003ccode\u003eb20741c\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into release-1.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/966dab4c5bdf11b88e42bc820c8adea684b4e0d0\"\u003e\u003ccode\u003e966dab4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/775\"\u003e#775\u003c/a\u003e from claudep/phoneplugin2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/9c72f871f0ebd3bede20d823372b02608480c4c7\"\u003e\u003ccode\u003e9c72f87\u003c/code\u003e\u003c/a\u003e Refs \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/469\"\u003e#469\u003c/a\u003e - Only import phonenumber functions when plugin is installed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/ec0923bf400d6faf3c82acff312c1fe5add70047\"\u003e\u003ccode\u003eec0923b\u003c/code\u003e\u003c/a\u003e Pull latest translations from Transifex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/6828d0bb2ee8f5e30d2c63b552ae895b3fe313b0\"\u003e\u003ccode\u003e6828d0b\u003c/code\u003e\u003c/a\u003e Prepare 1.18.0 for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/656bf9e4471990e32f3a4ee78f610cbeb114cd16\"\u003e\u003ccode\u003e656bf9e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/773\"\u003e#773\u003c/a\u003e from jazzband/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/6ba47715c163dc82aa89c5f2f4373a361b7f9b59\"\u003e\u003ccode\u003e6ba4771\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/763\"\u003e#763\u003c/a\u003e from moggers87/647-check-installed-apps-order\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/2f50ea0fd0d73c653bb377b384dc2dd5afb387c1\"\u003e\u003ccode\u003e2f50ea0\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jazzband/django-two-factor-auth/compare/1.17.0...1.18.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-client` from 0.22.1 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prometheus/client_python/releases\"\u003eprometheus-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.23.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use tuples instead of packaging Version by \u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\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/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUTF-8 Content Negotiation by \u003ca href=\"https://github.com/ywwg\"\u003e\u003ccode\u003e@​ywwg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1102\"\u003eprometheus/client_python#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe include test data by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove parser performance by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1117\"\u003eprometheus/client_python#1117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support to \u003ccode\u003ewrite_to_textfile\u003c/code\u003e for custom tmpdir by \u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOM text exposition for NH by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1087\"\u003eprometheus/client_python#1087\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bug which caused metric publishing to not accept query string parameters in ASGI app by \u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit native histograms only when OM 2.0.0 is requested by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1128\"\u003eprometheus/client_python#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove space after comma in openmetrics exposition by \u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue parsing double spaces after # HELP/# TYPE by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1134\"\u003eprometheus/client_python#1134\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/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.22.1...v0.23.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.22.1...v0.23.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/prometheus/client_python/commit/8746c49a76a7929795fab7b593b1c44dc8c972d2\"\u003e\u003ccode\u003e8746c49\u003c/code\u003e\u003c/a\u003e Release 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/266beb2567e0040a5790836c32de5a643d5177e4\"\u003e\u003ccode\u003e266beb2\u003c/code\u003e\u003c/a\u003e fix: use tuples instead of packaging Version (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1136\"\u003e#1136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/f9471403a82de6af93feeac2d38938ca1c384b6d\"\u003e\u003ccode\u003ef947140\u003c/code\u003e\u003c/a\u003e fix: Use \u003ccode\u003easyncio.new_event_loop()\u003c/code\u003e to create event loop for tests (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1138\"\u003e#1138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/b9e78a3f701fd442f57db23701c2021a529a84c3\"\u003e\u003ccode\u003eb9e78a3\u003c/code\u003e\u003c/a\u003e Release 0.23.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/b3fbbca891a6c6d07b83a3680919956a3c3ab523\"\u003e\u003ccode\u003eb3fbbca\u003c/code\u003e\u003c/a\u003e Fix issue parsing double spaces after # HELP/# TYPE (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1134\"\u003e#1134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/47d2b416d75f5569863e2bb08a15b58218563814\"\u003e\u003ccode\u003e47d2b41\u003c/code\u003e\u003c/a\u003e Do not use global when only reading variable (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1133\"\u003e#1133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/4de31eee009a527ba7a5cda76a4aef403df7ab0d\"\u003e\u003ccode\u003e4de31ee\u003c/code\u003e\u003c/a\u003e fix: remove space after comma in openmetrics exposition (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1132\"\u003e#1132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/3586355e648f1d8a058cdb711bc2ce920ce58ca4\"\u003e\u003ccode\u003e3586355\u003c/code\u003e\u003c/a\u003e Emit native histograms only when OM 2.0.0 is requested (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1128\"\u003e#1128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/9e3eb6c7e146d8003d12e24db56f5abfcc0bbef6\"\u003e\u003ccode\u003e9e3eb6c\u003c/code\u003e\u003c/a\u003e Fix bug which caused metric publishing to not accept query string parameters ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/d358f469a7bc2480005775a9be8de30c20c88ab6\"\u003e\u003ccode\u003ed358f46\u003c/code\u003e\u003c/a\u003e Bump flake8 libraries (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1127\"\u003e#1127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.22.1...v0.23.1\"\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 `sentry-sdk` from 2.38.0 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/getsentry/sentry-python/releases\"\u003esentry-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.39.0\u003c/h2\u003e\n\u003ch3\u003eVarious fixes \u0026amp; improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix(AI): Make agents integrations set the span status in case of error (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4820\"\u003e#4820\u003c/a\u003e) by \u003ca href=\"https://github.com/antonpirker\"\u003e\u003ccode\u003e@​antonpirker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix(dedupe): Use weakref in dedupe where possible (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4834\"\u003e#4834\u003c/a\u003e) by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix(Django): Avoid evaluating complex Django object in span.data/span.attributes (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4804\"\u003e#4804\u003c/a\u003e) by \u003ca href=\"https://github.com/antonpirker\"\u003e\u003ccode\u003e@​antonpirker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix(Langchain): Don't record tool call output if not include_prompt / should_send_default_pii (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4836\"\u003e#4836\u003c/a\u003e) by \u003ca href=\"https://github.com/shellmayr\"\u003e\u003ccode\u003e@​shellmayr\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix(OpenAI): Don't swallow userland exceptions in openai (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4861\"\u003e#4861\u003c/a\u003e) by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update contributing guidelines with instructions to run tests with tox (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4857\"\u003e#4857\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest(Spark): Improve \u003ccode\u003etest_spark\u003c/code\u003e speed (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4822\"\u003e#4822\u003c/a\u003e) by \u003ca href=\"https://github.com/mgaligniana\"\u003e\u003ccode\u003e@​mgaligniana\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNote: This is my last release. So long, and thanks for all the fish! by \u003ca href=\"https://github.com/antonpirker\"\u003e\u003ccode\u003e@​antonpirker\u003c/code\u003e\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/getsentry/sentry-python/blob/master/CHANGELOG.md\"\u003esentry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.39.0\u003c/h2\u003e\n\u003ch3\u003eVarious fixes \u0026amp; improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix(AI): Make agents integrations set the span status in case of error (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4820\"\u003e#4820\u003c/a\u003e) by \u003ca href=\"https://github.com/antonpirker\"\u003e\u003ccode\u003e@​antonpirker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix(dedupe): Use weakref in dedupe where possible (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4834\"\u003e#4834\u003c/a\u003e) by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix(Django): Avoid evaluating complex Django object in span.data/span.attributes (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4804\"\u003e#4804\u003c/a\u003e) by \u003ca href=\"https://github.com/antonpirker\"\u003e\u003ccode\u003e@​antonpirker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix(Langchain): Don't record tool call output if not include_prompt / should_send_default_pii (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4836\"\u003e#4836\u003c/a\u003e) by \u003ca href=\"https://github.com/shellmayr\"\u003e\u003ccode\u003e@​shellmayr\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix(OpenAI): Don't swallow userland exceptions in openai (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4861\"\u003e#4861\u003c/a\u003e) by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update contributing guidelines with instructions to run tests with tox (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4857\"\u003e#4857\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest(Spark): Improve \u003ccode\u003etest_spark\u003c/code\u003e speed (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4822\"\u003e#4822\u003c/a\u003e) by \u003ca href=\"https://github.com/mgaligniana\"\u003e\u003ccode\u003e@​mgaligniana\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNote: This is my last release. So long, and thanks for all the fish! by \u003ca href=\"https://github.com/antonpirker\"\u003e\u003ccode\u003e@​antonpirker\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/getsentry/sentry-python/commit/0f99a91e7b5103382c8198a7fcae70ab2933d85d\"\u003e\u003ccode\u003e0f99a91\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/ff527644c5446674c0870cb830a122f7b8fe3ac2\"\u003e\u003ccode\u003eff52764\u003c/code\u003e\u003c/a\u003e Updated changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/01fc851b7a805816fddfd252d2cd93dfd0484b69\"\u003e\u003ccode\u003e01fc851\u003c/code\u003e\u003c/a\u003e release: 2.39.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/6325924c2b8b0e4d7facdc49dd9aa7bdade9a08c\"\u003e\u003ccode\u003e6325924\u003c/code\u003e\u003c/a\u003e Don't swallow userland exceptions in openai (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4861\"\u003e#4861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/b7780bab8e6b4e288f8782d9c8fcc9d8b9e40bad\"\u003e\u003ccode\u003eb7780ba\u003c/code\u003e\u003c/a\u003e feat(toxgen): Remove timestamp prone to merge conflicts (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4860\"\u003e#4860\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/4e1b96caa049ce3a9ec7ea0d18462337c771761a\"\u003e\u003ccode\u003e4e1b96c\u003c/code\u003e\u003c/a\u003e chore: Slim down test matrix (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/d9811feda0867beca09a4b92fc142e2ea12702bb\"\u003e\u003ccode\u003ed9811fe\u003c/code\u003e\u003c/a\u003e docs: Update contributing guidelines with instructions to run tests with tox ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/c3d367202427233757f5275271873b4f4e60a825\"\u003e\u003ccode\u003ec3d3672\u003c/code\u003e\u003c/a\u003e chore: Clean up toxgen (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/13a8ae1f6891503663a1cfc1d07e498f48bbc9f0\"\u003e\u003ccode\u003e13a8ae1\u003c/code\u003e\u003c/a\u003e feat(toxgen): Cache release data (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4835\"\u003e#4835\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/808c1805c0253fe18a21156fb57a219ef2f71acd\"\u003e\u003ccode\u003e808c180\u003c/code\u003e\u003c/a\u003e fix(AI): Make agents integrations set the span status in case of error (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4820\"\u003e#4820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-python/compare/2.38.0...2.39.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.10.6 to 7.10.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.7 — 2025-09-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: with branch coverage in large files, generating HTML, JSON, or\nLCOV reports could take far too long due to some quadratic behavior when\ncreating the function and class index pages.  This is now fixed, closing\n\u003ccode\u003eissue 2048\u003c/code\u003e_.  Thanks to Daniel Diniz for help diagnosing the problem.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMost warnings and a few errors now have links to a page in the docs\nexplaining the specific message.  Closes \u003ccode\u003eissue 1921\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1921: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1921\"\u003enedbat/coveragepy#1921\u003c/a\u003e\n.. _issue 2048: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2048\"\u003enedbat/coveragepy#2048\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-6:\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/nedbat/coveragepy/commit/92a2af54e6bc948a9c536bd9b12bab70fb055904\"\u003e\u003ccode\u003e92a2af5\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/952afdaca658d5e1acdd533c727448a0b218caf0\"\u003e\u003ccode\u003e952afda\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a301761e69da97b27662f395974d26f78fa8b2b5\"\u003e\u003ccode\u003ea301761\u003c/code\u003e\u003c/a\u003e build: riscv64 wheels (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2055\"\u003e#2055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5daff8d38786aa540ff9bec622eb3389f117f911\"\u003e\u003ccode\u003e5daff8d\u003c/code\u003e\u003c/a\u003e docs: now source is formatted with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/04bbc3acfd914fdd99ffec9873bc03bdc7329357\"\u003e\u003ccode\u003e04bbc3a\u003c/code\u003e\u003c/a\u003e docs: discuss cog in the contributing docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/c181b9315f59a81667da47cf3d760d0253872238\"\u003e\u003ccode\u003ec181b93\u003c/code\u003e\u003c/a\u003e build: use cog --check-fail-msg to instruct devs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/33c4ba196f49e0ee86ab0ff473c0876c0bacd5fa\"\u003e\u003ccode\u003e33c4ba1\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0744b73b6b503ccf2cb75aba095c023672b921a8\"\u003e\u003ccode\u003e0744b73\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group across 1 directory with 2 updates (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0d5a112fc54c1d5a07f3f2ec451779808902c9af\"\u003e\u003ccode\u003e0d5a112\u003c/code\u003e\u003c/a\u003e perf: bulk narrowing to avoid N**2. \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2048\"\u003e#2048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a868ed9269ca474748130f5c6360cd2aae66ffc8\"\u003e\u003ccode\u003ea868ed9\u003c/code\u003e\u003c/a\u003e docs: mention Python Discord on the index page\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.10.6...7.10.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangorestframework-stubs` from 3.16.2 to 3.16.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/releases\"\u003edjangorestframework-stubs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.16.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Breaking change]\u003c/strong\u003e Remove work-around for \u003ccode\u003eModelSerializer.instance\u003c/code\u003e field for \u003ccode\u003emany=True\u003c/code\u003e by \u003ca href=\"https://github.com/JoshFerge\"\u003e\u003ccode\u003e@​JoshFerge\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/719\"\u003etypeddjango/djangorestframework-stubs#719\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe background of this change is described in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/827\"\u003etypeddjango/djangorestframework-stubs#827\u003c/a\u003e. If this change caused a regression in your use case, please comment there ➔ \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/827\"\u003etypeddjango/djangorestframework-stubs#827\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAccept lazy strings as path in \u003ccode\u003eAPIRequestFactory\u003c/code\u003e and \u003ccode\u003eAPIClient\u003c/code\u003e http methods by \u003ca href=\"https://github.com/browniebroke\"\u003e\u003ccode\u003e@​browniebroke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/825\"\u003etypeddjango/djangorestframework-stubs#825\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eHousekeeping\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove entries from allowlist to fix the stubtest CI job by \u003ca href=\"https://github.com/browniebroke\"\u003e\u003ccode\u003e@​browniebroke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/826\"\u003etypeddjango/djangorestframework-stubs#826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003e.pre-commit-config\u003c/code\u003e and \u003ccode\u003eCONTRIBUTING.MD\u003c/code\u003e to latest Python version by \u003ca href=\"https://github.com/CodingWithSaksham\"\u003e\u003ccode\u003e@​CodingWithSaksham\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/819\"\u003etypeddjango/djangorestframework-stubs#819\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion 3.16.3 release by \u003ca href=\"https://github.com/intgr\"\u003e\u003ccode\u003e@​intgr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/828\"\u003etypeddjango/djangorestframework-stubs#828\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/CodingWithSaksham\"\u003e\u003ccode\u003e@​CodingWithSaksham\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/819\"\u003etypeddjango/djangorestframework-stubs#819\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshFerge\"\u003e\u003ccode\u003e@​JoshFerge\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/719\"\u003etypeddjango/djangorestframework-stubs#719\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/compare/3.16.2...3.16.3\"\u003ehttps://github.com/typeddjango/djangorestframework-stubs/compare/3.16.2...3.16.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/typeddjango/djangorestframework-stubs/commit/fbfde22b046dcdb362c252db20339c39f03addf0\"\u003e\u003ccode\u003efbfde22\u003c/code\u003e\u003c/a\u003e Version 3.16.3 release (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/828\"\u003e#828\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/eff0fab534bdaac9b8b87199e32a5bb0ad8bcca0\"\u003e\u003ccode\u003eeff0fab\u003c/code\u003e\u003c/a\u003e [Breaking change] Remove work-around for \u003ccode\u003eModelSerializer.instance\u003c/code\u003e field for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/363c31901cac51871ae27d83186e54873181dea2\"\u003e\u003ccode\u003e363c319\u003c/code\u003e\u003c/a\u003e Bump types-pyyaml from 6.0.12.20250822 to 6.0.12.20250915 (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/824\"\u003e#824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/37b5686ed5e6a976a08a77fc6a08e4bd86dee46e\"\u003e\u003ccode\u003e37b5686\u003c/code\u003e\u003c/a\u003e Bump types-requests from 2.32.4.20250809 to 2.32.4.20250913 (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/822\"\u003e#822\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/774b0a203f43f0b23caa1c6711283e77c2452ba3\"\u003e\u003ccode\u003e774b0a2\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/823\"\u003e#823\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/4494f8253cabd2a447291a44b7462de10eea1a70\"\u003e\u003ccode\u003e4494f82\u003c/code\u003e\u003c/a\u003e Accept lazy strings as path in \u003ccode\u003eAPIRequestFactory\u003c/code\u003e and \u003ccode\u003eAPIClient\u003c/code\u003e http metho...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/56e621fd4faef40c23cfd1f9d04a936924cd5cce\"\u003e\u003ccode\u003e56e621f\u003c/code\u003e\u003c/a\u003e Remove entries from allowlist breaking the stubtest script (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/826\"\u003e#826\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/324d4cb49972198c830f2450d935f1432a0c2b73\"\u003e\u003ccode\u003e324d4cb\u003c/code\u003e\u003c/a\u003e Update mypy requirement from \u0026lt;1.18,\u0026gt;=1.13 to \u0026gt;=1.13,\u0026lt;1.19 (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/821\"\u003e#821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/48152ecf026e83e16b1c8a004466fc8e3aa27add\"\u003e\u003ccode\u003e48152ec\u003c/code\u003e\u003c/a\u003e Updated \u003ccode\u003e.pre-commit-config\u003c/code\u003e and \u003ccode\u003eCONTRIBUTING.MD\u003c/code\u003e to latest Python version (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/7cbec3a20d70a00ea03eeb3c6cff6cb3a9075bf9\"\u003e\u003ccode\u003e7cbec3a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/820\"\u003e#820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/compare/3.16.2...3.16.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.1 to 1.18.2\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\u003ch2\u003eMypy 1.18.1\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\nimprovements and bug fixes. You can install it as follows:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install -U mypy\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eYou can read the full documentation for this release on \u003ca href=\"http://mypy.readthedocs.io\"\u003eRead the Docs\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eMypy Performance Improvements\u003c/h3\u003e\n\u003cp\u003eMypy 1.18.1 includes numerous performance improvements, resulting in about 40% speedup\ncompared to 1.17 when type checking mypy itself. In extreme cases, the improvement\ncan be 10x or higher. The list below is an overview of the various mypy optimizations.\nMany mypyc improvements (discussed in a separate section below) also improve performance.\u003c/p\u003e\n\u003cp\u003eType caching optimizations have a small risk of causing regressions. When\nreporting issues with unexpected inferred types, please also check if\n\u003ccode\u003e--disable-expression-cache\u003c/code\u003e will work around the issue, as it turns off some of\nthese optimizations.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprove self check performance by 1.8% (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19768\"\u003e19768\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python/mypy/pull/19769\"\u003e19769\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python/mypy/pull/19770\"\u003e19770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize fixed-format deserialization (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19765\"\u003e19765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse macros to optimize fixed-format deserialization (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19757\"\u003e19757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTwo additional micro‑optimizations (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19627\"\u003e19627\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAnother set of micro‑optimizations (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19633\"\u003e19633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache common types (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19621\"\u003e19621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip more method bodies in third‑party libraries for speed (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19586\"\u003e19586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify the representation of callable types (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19580\"\u003e19580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd cache for types of some expressions (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19505\"\u003e19505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse cache for dictionary expressions (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19536\"\u003e19536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse cache for binary operations (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19523\"\u003e19523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache types of type objects (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19514\"\u003e19514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid duplicate work when checking boolean operations (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19515\"\u003e19515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize generic inference passes (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19501\"\u003e19501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up the default plugin (Jukka Lehtosalo, PRs \u003ca href=\"https://redirect.github.com/python/mypy/pull/19385\"\u003e19385\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python/mypy/pull/19462\"\u003e19462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove nested imports from the default plugin (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19388\"\u003e19388\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMicro‑optimize type expansion (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19461\"\u003e19461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMicro‑optimize type indirection (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19460\"\u003e19460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMicro‑optimize the plugin framework (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19464\"\u003e19464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid temporary set creation in subtype checking (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19463\"\u003e19463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSubtype checking micro‑optimization (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19384\"\u003e19384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReturn early where possible in subtype check (Stanislav Terliakov, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19400\"\u003e19400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeduplicate some types before joining (Stanislav Terliakov, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19409\"\u003e19409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up type checking by caching argument inference context (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19323\"\u003e19323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize binding method self argument type and deprecation checks (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19556\"\u003e19556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eKeep trivial instance types/aliases during expansion (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19543\"\u003e19543\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed‑Format Cache (Experimental)\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/python/mypy/commit/df05f05555ee62dbdb9960c64cad186172e92be1\"\u003e\u003ccode\u003edf05f05\u003c/code\u003e\u003c/a\u003e remove +dev from version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/01a7a1285d03cb7a330359b22cb462aacb5f9720\"\u003e\u003ccode\u003e01a7a12\u003c/code\u003e\u003c/a\u003e Update changelog for 1.18.2 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19873\"\u003e#19873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/ca5abf09f3bfc543ac9c18a364696bc5da20bc03\"\u003e\u003ccode\u003eca5abf0\u003c/code\u003e\u003c/a\u003e Typeshed cherry-pick: Make type of \u003ccode\u003eunitest.mock.Any\u003c/code\u003e a subclass of \u003ccode\u003eAny\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python/mypy/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/9d794b57d9c5b03d61caa3286756c05e0ae3021b\"\u003e\u003ccode\u003e9d794b5\u003c/code\u003e\u003c/a\u003e [mypyc] fix: inappropriate \u003ccode\u003eNone\u003c/code\u003es in f-strings (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19846\"\u003e#19846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2c0510c84868b6bb42ef0f305b701e530a85c25f\"\u003e\u003ccode\u003e2c0510c\u003c/code\u003e\u003c/a\u003e stubtest: additional guidance on errors when runtime is object.\u003cstrong\u003einit\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19733\"\u003e#19733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2f3f03c3e39e68dbfa3544c01a34f99803b3e1c2\"\u003e\u003ccode\u003e2f3f03c\u003c/code\u003e\u003c/a\u003e Bump version to 1.18.2+dev for point release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/76698412bc1f3ca99000d52649acd5a0e06aa71d\"\u003e\u003ccode\u003e7669841\u003c/code\u003e\u003c/a\u003e Fix crash on recursive alias in indirection.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19845\"\u003e#19845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.1...v1.18.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.13.0 to 0.13.2\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.13.2\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-09-25.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eblocking-path-method\u003c/code\u003e (\u003ccode\u003eASYNC240\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20264\"\u003e#20264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003emap-without-explicit-strict\u003c/code\u003e (\u003ccode\u003eB912\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20429\"\u003e#20429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bultins\u003c/code\u003e] Detect class-scope builtin shadowing in decorators, default args, and attribute initializers (\u003ccode\u003eA003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20178\"\u003e#20178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Implement \u003ccode\u003elogging-eager-conversion\u003c/code\u003e (\u003ccode\u003eRUF065\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19942\"\u003e#19942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003e.pyw\u003c/code\u003e files by default when linting and formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20458\"\u003e#20458\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeduplicate input paths (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20105\"\u003e#20105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Preserve trailing commas for single-element lists (\u003ccode\u003eC409\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19571\"\u003e#19571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Avoid syntax error from conflict with \u003ccode\u003ePIE790\u003c/code\u003e (\u003ccode\u003ePYI021\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20010\"\u003e#20010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Correct fix for positive \u003ccode\u003emaxsplit\u003c/code\u003e without separator (\u003ccode\u003eSIM905\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20056\"\u003e#20056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix \u003ccode\u003eUP008\u003c/code\u003e not to apply when \u003ccode\u003e__class__\u003c/code\u003e is a local variable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20497\"\u003e#20497\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix \u003ccode\u003eB004\u003c/code\u003e to skip invalid \u003ccode\u003ehasattr\u003c/code\u003e/\u003ccode\u003egetattr\u003c/code\u003e calls (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20486\"\u003e#20486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Replace \u003ccode\u003e-nan\u003c/code\u003e with \u003ccode\u003enan\u003c/code\u003e when using the value to construct a \u003ccode\u003eDecimal\u003c/code\u003e (\u003ccode\u003eFURB164\u003c/code\u003e ) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20391\"\u003e#20391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd 'Finding ways to help' to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20567\"\u003e#20567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate import path to \u003ccode\u003eruff-wasm-web\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20539\"\u003e#20539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Clarify the supported hashing functions (\u003ccode\u003eS324\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20534\"\u003e#20534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Allow hover quick fixes to appear for overlapping diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20527\"\u003e#20527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Fix non‑BMP code point handling in quick fixes and markers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20526\"\u003e#20526\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/BurntSushi\"\u003e\u003ccode\u003e@​BurntSushi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtshiba\"\u003e\u003ccode\u003e@​mtshiba\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/second-ed\"\u003e\u003ccode\u003e@​second-ed\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShikChen\"\u003e\u003ccode\u003e@​ShikChen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PieterCK\"\u003e\u003ccode\u003e@​PieterCK\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GDYendell\"\u003e\u003ccode\u003e@​GDYendell\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RazerM\"\u003e\u003ccode\u003e@​RazerM\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TaKO8Ki\"\u003e\u003ccode\u003e@​TaKO8Ki\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/ntBre\"\u003e\u003ccode\u003e@​ntbre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.13.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/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.13.2\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-09-25.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eblocking-path-method\u003c/code\u003e (\u003ccode\u003eASYNC240\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20264\"\u003e#20264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003emap-without-explicit-strict\u003c/code\u003e (\u003ccode\u003eB912\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20429\"\u003e#20429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bultins\u003c/code\u003e] Detect class-scope builtin shadowing in decorators, default args, and attribute initializers (\u003ccode\u003eA003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20178\"\u003e#20178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Implement \u003ccode\u003elogging-eager-conversion\u003c/code\u003e (\u003ccode\u003eRUF065\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19942\"\u003e#19942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003e.pyw\u003c/code\u003e files by default when linting and formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20458\"\u003e#20458\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeduplicate input paths (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20105\"\u003e#20105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Preserve trailing commas for single-element lists (\u003ccode\u003eC409\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19571\"\u003e#19571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Avoid syntax error from conflict with \u003ccode\u003ePIE790\u003c/code\u003e (\u003ccode\u003ePYI021\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20010\"\u003e#20010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Correct fix for positive \u003ccode\u003emaxsplit\u003c/code\u003e without separator (\u003ccode\u003eSIM905\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20056\"\u003e#20056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix \u003ccode\u003eUP008\u003c/code\u003e not to apply when \u003ccode\u003e__class__\u003c/code\u003e is a local variable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20497\"\u003e#20497\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix \u003ccode\u003eB004\u003c/code\u003e to skip invalid \u003ccode\u003ehasattr\u003c/code\u003e/\u003ccode\u003egetattr\u003c/code\u003e calls (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20486\"\u003e#20486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Replace \u003ccode\u003e-nan\u003c/code\u003e with \u003ccode\u003enan\u003c/code\u003e when using the value to construct a \u003ccode\u003eDecimal\u003c/code\u003e (\u003ccode\u003eFURB164\u003c/code\u003e ) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20391\"\u003e#20391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd 'Finding ways to help' to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20567\"\u003e#20567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate import path to \u003ccode\u003eruff-wasm-web\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20539\"\u003e#20539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Clarify the supported hashing functions (\u003ccode\u003eS324\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20534\"\u003e#20534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Allow hover quick fixes to appear for overlapping diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20527\"\u003e#20527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Fix non‑BMP code point handling in quick fixes and markers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20526\"\u003e#20526\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/BurntSushi\"\u003e\u003ccode\u003e@​BurntSushi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtshiba\"\u003e\u003ccode\u003e@​mtshiba\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/second-ed\"\u003e\u003ccode\u003e@​second-ed\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShikChen\"\u003e\u003ccode\u003e@​ShikChen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PieterCK\"\u003e\u003ccode\u003e@​PieterCK\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GDYendell\"\u003e\u003ccode\u003e@​GDYendell\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RazerM\"\u003e\u003ccode\u003e@​RazerM\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TaKO8Ki\"\u003e\u003ccode\u003e@​TaKO8Ki\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/ntBre\"\u003e\u003ccode\u003e@​ntbre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.13.1\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/astral-sh/ruff/commit/b0bdf0334e38417f8617057cd0392a4b53954120\"\u003e\u003ccode\u003eb0bdf03\u003c/code\u003e\u003c/a\u003e Bump 0.13.2 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20576\"\u003e#20576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7331d393c555ece88aa69f685562163790ddf611\"\u003e\u003ccode\u003e7331d39\u003c/code\u003e\u003c/a\u003e Update rooster to 0.1.0 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20575\"\u003e#20575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/529e5fa6c24ea68501adb18245eab27c701598d2\"\u003e\u003ccode\u003e529e5fa\u003c/code\u003e\u003c/a\u003e [ty] Ecosystem analyzer: timing report (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20571\"\u003e#20571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/efbb80f7475c63b62981444d5c429109ff12ad32\"\u003e\u003ccode\u003eefbb80f\u003c/code\u003e\u003c/a\u003e [ty] Remove hack in protocol satisfiability check (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20568\"\u003e#20568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9f3cffc65cb834661e17263245761a66f9474af0\"\u003e\u003ccode\u003e9f3cffc\u003c/code\u003e\u003c/a\u003e Add 'Finding ways to help' to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20567\"\u003e#20567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/21be94ac33f445d8a681babec6c56ca3d1b67156\"\u003e\u003ccode\u003e21be94a\u003c/code\u003e\u003c/a\u003e [ty] Explicitly test assignability/subtyping between unions of nominal types ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b7d5dc98c193cc5cab00d557b6a392d35137d990\"\u003e\u003ccode\u003eb7d5dc9\u003c/code\u003e\u003c/a\u003e [ty] Add tests for interactions of \u003ccode\u003e@classmethod\u003c/code\u003e, \u003ccode\u003e@staticmethod\u003c/code\u003e, and proto...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e1bb74b25a0f730a5baff263d753ffe03cf857b1\"\u003e\u003ccode\u003ee1bb74b\u003c/code\u003e\u003c/a\u003e [ty] Match variadic argument to variadic parameter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20511\"\u003e#20511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/edeb45804ef9dbe348d393f3ab77288062a3c77e\"\u003e\u003ccode\u003eedeb458\u003c/code\u003e\u003c/a\u003e [ty] fallback to resolve_real_module in file_to_module (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20461\"\u003e#20461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bea92c822980b1575d58542dffa2c960393d7603\"\u003e\u003ccode\u003ebea92c8\u003c/code\u003e\u003c/a\u003e [ty] More precise type inference for dictionary literals (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20523\"\u003e#20523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.13.0...0.13.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asgiref` from 3.9.1 to 3.9.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.9.2 (2025-09-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds support for Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes wsgi.errors file descriptor in WsgiToAsgi adapter.\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/django/asgiref/commit/3471a0c09bd043d61c299308c0c8519ab6c0f774\"\u003e\u003ccode\u003e3471a0c\u003c/code\u003e\u003c/a\u003e Releasing 3.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/4f892bd261cee9afe51d67333e9bc7cd98b39a35\"\u003e\u003ccode\u003e4f892bd\u003c/code\u003e\u003c/a\u003e Remove Python 3.8 from tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/83cd6f3c6f59a66999446c2893cdb3fcae3c03c5\"\u003e\u003ccode\u003e83cd6f3\u003c/code\u003e\u003c/a\u003e Run CI against Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/796b9f14fd92d3131c7c39fab308ddd986d271eb\"\u003e\u003ccode\u003e796b9f1\u003c/code\u003e\u003c/a\u003e Fix incorrect Trailer header (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/29b108b0a9a5eddae3e282ba33915412a855e529\"\u003e\u003ccode\u003e29b108b\u003c/code\u003e\u003c/a\u003e Fixed \u003ca href=\"https://redirect.github.com/django/asgiref/issues/529\"\u003e#529\u003c/a\u003e: wsgi.errors should be a StringIO (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django/asgiref/compare/3.9.1...3.9.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.40.31 to 1.40.40\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/3515909e0e4fccb5f54bff1abe327f064e13bae1\"\u003e\u003ccode\u003e3515909\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.40'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/1e46da3117c01557f798750f118ab8b6fd1a0285\"\u003e\u003ccode\u003e1e46da3\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.40\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/53ccfb7584000c0ce958febbe9de0b266006368b\"\u003e\u003ccode\u003e53ccfb7\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/71cfc758534d5bb67f50ff42081fb4b37b3af69b\"\u003e\u003ccode\u003e71cfc75\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.39'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/d947110aba3b4fb3c815e67edc10b986c8dd16ff\"\u003e\u003ccode\u003ed947110\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.39' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/5653e58b19eb694241964b1dc5366ab115ee5eb6\"\u003e\u003ccode\u003e5653e58\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/eaaf3b06d41881163fae35faf7c778ac153339c5\"\u003e\u003ccode\u003eeaaf3b0\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/c106f68211653ac9acadfded00b209385ed58617\"\u003e\u003ccode\u003ec106f68\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.38'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/9b063da5ebaba6a45d57ee3ba343a1a96e6342a8\"\u003e\u003ccode\u003e9b063da\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.38' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/cc3dc1c839b0c1492b8b96f04694f4b6528a3871\"\u003e\u003ccode\u003ecc3dc1c\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.38\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.40.31...1.40.40\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.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/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `qrcode` from 7.4.2 to 8.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lincolnloop/python-qrcode/blob/main/CHANGES.rst\"\u003eqrcode's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2 (01 May 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize QRColorMask apply_mask method for enhanced performance\u003c/li\u003e\n\u003cli\u003eFix typos on StyledPilImage embeded_* parameters.\nThe old parameters with the typos are still accepted\nfor backward compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1 (02 April 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0 (27 September 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.11 and 3.12.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python \u0026lt;=3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange local development setup to use Poetry_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTestsuite and code quality checks are done through Github Actions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCode quality and formatting utilises ruff_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003etyping_extensions\u003c/code\u003e as a dependency, as it's no longer required\nwith having Python 3.9+ as a requirement.\nhaving Python 3.9+ as a requirement.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOnly allow high error correction rate (\u003ccode\u003eqrcode.ERROR_CORRECT_H\u003c/code\u003e)\nwhen generating\nQR codes with embedded images ...\n\n_Description has been truncated_","html_url":"https://github.com/rafsaf/Tribal-Wars-Planer/pull/664","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/rafsaf%2FTribal-Wars-Planer/issues/664","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/664/packages"},{"uuid":"2851420978","node_id":"PR_kwDOEB4avM6p9Tsy","number":662,"state":"open","title":"Bump the all-dependencies group with 11 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-22T23:17:29.000Z","updated_at":"2025-09-22T23:17:30.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-dependencies","update_count":11,"packages":[{"name":"botocore","old_version":"1.40.31","new_version":"1.40.36","repository_url":"https://github.com/boto/botocore"},{"name":"cython","old_version":"3.1.3","new_version":"3.1.4","repository_url":"https://github.com/cython/cython"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.0","repository_url":"https://github.com/jazzband/django-two-factor-auth"},{"name":"prometheus-client","old_version":"0.22.1","new_version":"0.23.1","repository_url":"https://github.com/prometheus/client_python"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/giampaolo/psutil"},{"name":"coverage","old_version":"7.10.6","new_version":"7.10.7","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"djangorestframework-stubs","old_version":"3.16.2","new_version":"3.16.3","repository_url":"https://github.com/typeddjango/djangorestframework-stubs"},{"name":"mypy","old_version":"1.18.1","new_version":"1.18.2","repository_url":"https://github.com/python/mypy"},{"name":"ruff","old_version":"0.13.0","new_version":"0.13.1","repository_url":"https://github.com/astral-sh/ruff"},{"name":"boto3","old_version":"1.40.31","new_version":"1.40.36","repository_url":"https://github.com/boto/boto3"},{"name":"qrcode","old_version":"7.4.2","new_version":"8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-dependencies group with 11 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [botocore](https://github.com/boto/botocore) | `1.40.31` | `1.40.36` |\n| [cython](https://github.com/cython/cython) | `3.1.3` | `3.1.4` |\n| [django-two-factor-auth](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.0` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.1` | `0.23.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.0` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.10.6` | `7.10.7` |\n| [djangorestframework-stubs](https://github.com/typeddjango/djangorestframework-stubs) | `3.16.2` | `3.16.3` |\n| [mypy](https://github.com/python/mypy) | `1.18.1` | `1.18.2` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.13.0` | `0.13.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.31` | `1.40.36` |\n| [qrcode](https://github.com/lincolnloop/python-qrcode) | `7.4.2` | `8.2` |\n\nUpdates `botocore` from 1.40.31 to 1.40.36\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/28c3ae23b564ff769ad4f4df79060af2e0b7d4ae\"\u003e\u003ccode\u003e28c3ae2\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.36'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/95bd00946f54f22447cd18a06e05704afe485d03\"\u003e\u003ccode\u003e95bd009\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.36\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/674f0d11498e07afe21261113dde681187d66fcb\"\u003e\u003ccode\u003e674f0d1\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/0b599b51c95253204dffc4ed684e73610841ef60\"\u003e\u003ccode\u003e0b599b5\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/331de65e7532d4641b797c35ca264b90987e3328\"\u003e\u003ccode\u003e331de65\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.35'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/7871b958b1ac9055ec4b993913136d96df4fbdcd\"\u003e\u003ccode\u003e7871b95\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.35' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/4451f93aa2eb401b7b8f4aef6e24f2ccc2e09fdd\"\u003e\u003ccode\u003e4451f93\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.35\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/387a2a4cfed21d8c79f60130c0edc6446e21621d\"\u003e\u003ccode\u003e387a2a4\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/fd4916f863a7b8737e121345118d68b99e2705be\"\u003e\u003ccode\u003efd4916f\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/de187f398ba981be728e3c69f23d6b634d555016\"\u003e\u003ccode\u003ede187f3\u003c/code\u003e\u003c/a\u003e Update sms-voice models and endpoint tests to latest version. (\u003ca href=\"https://redirect.github.com/boto/botocore/issues/3553\"\u003e#3553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/botocore/compare/1.40.31...1.40.36\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cython` from 3.1.3 to 3.1.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/cython/cython/blob/master/CHANGES.rst\"\u003ecython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.1.4 (2025-09-16)\u003c/h1\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeclarations for the new \u003ccode\u003ePyUnstable_*()\u003c/code\u003e refcounting C-API functions in Py3.14 were added.\n(Github issue :issue:\u003ccode\u003e6836\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe monitoring code could crash on tracing.\n(Github issue :issue:\u003ccode\u003e7050\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eInitialising the monitoring code could fail with a CPython exception.\nSee \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1790#issuecomment-3257410149\"\u003enedbat/coveragepy#1790\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOptimised integer shifting triggered undefined behaviour in C.\n(Github issue :issue:\u003ccode\u003e7089\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeallocating objects that inherit from external types defined in pxd files\ncould run into an infinite loop.\n(Github issue :issue:\u003ccode\u003e7143\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eA reference to metaclasses could be leaked on instantiation.\n(Github issue :issue:\u003ccode\u003e7130\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e(Unlikely) error handling during empty builtin container tests was ineffective.\n(Github issue :issue:\u003ccode\u003e7190\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eGenerated \u003ccode\u003e*_api.h\u003c/code\u003e files used potentially unknown Cython configuration macros.\n(Github issue :issue:\u003ccode\u003e7108\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003ecythonize()\u003c/code\u003e avoids parallel compiler runs on systems using \u003ccode\u003espawn()\u003c/code\u003e in multiprocessing.\nPatch by Marcel Bargull.  (Github issue :issue:\u003ccode\u003e3262\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ccode\u003e@cython.ufunc\u003c/code\u003e  decorator was missing in type checker stubs.\nPatch by jayClean.  (Github issue :issue:\u003ccode\u003e7109\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/cython/cython/commit/236e4a3ccd24d4e24c9d7c40a8580d359663832c\"\u003e\u003ccode\u003e236e4a3\u003c/code\u003e\u003c/a\u003e Build: Update cibuildwheel version to 3.1.4.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/cb2e2a3e0ee746df3296742d4d55d0d79e0bd6f5\"\u003e\u003ccode\u003ecb2e2a3\u003c/code\u003e\u003c/a\u003e Prepare release of 3.1.4.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/4fdb99040b19270e172aba671d4a9a9ae091b872\"\u003e\u003ccode\u003e4fdb990\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/fa78291097175b9fcd32c5012bb6239bdf06e467\"\u003e\u003ccode\u003efa78291\u003c/code\u003e\u003c/a\u003e Remove confusing \u0026quot;optionally\u0026quot; from embedded docs (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7071\"\u003e#7071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/2886cd958ed0b7383ae86d59ddc74bb13e9d3336\"\u003e\u003ccode\u003e2886cd9\u003c/code\u003e\u003c/a\u003e Fix error handling in empty container test (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7096\"\u003eGH-7096\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/8993322ace48de38650efe82f6a529e72781ab19\"\u003e\u003ccode\u003e8993322\u003c/code\u003e\u003c/a\u003e Library: Add declarations for new refcounting C-API functions in Py3.14.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/dc54ef2e7aa529a9a02debb2378865475ca08ad8\"\u003e\u003ccode\u003edc54ef2\u003c/code\u003e\u003c/a\u003e Simpify some conditions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/41f985e8fbcc203f61c9b4720ee605ac582ce18b\"\u003e\u003ccode\u003e41f985e\u003c/code\u003e\u003c/a\u003e Bump OS X runner version to \u0026quot;macos-latest\u0026quot; (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7041\"\u003eGH-7041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/dd18f11f9203b68a6acba0b73c5958229c7298dc\"\u003e\u003ccode\u003edd18f11\u003c/code\u003e\u003c/a\u003e Disable parallel cythonization for \u0026quot;spawn\u0026quot; start method. (\u003ca href=\"https://redirect.github.com/cython/cython/issues/3263\"\u003eGH-3263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/be16c519e1548465836f8223ea18fb26b32df919\"\u003e\u003ccode\u003ebe16c51\u003c/code\u003e\u003c/a\u003e Fix a small typo (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7125\"\u003e#7125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/cython/cython/compare/3.1.3...3.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-two-factor-auth` from 1.17.0 to 1.18.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/django-two-factor-auth/releases\"\u003edjango-two-factor-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.18.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocumentation for setting yubikey support forgot to inform users they would\nneed to add our yubikey plugin to \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove reference to release-notes that had been missed, docs now build\nwithout warnings\u003c/li\u003e\n\u003cli\u003eWebAuthn: avoid submitting the wrong form\u003c/li\u003e\n\u003cli\u003eEmail gateway: tell user to use correct django-otp plugin\u003c/li\u003e\n\u003cli\u003eFix infinite redirect on admin site with AdminSiteOTPRequiredMixin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow qrcode 8.x.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ephonenumbers\u003c/code\u003e is no longer a hard requirement for users who don't require it.\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eEmailDevice.confirmed\u003c/code\u003e default to \u003ccode\u003eFalse\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAny \u003ccode\u003eStaticDevice\u003c/code\u003e can be used as backup tokens, not just those labelled\n\u0026quot;backup\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Django 5.2\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13\u003c/li\u003e\n\u003cli\u003eDjango check for \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e to make sure \u003ccode\u003etwo_factor\u003c/code\u003e is present and\ncomes before its plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\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/jazzband/django-two-factor-auth/blob/master/CHANGELOG.md\"\u003edjango-two-factor-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.18.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocumentation for setting yubikey support forgot to inform users they would\nneed to add our yubikey plugin to \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove reference to release-notes that had been missed, docs now build\nwithout warnings\u003c/li\u003e\n\u003cli\u003eWebAuthn: avoid submitting the wrong form\u003c/li\u003e\n\u003cli\u003eEmail gateway: tell user to use correct django-otp plugin\u003c/li\u003e\n\u003cli\u003eFix infinite redirect on admin site with AdminSiteOTPRequiredMixin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow qrcode 8.x.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ephonenumbers\u003c/code\u003e is no longer a hard requirement for users who don't require it.\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eEmailDevice.confirmed\u003c/code\u003e default to \u003ccode\u003eFalse\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAny \u003ccode\u003eStaticDevice\u003c/code\u003e can be used as backup tokens, not just those labelled\n\u0026quot;backup\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Django 5.2\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13\u003c/li\u003e\n\u003cli\u003eDjango check for \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e to make sure \u003ccode\u003etwo_factor\u003c/code\u003e is present and\ncomes before its plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\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/jazzband/django-two-factor-auth/commit/7405b6fd545ddbbd67d28292fca2c8ef6cf0de92\"\u003e\u003ccode\u003e7405b6f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/774\"\u003e#774\u003c/a\u003e from moggers87/release-1.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/b47945c8188e46ad2f64bf929c1a745682b6de15\"\u003e\u003ccode\u003eb47945c\u003c/code\u003e\u003c/a\u003e Update CHANGELOG with latest changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/b20741c609ca3fd3fe52dd3cfe1ebc3e98ce2383\"\u003e\u003ccode\u003eb20741c\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into release-1.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/966dab4c5bdf11b88e42bc820c8adea684b4e0d0\"\u003e\u003ccode\u003e966dab4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/775\"\u003e#775\u003c/a\u003e from claudep/phoneplugin2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/9c72f871f0ebd3bede20d823372b02608480c4c7\"\u003e\u003ccode\u003e9c72f87\u003c/code\u003e\u003c/a\u003e Refs \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/469\"\u003e#469\u003c/a\u003e - Only import phonenumber functions when plugin is installed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/ec0923bf400d6faf3c82acff312c1fe5add70047\"\u003e\u003ccode\u003eec0923b\u003c/code\u003e\u003c/a\u003e Pull latest translations from Transifex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/6828d0bb2ee8f5e30d2c63b552ae895b3fe313b0\"\u003e\u003ccode\u003e6828d0b\u003c/code\u003e\u003c/a\u003e Prepare 1.18.0 for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/656bf9e4471990e32f3a4ee78f610cbeb114cd16\"\u003e\u003ccode\u003e656bf9e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/773\"\u003e#773\u003c/a\u003e from jazzband/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/6ba47715c163dc82aa89c5f2f4373a361b7f9b59\"\u003e\u003ccode\u003e6ba4771\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/763\"\u003e#763\u003c/a\u003e from moggers87/647-check-installed-apps-order\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/2f50ea0fd0d73c653bb377b384dc2dd5afb387c1\"\u003e\u003ccode\u003e2f50ea0\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jazzband/django-two-factor-auth/compare/1.17.0...1.18.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-client` from 0.22.1 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prometheus/client_python/releases\"\u003eprometheus-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.23.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use tuples instead of packaging Version by \u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\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/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUTF-8 Content Negotiation by \u003ca href=\"https://github.com/ywwg\"\u003e\u003ccode\u003e@​ywwg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1102\"\u003eprometheus/client_python#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe include test data by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove parser performance by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1117\"\u003eprometheus/client_python#1117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support to \u003ccode\u003ewrite_to_textfile\u003c/code\u003e for custom tmpdir by \u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOM text exposition for NH by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1087\"\u003eprometheus/client_python#1087\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bug which caused metric publishing to not accept query string parameters in ASGI app by \u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit native histograms only when OM 2.0.0 is requested by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1128\"\u003eprometheus/client_python#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove space after comma in openmetrics exposition by \u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue parsing double spaces after # HELP/# TYPE by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1134\"\u003eprometheus/client_python#1134\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/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.22.1...v0.23.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.22.1...v0.23.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/prometheus/client_python/commit/8746c49a76a7929795fab7b593b1c44dc8c972d2\"\u003e\u003ccode\u003e8746c49\u003c/code\u003e\u003c/a\u003e Release 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/266beb2567e0040a5790836c32de5a643d5177e4\"\u003e\u003ccode\u003e266beb2\u003c/code\u003e\u003c/a\u003e fix: use tuples instead of packaging Version (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1136\"\u003e#1136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/f9471403a82de6af93feeac2d38938ca1c384b6d\"\u003e\u003ccode\u003ef947140\u003c/code\u003e\u003c/a\u003e fix: Use \u003ccode\u003easyncio.new_event_loop()\u003c/code\u003e to create event loop for tests (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1138\"\u003e#1138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/b9e78a3f701fd442f57db23701c2021a529a84c3\"\u003e\u003ccode\u003eb9e78a3\u003c/code\u003e\u003c/a\u003e Release 0.23.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/b3fbbca891a6c6d07b83a3680919956a3c3ab523\"\u003e\u003ccode\u003eb3fbbca\u003c/code\u003e\u003c/a\u003e Fix issue parsing double spaces after # HELP/# TYPE (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1134\"\u003e#1134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/47d2b416d75f5569863e2bb08a15b58218563814\"\u003e\u003ccode\u003e47d2b41\u003c/code\u003e\u003c/a\u003e Do not use global when only reading variable (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1133\"\u003e#1133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/4de31eee009a527ba7a5cda76a4aef403df7ab0d\"\u003e\u003ccode\u003e4de31ee\u003c/code\u003e\u003c/a\u003e fix: remove space after comma in openmetrics exposition (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1132\"\u003e#1132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/3586355e648f1d8a058cdb711bc2ce920ce58ca4\"\u003e\u003ccode\u003e3586355\u003c/code\u003e\u003c/a\u003e Emit native histograms only when OM 2.0.0 is requested (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1128\"\u003e#1128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/9e3eb6c7e146d8003d12e24db56f5abfcc0bbef6\"\u003e\u003ccode\u003e9e3eb6c\u003c/code\u003e\u003c/a\u003e Fix bug which caused metric publishing to not accept query string parameters ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/d358f469a7bc2480005775a9be8de30c20c88ab6\"\u003e\u003ccode\u003ed358f46\u003c/code\u003e\u003c/a\u003e Bump flake8 libraries (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1127\"\u003e#1127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.22.1...v0.23.1\"\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 `coverage` from 7.10.6 to 7.10.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.7 — 2025-09-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: with branch coverage in large files, generating HTML, JSON, or\nLCOV reports could take far too long due to some quadratic behavior when\ncreating the function and class index pages.  This is now fixed, closing\n\u003ccode\u003eissue 2048\u003c/code\u003e_.  Thanks to Daniel Diniz for help diagnosing the problem.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMost warnings and a few errors now have links to a page in the docs\nexplaining the specific message.  Closes \u003ccode\u003eissue 1921\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1921: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1921\"\u003enedbat/coveragepy#1921\u003c/a\u003e\n.. _issue 2048: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2048\"\u003enedbat/coveragepy#2048\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-6:\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/nedbat/coveragepy/commit/92a2af54e6bc948a9c536bd9b12bab70fb055904\"\u003e\u003ccode\u003e92a2af5\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/952afdaca658d5e1acdd533c727448a0b218caf0\"\u003e\u003ccode\u003e952afda\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a301761e69da97b27662f395974d26f78fa8b2b5\"\u003e\u003ccode\u003ea301761\u003c/code\u003e\u003c/a\u003e build: riscv64 wheels (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2055\"\u003e#2055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5daff8d38786aa540ff9bec622eb3389f117f911\"\u003e\u003ccode\u003e5daff8d\u003c/code\u003e\u003c/a\u003e docs: now source is formatted with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/04bbc3acfd914fdd99ffec9873bc03bdc7329357\"\u003e\u003ccode\u003e04bbc3a\u003c/code\u003e\u003c/a\u003e docs: discuss cog in the contributing docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/c181b9315f59a81667da47cf3d760d0253872238\"\u003e\u003ccode\u003ec181b93\u003c/code\u003e\u003c/a\u003e build: use cog --check-fail-msg to instruct devs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/33c4ba196f49e0ee86ab0ff473c0876c0bacd5fa\"\u003e\u003ccode\u003e33c4ba1\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0744b73b6b503ccf2cb75aba095c023672b921a8\"\u003e\u003ccode\u003e0744b73\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group across 1 directory with 2 updates (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0d5a112fc54c1d5a07f3f2ec451779808902c9af\"\u003e\u003ccode\u003e0d5a112\u003c/code\u003e\u003c/a\u003e perf: bulk narrowing to avoid N**2. \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2048\"\u003e#2048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a868ed9269ca474748130f5c6360cd2aae66ffc8\"\u003e\u003ccode\u003ea868ed9\u003c/code\u003e\u003c/a\u003e docs: mention Python Discord on the index page\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.10.6...7.10.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangorestframework-stubs` from 3.16.2 to 3.16.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/releases\"\u003edjangorestframework-stubs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.16.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Breaking change]\u003c/strong\u003e Remove work-around for \u003ccode\u003eModelSerializer.instance\u003c/code\u003e field for \u003ccode\u003emany=True\u003c/code\u003e by \u003ca href=\"https://github.com/JoshFerge\"\u003e\u003ccode\u003e@​JoshFerge\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/719\"\u003etypeddjango/djangorestframework-stubs#719\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe background of this change is described in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/827\"\u003etypeddjango/djangorestframework-stubs#827\u003c/a\u003e. If this change caused a regression in your use case, please comment there ➔ \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/827\"\u003etypeddjango/djangorestframework-stubs#827\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAccept lazy strings as path in \u003ccode\u003eAPIRequestFactory\u003c/code\u003e and \u003ccode\u003eAPIClient\u003c/code\u003e http methods by \u003ca href=\"https://github.com/browniebroke\"\u003e\u003ccode\u003e@​browniebroke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/825\"\u003etypeddjango/djangorestframework-stubs#825\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eHousekeeping\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove entries from allowlist to fix the stubtest CI job by \u003ca href=\"https://github.com/browniebroke\"\u003e\u003ccode\u003e@​browniebroke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/826\"\u003etypeddjango/djangorestframework-stubs#826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003e.pre-commit-config\u003c/code\u003e and \u003ccode\u003eCONTRIBUTING.MD\u003c/code\u003e to latest Python version by \u003ca href=\"https://github.com/CodingWithSaksham\"\u003e\u003ccode\u003e@​CodingWithSaksham\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/819\"\u003etypeddjango/djangorestframework-stubs#819\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion 3.16.3 release by \u003ca href=\"https://github.com/intgr\"\u003e\u003ccode\u003e@​intgr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/828\"\u003etypeddjango/djangorestframework-stubs#828\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/CodingWithSaksham\"\u003e\u003ccode\u003e@​CodingWithSaksham\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/819\"\u003etypeddjango/djangorestframework-stubs#819\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshFerge\"\u003e\u003ccode\u003e@​JoshFerge\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/719\"\u003etypeddjango/djangorestframework-stubs#719\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/compare/3.16.2...3.16.3\"\u003ehttps://github.com/typeddjango/djangorestframework-stubs/compare/3.16.2...3.16.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/typeddjango/djangorestframework-stubs/commit/fbfde22b046dcdb362c252db20339c39f03addf0\"\u003e\u003ccode\u003efbfde22\u003c/code\u003e\u003c/a\u003e Version 3.16.3 release (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/828\"\u003e#828\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/eff0fab534bdaac9b8b87199e32a5bb0ad8bcca0\"\u003e\u003ccode\u003eeff0fab\u003c/code\u003e\u003c/a\u003e [Breaking change] Remove work-around for \u003ccode\u003eModelSerializer.instance\u003c/code\u003e field for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/363c31901cac51871ae27d83186e54873181dea2\"\u003e\u003ccode\u003e363c319\u003c/code\u003e\u003c/a\u003e Bump types-pyyaml from 6.0.12.20250822 to 6.0.12.20250915 (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/824\"\u003e#824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/37b5686ed5e6a976a08a77fc6a08e4bd86dee46e\"\u003e\u003ccode\u003e37b5686\u003c/code\u003e\u003c/a\u003e Bump types-requests from 2.32.4.20250809 to 2.32.4.20250913 (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/822\"\u003e#822\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/774b0a203f43f0b23caa1c6711283e77c2452ba3\"\u003e\u003ccode\u003e774b0a2\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/823\"\u003e#823\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/4494f8253cabd2a447291a44b7462de10eea1a70\"\u003e\u003ccode\u003e4494f82\u003c/code\u003e\u003c/a\u003e Accept lazy strings as path in \u003ccode\u003eAPIRequestFactory\u003c/code\u003e and \u003ccode\u003eAPIClient\u003c/code\u003e http metho...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/56e621fd4faef40c23cfd1f9d04a936924cd5cce\"\u003e\u003ccode\u003e56e621f\u003c/code\u003e\u003c/a\u003e Remove entries from allowlist breaking the stubtest script (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/826\"\u003e#826\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/324d4cb49972198c830f2450d935f1432a0c2b73\"\u003e\u003ccode\u003e324d4cb\u003c/code\u003e\u003c/a\u003e Update mypy requirement from \u0026lt;1.18,\u0026gt;=1.13 to \u0026gt;=1.13,\u0026lt;1.19 (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/821\"\u003e#821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/48152ecf026e83e16b1c8a004466fc8e3aa27add\"\u003e\u003ccode\u003e48152ec\u003c/code\u003e\u003c/a\u003e Updated \u003ccode\u003e.pre-commit-config\u003c/code\u003e and \u003ccode\u003eCONTRIBUTING.MD\u003c/code\u003e to latest Python version (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/7cbec3a20d70a00ea03eeb3c6cff6cb3a9075bf9\"\u003e\u003ccode\u003e7cbec3a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/820\"\u003e#820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/compare/3.16.2...3.16.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.1 to 1.18.2\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\u003ch2\u003eMypy 1.18.1\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\nimprovements and bug fixes. You can install it as follows:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install -U mypy\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eYou can read the full documentation for this release on \u003ca href=\"http://mypy.readthedocs.io\"\u003eRead the Docs\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eMypy Performance Improvements\u003c/h3\u003e\n\u003cp\u003eMypy 1.18.1 includes numerous performance improvements, resulting in about 40% speedup\ncompared to 1.17 when type checking mypy itself. In extreme cases, the improvement\ncan be 10x or higher. The list below is an overview of the various mypy optimizations.\nMany mypyc improvements (discussed in a separate section below) also improve performance.\u003c/p\u003e\n\u003cp\u003eType caching optimizations have a small risk of causing regressions. When\nreporting issues with unexpected inferred types, please also check if\n\u003ccode\u003e--disable-expression-cache\u003c/code\u003e will work around the issue, as it turns off some of\nthese optimizations.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprove self check performance by 1.8% (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19768\"\u003e19768\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python/mypy/pull/19769\"\u003e19769\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python/mypy/pull/19770\"\u003e19770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize fixed-format deserialization (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19765\"\u003e19765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse macros to optimize fixed-format deserialization (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19757\"\u003e19757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTwo additional micro‑optimizations (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19627\"\u003e19627\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAnother set of micro‑optimizations (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19633\"\u003e19633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache common types (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19621\"\u003e19621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip more method bodies in third‑party libraries for speed (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19586\"\u003e19586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify the representation of callable types (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19580\"\u003e19580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd cache for types of some expressions (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19505\"\u003e19505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse cache for dictionary expressions (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19536\"\u003e19536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse cache for binary operations (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19523\"\u003e19523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache types of type objects (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19514\"\u003e19514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid duplicate work when checking boolean operations (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19515\"\u003e19515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize generic inference passes (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19501\"\u003e19501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up the default plugin (Jukka Lehtosalo, PRs \u003ca href=\"https://redirect.github.com/python/mypy/pull/19385\"\u003e19385\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python/mypy/pull/19462\"\u003e19462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove nested imports from the default plugin (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19388\"\u003e19388\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMicro‑optimize type expansion (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19461\"\u003e19461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMicro‑optimize type indirection (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19460\"\u003e19460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMicro‑optimize the plugin framework (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19464\"\u003e19464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid temporary set creation in subtype checking (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19463\"\u003e19463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSubtype checking micro‑optimization (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19384\"\u003e19384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReturn early where possible in subtype check (Stanislav Terliakov, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19400\"\u003e19400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeduplicate some types before joining (Stanislav Terliakov, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19409\"\u003e19409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up type checking by caching argument inference context (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19323\"\u003e19323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize binding method self argument type and deprecation checks (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19556\"\u003e19556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eKeep trivial instance types/aliases during expansion (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19543\"\u003e19543\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed‑Format Cache (Experimental)\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/python/mypy/commit/df05f05555ee62dbdb9960c64cad186172e92be1\"\u003e\u003ccode\u003edf05f05\u003c/code\u003e\u003c/a\u003e remove +dev from version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/01a7a1285d03cb7a330359b22cb462aacb5f9720\"\u003e\u003ccode\u003e01a7a12\u003c/code\u003e\u003c/a\u003e Update changelog for 1.18.2 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19873\"\u003e#19873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/ca5abf09f3bfc543ac9c18a364696bc5da20bc03\"\u003e\u003ccode\u003eca5abf0\u003c/code\u003e\u003c/a\u003e Typeshed cherry-pick: Make type of \u003ccode\u003eunitest.mock.Any\u003c/code\u003e a subclass of \u003ccode\u003eAny\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python/mypy/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/9d794b57d9c5b03d61caa3286756c05e0ae3021b\"\u003e\u003ccode\u003e9d794b5\u003c/code\u003e\u003c/a\u003e [mypyc] fix: inappropriate \u003ccode\u003eNone\u003c/code\u003es in f-strings (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19846\"\u003e#19846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2c0510c84868b6bb42ef0f305b701e530a85c25f\"\u003e\u003ccode\u003e2c0510c\u003c/code\u003e\u003c/a\u003e stubtest: additional guidance on errors when runtime is object.\u003cstrong\u003einit\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19733\"\u003e#19733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2f3f03c3e39e68dbfa3544c01a34f99803b3e1c2\"\u003e\u003ccode\u003e2f3f03c\u003c/code\u003e\u003c/a\u003e Bump version to 1.18.2+dev for point release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/76698412bc1f3ca99000d52649acd5a0e06aa71d\"\u003e\u003ccode\u003e7669841\u003c/code\u003e\u003c/a\u003e Fix crash on recursive alias in indirection.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19845\"\u003e#19845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.1...v1.18.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.13.0 to 0.13.1\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.13.1\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-09-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Detect unnecessary \u003ccode\u003eNone\u003c/code\u003e default for additional key expression types (\u003ccode\u003eSIM910\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20343\"\u003e#20343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Add fix for \u003ccode\u003ePTH123\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20169\"\u003e#20169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Fix \u003ccode\u003ePTH101\u003c/code\u003e, \u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH121\u003c/code\u003e fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20143\"\u003e#20143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make \u003ccode\u003ePTH111\u003c/code\u003e fix unsafe because it can change behavior (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20215\"\u003e#20215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Fix \u003ccode\u003eE301\u003c/code\u003e to only trigger for functions immediately within a class (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19768\"\u003e#19768\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Mark \u003ccode\u003esingle-item-membership-test\u003c/code\u003e fix as always unsafe (\u003ccode\u003eFURB171\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20279\"\u003e#20279\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle t-strings for token-based rules and suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20357\"\u003e#20357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix truthiness: dict-only \u003ccode\u003e**\u003c/code\u003e displays not truthy for \u003ccode\u003eshell\u003c/code\u003e (\u003ccode\u003eS602\u003c/code\u003e, \u003ccode\u003eS604\u003c/code\u003e, \u003ccode\u003eS609\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20177\"\u003e#20177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Fix diagnostic to show correct method name for \u003ccode\u003estr.rsplit\u003c/code\u003e calls (\u003ccode\u003eSIM905\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20459\"\u003e#20459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflynt\u003c/code\u003e] Use triple quotes for joined raw strings with newlines (\u003ccode\u003eFLY002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20197\"\u003e#20197\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix false positive when class name is shadowed by local variable (\u003ccode\u003eUP008\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20427\"\u003e#20427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Prevent infinite loop with \u003ccode\u003eI002\u003c/code\u003e and \u003ccode\u003eUP026\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20327\"\u003e#20327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Recognize t-strings, generators, and lambdas in \u003ccode\u003einvalid-index-type\u003c/code\u003e (\u003ccode\u003eRUF016\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20213\"\u003e#20213\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eRUF102\u003c/code\u003e] Respect rule redirects in invalid rule code detection (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20245\"\u003e#20245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Mark the fix for \u003ccode\u003eunreliable-callable-check\u003c/code\u003e as always unsafe (\u003ccode\u003eB004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Allow dataclass attribute value instantiation from nested frozen dataclass (\u003ccode\u003eRUF009\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20352\"\u003e#20352\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fixes to \u003ccode\u003eoutput-format=sarif\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20300\"\u003e#20300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat panics as fatal diagnostics, sort panics last (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20258\"\u003e#20258\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eanalyze.string-imports-min-dots\u003c/code\u003e to settings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20375\"\u003e#20375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate README.md with Albumentations new repository URL (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20415\"\u003e#20415\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump MSRV to Rust 1.88 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20470\"\u003e#20470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnable inline noqa for multiline strings in playground (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20442\"\u003e#20442\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/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IDrokin117\"\u003e\u003ccode\u003e@​IDrokin117\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/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.13.1\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-09-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Detect unnecessary \u003ccode\u003eNone\u003c/code\u003e default for additional key expression types (\u003ccode\u003eSIM910\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20343\"\u003e#20343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Add fix for \u003ccode\u003ePTH123\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20169\"\u003e#20169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Fix \u003ccode\u003ePTH101\u003c/code\u003e, \u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH121\u003c/code\u003e fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20143\"\u003e#20143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make \u003ccode\u003ePTH111\u003c/code\u003e fix unsafe because it can change behavior (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20215\"\u003e#20215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Fix \u003ccode\u003eE301\u003c/code\u003e to only trigger for functions immediately within a class (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19768\"\u003e#19768\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Mark \u003ccode\u003esingle-item-membership-test\u003c/code\u003e fix as always unsafe (\u003ccode\u003eFURB171\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20279\"\u003e#20279\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle t-strings for token-based rules and suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20357\"\u003e#20357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix truthiness: dict-only \u003ccode\u003e**\u003c/code\u003e displays not truthy for \u003ccode\u003eshell\u003c/code\u003e (\u003ccode\u003eS602\u003c/code\u003e, \u003ccode\u003eS604\u003c/code\u003e, \u003ccode\u003eS609\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20177\"\u003e#20177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Fix diagnostic to show correct method name for \u003ccode\u003estr.rsplit\u003c/code\u003e calls (\u003ccode\u003eSIM905\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20459\"\u003e#20459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflynt\u003c/code\u003e] Use triple quotes for joined raw strings with newlines (\u003ccode\u003eFLY002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20197\"\u003e#20197\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix false positive when class name is shadowed by local variable (\u003ccode\u003eUP008\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20427\"\u003e#20427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Prevent infinite loop with \u003ccode\u003eI002\u003c/code\u003e and \u003ccode\u003eUP026\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20327\"\u003e#20327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Recognize t-strings, generators, and lambdas in \u003ccode\u003einvalid-index-type\u003c/code\u003e (\u003ccode\u003eRUF016\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20213\"\u003e#20213\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eRUF102\u003c/code\u003e] Respect rule redirects in invalid rule code detection (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20245\"\u003e#20245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Mark the fix for \u003ccode\u003eunreliable-callable-check\u003c/code\u003e as always unsafe (\u003ccode\u003eB004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Allow dataclass attribute value instantiation from nested frozen dataclass (\u003ccode\u003eRUF009\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20352\"\u003e#20352\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fixes to \u003ccode\u003eoutput-format=sarif\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20300\"\u003e#20300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat panics as fatal diagnostics, sort panics last (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20258\"\u003e#20258\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eanalyze.string-imports-min-dots\u003c/code\u003e to settings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20375\"\u003e#20375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate README.md with Albumentations new repository URL (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20415\"\u003e#20415\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump MSRV to Rust 1.88 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20470\"\u003e#20470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnable inline noqa for multiline strings in playground (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20442\"\u003e#20442\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/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IDrokin117\"\u003e\u003ccode\u003e@​IDrokin117\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\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/706be0a6e7e09936511198f2ff8982915520d138\"\u003e\u003ccode\u003e706be0a\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epyproject.toml\u003c/code\u003e to rooster config \u003ccode\u003eversion_files\u003c/code\u003e and bump to 0.13.1 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7b40428b6a1aaad88abb05b2fa291f0ae895d379\"\u003e\u003ccode\u003e7b40428\u003c/code\u003e\u003c/a\u003e Bump 0.13.1 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20473\"\u003e#20473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b9b57553681965e5cde1120f3f78ec50f8c7cd4a\"\u003e\u003ccode\u003eb9b5755\u003c/code\u003e\u003c/a\u003e Upgrade to the latest rooster version and include contributors in CHANGELOG (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b4b5d67a4a4cc7193b4867dcc748c8399571eaf8\"\u003e\u003ccode\u003eb4b5d67\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflynt\u003c/code\u003e] Use triple quotes for joined raw strings with newlines (\u003ccode\u003eFLY002\u003c/code\u003e) (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0b60584b7e561f7ff7120f3ff6ecb5394522d90f\"\u003e\u003ccode\u003e0b60584\u003c/code\u003e\u003c/a\u003e Bump MSRV to Rust 1.88 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20470\"\u003e#20470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/821b2f8b2e033bfff407a908e11d71126b7bef45\"\u003e\u003ccode\u003e821b2f8\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003erefurb\u003c/code\u003e] Mark \u003ccode\u003esingle-item-membership-test\u003c/code\u003e fix as always unsafe (\u003ccode\u003eFURB171\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1758f26d941afac9ed497c5ad34253f3c5446d07\"\u003e\u003ccode\u003e1758f26\u003c/code\u003e\u003c/a\u003e Update rust toolchain to 1.90 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20469\"\u003e#20469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2502ff7638da3d290eacd4fcef34809faaeddfd5\"\u003e\u003ccode\u003e2502ff7\u003c/code\u003e\u003c/a\u003e [ty] Make TypeIs invariant in its type argument (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20428\"\u003e#20428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/144373fb3c8690043eec30a12bd5d6c55e8e9ca6\"\u003e\u003ccode\u003e144373f\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Fix \u003ccode\u003ePTH101\u003c/code\u003e, \u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH121\u003c/code\u003e fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20143\"\u003e#20143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/91995aa5169175de55494bc3bb59781c7a3097fc\"\u003e\u003ccode\u003e91995aa\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epyupgrade\u003c/code\u003e] Fix false positive when class name is shadowed by local variabl...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.13.0...0.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.40.31 to 1.40.36\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/02ae095a9cce0714cee330ee7744e6adf5ed2557\"\u003e\u003ccode\u003e02ae095\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.36'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/5f59e53a3076227719131ef7a01d230df12f491a\"\u003e\u003ccode\u003e5f59e53\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.36\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/5a8e92957f7815c737fcd23f6e728c1c162a7892\"\u003e\u003ccode\u003e5a8e929\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/22fa3d5e8445bb96e085b4663e4fc2cecaf00488\"\u003e\u003ccode\u003e22fa3d5\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.35'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/22e132e418a11c1c623756dab4b4db0bef08ee8b\"\u003e\u003ccode\u003e22e132e\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.35' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/021298e47cf619b0325b9e68e648fb7278aa9f19\"\u003e\u003ccode\u003e021298e\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.35\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/02961e67cc3c95e51795c08767e828bc22d50163\"\u003e\u003ccode\u003e02961e6\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/1564e42c44752bac70ea2cdfbb589bdcb9321cf5\"\u003e\u003ccode\u003e1564e42\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.34'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/b5c8399b34e1fed6a72bdfffe28b7e165f19490f\"\u003e\u003ccode\u003eb5c8399\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.34' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/dd6d06bedacbc7022c1a186ad3168e1b60c681f4\"\u003e\u003ccode\u003edd6d06b\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.34\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.40.31...1.40.36\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `qrcode` from 7.4.2 to 8.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lincolnloop/python-qrcode/blob/main/CHANGES.rst\"\u003eqrcode's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2 (01 May 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize QRColorMask apply_mask method for enhanced performance\u003c/li\u003e\n\u003cli\u003eFix typos on StyledPilImage embeded_* parameters.\nThe old parameters with the typos are still accepted\nfor backward compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1 (02 April 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0 (27 September 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.11 and 3.12.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python \u0026lt;=3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange local development setup to use Poetry_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTestsuite and code quality checks are done through Github Actions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCode quality and formatting utilises ruff_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003etyping_extensions\u003c/code\u003e as a dependency, as it's no longer required\nwith having Python 3.9+ as a requirement.\nhaving Python 3.9+ as a requirement.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOnly allow high error correction rate (\u003ccode\u003eqrcode.ERROR_CORRECT_H\u003c/code\u003e)\nwhen generating\nQR codes with embedded images to ensure content is readable\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _Poetry: \u003ca href=\"https://python-poetry.org\"\u003ehttps://python-poetry.org\u003c/a\u003e\n.. _ruff: \u003ca href=\"https://astral.sh/ruff\"\u003ehttps://astral.sh/ruff\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/lincolnloop/python-qrcode/commit/3704f57a1107dbf553a50f5b531da3859abe19cf\"\u003e\u003ccode\u003e3704f57\u003c/code\u003e\u003c/a\u003e Preparing release 8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/b593a2b86d8f9cd1bc24cc5623ee47cf1aa076b5\"\u003e\u003ccode\u003eb593a2b\u003c/code\u003e\u003c/a\u003e Fix embeded_* typo on paremeters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/d2674f83092d3573e164bb83468e51f59c85bf50\"\u003e\u003ccode\u003ed2674f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/383\"\u003e#383\u003c/a\u003e from btimby/spelling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/2ced7b4b38ea3132793723bbab588d5676fc8bc7\"\u003e\u003ccode\u003e2ced7b4\u003c/code\u003e\u003c/a\u003e Ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/c5e3f0180e025d9c0fd6adf8ed3c9998073c6137\"\u003e\u003ccode\u003ec5e3f01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/372\"\u003e#372\u003c/a\u003e from smalyu/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/cd3cd7bf87fc81860481902ca22d5b7463332b4b\"\u003e\u003ccode\u003ecd3cd7b\u003c/code\u003e\u003c/a\u003e Release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/5dcf89c56417ad37de8dba953f974324ae7b9271\"\u003e\u003ccode\u003e5dcf89c\u003c/code\u003e\u003c/a\u003e Preparing release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/10da1ba2c95886312097608bd4632ba34765e0e0\"\u003e\u003ccode\u003e10da1ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/386\"\u003e#386\u003c/a\u003e from hugovk/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/7cb996d04c6536a2dbf84cccf9fc471a200f0072\"\u003e\u003ccode\u003e7cb996d\u003c/code\u003e\u003c/a\u003e Upgrade Python syntax with pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/dc4831bde0c432e5d878b75818af38e9dc80cc87\"\u003e\u003ccode\u003edc4831b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lincolnloop/python-qrcode/compare/v7.4.2...v8.2\"\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/rafsaf/Tribal-Wars-Planer/pull/662","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/rafsaf%2FTribal-Wars-Planer/issues/662","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/662/packages"},{"uuid":"2849750136","node_id":"PR_kwDOOJYjkM6p27x4","number":47,"state":"closed","title":"chore(deps): bump the python group across 1 directory with 28 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-10-06T14:21:52.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-22T14:20:38.000Z","updated_at":"2025-10-06T14:21:52.000Z","time_to_close":1209674,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python","update_count":28,"packages":[{"name":"pillow","old_version":"11.1.0","new_version":"11.3.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"whitenoise","old_version":"6.9.0","new_version":"6.11.0","repository_url":"https://github.com/evansd/whitenoise"},{"name":"hiredis","old_version":"3.1.0","new_version":"3.2.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"celery","old_version":"5.4.0","new_version":"5.5.3","repository_url":"https://github.com/celery/celery"},{"name":"django-celery-beat","old_version":"2.7.0","new_version":"2.8.1","repository_url":"https://github.com/celery/django-celery-beat"},{"name":"uvicorn","old_version":"0.34.0","new_version":"0.36.0"},{"name":"uvicorn-worker","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/Kludex/uvicorn-worker"},{"name":"django","old_version":"5.1.8","new_version":"5.2.6","repository_url":"https://github.com/django/django"},{"name":"django-crispy-forms","old_version":"2.3","new_version":"2.4","repository_url":"https://github.com/django-crispy-forms/django-crispy-forms"},{"name":"djangorestframework","old_version":"3.16.0","new_version":"3.16.1","repository_url":"https://github.com/encode/django-rest-framework"},{"name":"django-cors-headers","old_version":"4.7.0","new_version":"4.9.0","repository_url":"https://github.com/adamchainz/django-cors-headers"},{"name":"djangorestframework-simplejwt","old_version":"5.5.0","new_version":"5.5.1","repository_url":"https://github.com/jazzband/djangorestframework-simplejwt"},{"name":"djoser","old_version":"2.3.1","new_version":"2.3.3","repository_url":"https://github.com/sunscrapers/djoser"},{"name":"qrcode","old_version":"8.1","new_version":"8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"},{"name":"psycopg","old_version":"3.2.6","new_version":"3.2.10"},{"name":"sentry-sdk","old_version":"2.25.0","new_version":"2.38.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"watchfiles","old_version":"1.0.4","new_version":"1.1.0","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"mypy","old_version":"1.15.0","new_version":"1.18.2","repository_url":"https://github.com/python/mypy"},{"name":"django-stubs","old_version":"5.1.3","new_version":"5.2.5"},{"name":"pytest","old_version":"8.3.5","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-sugar","old_version":"1.0.0","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"djangorestframework-stubs","old_version":"3.15.3","new_version":"3.16.3","repository_url":"https://github.com/typeddjango/djangorestframework-stubs"},{"name":"ruff","old_version":"0.11.2","new_version":"0.13.1","repository_url":"https://github.com/astral-sh/ruff"},{"name":"coverage","old_version":"7.8.0","new_version":"7.10.7","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"model-bakery","old_version":"1.20.4","new_version":"1.20.5","repository_url":"https://github.com/model-bakers/model_bakery"},{"name":"django-coverage-plugin","old_version":"3.1.0","new_version":"3.1.1","repository_url":"https://github.com/nedbat/django_coverage_plugin"},{"name":"pytest-django","old_version":"4.11.0","new_version":"4.11.1","repository_url":"https://github.com/pytest-dev/pytest-django"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 28 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.1.0` | `11.3.0` |\n| [whitenoise](https://github.com/evansd/whitenoise) | `6.9.0` | `6.11.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.1.0` | `3.2.1` |\n| [celery](https://github.com/celery/celery) | `5.4.0` | `5.5.3` |\n| [django-celery-beat](https://github.com/celery/django-celery-beat) | `2.7.0` | `2.8.1` |\n| [uvicorn[standard]](https://github.com/Kludex/uvicorn) | `0.34.0` | `0.36.0` |\n| [uvicorn-worker](https://github.com/Kludex/uvicorn-worker) | `0.3.0` | `0.4.0` |\n| [django](https://github.com/django/django) | `5.1.8` | `5.2.6` |\n| [django-crispy-forms](https://github.com/django-crispy-forms/django-crispy-forms) | `2.3` | `2.4` |\n| [djangorestframework](https://github.com/encode/django-rest-framework) | `3.16.0` | `3.16.1` |\n| [django-cors-headers](https://github.com/adamchainz/django-cors-headers) | `4.7.0` | `4.9.0` |\n| [djangorestframework-simplejwt](https://github.com/jazzband/djangorestframework-simplejwt) | `5.5.0` | `5.5.1` |\n| [djoser](https://github.com/sunscrapers/djoser) | `2.3.1` | `2.3.3` |\n| [qrcode](https://github.com/lincolnloop/python-qrcode) | `8.1` | `8.2` |\n| [psycopg[c]](https://github.com/psycopg/psycopg) | `3.2.6` | `3.2.10` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.25.0` | `2.38.0` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.0.4` | `1.1.0` |\n| [mypy](https://github.com/python/mypy) | `1.15.0` | `1.18.2` |\n| [django-stubs[compatible-mypy]](https://github.com/sponsors/typeddjango) | `5.1.3` | `5.2.5` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `8.4.2` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `1.0.0` | `1.1.1` |\n| [djangorestframework-stubs](https://github.com/typeddjango/djangorestframework-stubs) | `3.15.3` | `3.16.3` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.11.2` | `0.13.1` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.8.0` | `7.10.7` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.3.0` |\n| [model-bakery](https://github.com/model-bakers/model_bakery) | `1.20.4` | `1.20.5` |\n| [django-coverage-plugin](https://github.com/nedbat/django_coverage_plugin) | `3.1.0` | `3.1.1` |\n| [pytest-django](https://github.com/pytest-dev/pytest-django) | `4.11.0` | `4.11.1` |\n\n\nUpdates `pillow` from 11.1.0 to 11.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e11.3.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/11.3.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/11.3.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDeprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate fromarray mode argument \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9018\"\u003e#9018\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eDeprecate saving I mode images as PNG \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9023\"\u003e#9023\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9041\"\u003e#9041\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9042\"\u003e#9042\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8912\"\u003e#8912\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8969\"\u003e#8969\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9019\"\u003e#9019\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eImageFont does not handle multiline text \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9000\"\u003e#9000\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated Ubuntu CI targets \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8988\"\u003e#8988\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate MinGW package names \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8987\"\u003e#8987\u003c/a\u003e [\u003ca href=\"https://github.com/H4M5TER\"\u003e\u003ccode\u003e@​H4M5TER\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated docstring \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8943\"\u003e#8943\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMention that tobytes() with the raw encoder uses Pack.c \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8878\"\u003e#8878\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRefactor docs \u003ccode\u003eMakefile\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8933\"\u003e#8933\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd template for quarterly release issue \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8932\"\u003e#8932\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd list of third party plugins \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8910\"\u003e#8910\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate redirected URL \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8919\"\u003e#8919\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eDocs: use sentence case for headers \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8914\"\u003e#8914\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eDocs: remove unused Makefile targets \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8917\"\u003e#8917\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRemove indentation from lists \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8915\"\u003e#8915\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003ePython 3.13 is tested on Arch \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8894\"\u003e#8894\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove XV Thumbnails to read only section \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8893\"\u003e#8893\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8890\"\u003e#8890\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd AVIF to wheels using only aomenc and dav1d AVIF codecs for reduced size \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8858\"\u003e#8858\u003c/a\u003e [\u003ca href=\"https://github.com/fdintino\"\u003e\u003ccode\u003e@​fdintino\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUse same AVIF URL when fetching dependency \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8871\"\u003e#8871\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency mypy to v1.16.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9026\"\u003e#9026\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.49 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9014\"\u003e#9014\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency cibuildwheel to v3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9010\"\u003e#9010\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libjpeg-turbo to 3.1.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9009\"\u003e#9009\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency mypy to v1.16.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8991\"\u003e#8991\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.48 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8940\"\u003e#8940\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated Ghostscript to 10.5.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8939\"\u003e#8939\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 11.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8937\"\u003e#8937\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.3.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8949\"\u003e#8949\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency cibuildwheel to v2.23.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8931\"\u003e#8931\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 11.1.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8904\"\u003e#8904\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ematch\u003c/code\u003e parameter to \u003ccode\u003epytest.warns()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9038\"\u003e#9038\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eIncrease pytest verbosity \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9040\"\u003e#9040\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eImprove SgiImagePlugin test coverage \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8896\"\u003e#8896\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate ruff pre-commit ID \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8994\"\u003e#8994\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\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-pillow/Pillow/commit/89f1f4626a2aaf5f3d5ca6437f41def2998fbe09\"\u003e\u003ccode\u003e89f1f46\u003c/code\u003e\u003c/a\u003e 11.3.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/f2de251c769ed76acfe94b54cc87c2aee77bdadf\"\u003e\u003ccode\u003ef2de251\u003c/code\u003e\u003c/a\u003e Updated check script paths (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9052\"\u003e#9052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/84855d11c8fd790d89507ac1c51a5e393178477a\"\u003e\u003ccode\u003e84855d1\u003c/code\u003e\u003c/a\u003e Raise FileNotFoundError when opening an empty path (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9048\"\u003e#9048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/204d11d4da15879946c1120c43e6f75b2a338d5b\"\u003e\u003ccode\u003e204d11d\u003c/code\u003e\u003c/a\u003e Raise FileNotFoundError when opening an empty path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/2b39f7581e9637a7262c070d5cebb12fa70f2c86\"\u003e\u003ccode\u003e2b39f75\u003c/code\u003e\u003c/a\u003e Handle IPTC TIFF tags with incorrect type (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8925\"\u003e#8925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/e7a53ba19b477cc30d35ef9e7aab4b79e5bba172\"\u003e\u003ccode\u003ee7a53ba\u003c/code\u003e\u003c/a\u003e Do not update palette for L mode GIF frame (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8924\"\u003e#8924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c22230b761254f3abf4af774d02b18b4b5eb6c71\"\u003e\u003ccode\u003ec22230b\u003c/code\u003e\u003c/a\u003e Use save parameters as encoderinfo defaults (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9001\"\u003e#9001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/da10ed1cf3c4123a98a2f765d3beaf830d47d113\"\u003e\u003ccode\u003eda10ed1\u003c/code\u003e\u003c/a\u003e Add support for iOS (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9030\"\u003e#9030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/be2b4e78644fdc85e63f08a22514e4d32072439f\"\u003e\u003ccode\u003ebe2b4e7\u003c/code\u003e\u003c/a\u003e Fix qtables and quality scaling (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8879\"\u003e#8879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/d4162f85056223098fef0ba3f87e58519ba2955f\"\u003e\u003ccode\u003ed4162f8\u003c/code\u003e\u003c/a\u003e Updated return type\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/11.1.0...11.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `whitenoise` from 6.9.0 to 6.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/evansd/whitenoise/blob/main/docs/changelog.rst\"\u003ewhitenoise's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.11.0 (2025-09-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Django 6.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.10.0 (2025-09-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14.\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/evansd/whitenoise/commit/c9c06e9382b92fc959ffdfc3e2ec63057de82561\"\u003e\u003ccode\u003ec9c06e9\u003c/code\u003e\u003c/a\u003e Version 6.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/051c4e997a07fd3ae5e9f3ec092080102ab89d93\"\u003e\u003ccode\u003e051c4e9\u003c/code\u003e\u003c/a\u003e Support Django 6.0 (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/c903cc13394895cbb3926e48c7acecf364efcd26\"\u003e\u003ccode\u003ec903cc1\u003c/code\u003e\u003c/a\u003e Version 6.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/a81bcb0ae2dd0c5884ebadb762f46827ecb54d0f\"\u003e\u003ccode\u003ea81bcb0\u003c/code\u003e\u003c/a\u003e docs(django): use the stable version in URLs (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/626\"\u003e#626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/67b4f32b12a9700b6dcc30ced8e9ad23bf39baa1\"\u003e\u003ccode\u003e67b4f32\u003c/code\u003e\u003c/a\u003e Support Python 3.14 (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/664\"\u003e#664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/da8d333d165be1bdd9e7decbb3a293b5e55ff608\"\u003e\u003ccode\u003eda8d333\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/800072482c0652f81864ae78c26539d3dfc765b2\"\u003e\u003ccode\u003e8000724\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/662\"\u003e#662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/8fb339f0eaee9219b1e02a840b5fd2227cf2fbbf\"\u003e\u003ccode\u003e8fb339f\u003c/code\u003e\u003c/a\u003e Upgrade dependencies (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/661\"\u003e#661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/adf64ddfa5329d622cbc4740aec49b7baf0df792\"\u003e\u003ccode\u003eadf64dd\u003c/code\u003e\u003c/a\u003e Use uvx to run tox on GitHub Actions (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/660\"\u003e#660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/ad6eb204640ff69498f8fc60bd9eb876ee5771b8\"\u003e\u003ccode\u003ead6eb20\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/evansd/whitenoise/compare/6.9.0...6.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.1.0 to 3.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.1\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/uglide\"\u003e\u003ccode\u003e@​uglide\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.2.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce new type for RESP3 PUSH notifications (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/208\"\u003e#208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRun integration workflow on version branches (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/210\"\u003e#210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate hiredis to 1.3.0 (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/203\"\u003e#203\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/uglide\"\u003e\u003ccode\u003e@​uglide\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis is a maintenance release that addresses issues in RESP3 parsing.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix memory leaks and segfaults in RESP3 map parsing (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/204\"\u003e#204\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/205\"\u003e#205\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/206\"\u003e#206\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/redis/hiredis-py/commit/c6febde98009b005ad35702c40aba5f926807754\"\u003e\u003ccode\u003ec6febde\u003c/code\u003e\u003c/a\u003e Version 3.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/bbfc3a6133c5e03152172d7f77415a0e1f0266f2\"\u003e\u003ccode\u003ebbfc3a6\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/f715de2e7c636fd1649e9e038aaba80b05379df2\"\u003e\u003ccode\u003ef715de2\u003c/code\u003e\u003c/a\u003e Version 3.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/d5548270b6f2ac00be36d6c68403f1d94f81d086\"\u003e\u003ccode\u003ed554827\u003c/code\u003e\u003c/a\u003e Introduce new type for RESP3 PUSH notifications (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/208\"\u003e#208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/58fe9603cd7bcb921de7ba3f43e1556f1df81e02\"\u003e\u003ccode\u003e58fe960\u003c/code\u003e\u003c/a\u003e Run integration workflow on version branches (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/210\"\u003e#210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/86089654830a9c5f11d157173e84d7b5ba30eda4\"\u003e\u003ccode\u003e8608965\u003c/code\u003e\u003c/a\u003e Update hiredis to 1.3.0 (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/203\"\u003e#203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/ac31d58c5f78090fdfb165f6ecef4e1a539c20a4\"\u003e\u003ccode\u003eac31d58\u003c/code\u003e\u003c/a\u003e Bump version to 3.2.0-dev (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/207\"\u003e#207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/7e77f22963e8889dea6165bd6ac26203645cfb04\"\u003e\u003ccode\u003e7e77f22\u003c/code\u003e\u003c/a\u003e Fix memory leak in RESP3 map parsing (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/204\"\u003e#204\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/5b34a0e2aade3f5669e92e06b843858aaea12c30\"\u003e\u003ccode\u003e5b34a0e\u003c/code\u003e\u003c/a\u003e Use GitHub Releases to track changelogs (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/202\"\u003e#202\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.1.0...v3.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.4.0 to 5.5.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.5.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003emake the tests run on python 3.13 for gcs backend by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9677\"\u003ecelery/celery#9677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded DeepWiki to README by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9683\"\u003ecelery/celery#9683\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLimit redis to \u0026lt;=v5.2.1 to match Kombu by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9693\"\u003ecelery/celery#9693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse EX_OK instead of literal zero by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9684\"\u003ecelery/celery#9684\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake wheel metadata reproducible by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9687\"\u003ecelery/celery#9687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003elet celery install from kombu dependencies for better align by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9696\"\u003ecelery/celery#9696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix stamping documentation to clarify stamped_headers key is optional in visitor methods by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9697\"\u003ecelery/celery#9697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport apply_async without queue argument on quorum queues by \u003ca href=\"https://github.com/bityob\"\u003e\u003ccode\u003e@​bityob\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9686\"\u003ecelery/celery#9686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated rabbitmq doc about using quorum queues with task routes by \u003ca href=\"https://github.com/bityob\"\u003e\u003ccode\u003e@​bityob\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9707\"\u003ecelery/celery#9707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd: Dumper Unit Test by \u003ca href=\"https://github.com/yiyu0x\"\u003e\u003ccode\u003e@​yiyu0x\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9711\"\u003ecelery/celery#9711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd unit test for event.group_from by \u003ca href=\"https://github.com/rogerforlife\"\u003e\u003ccode\u003e@​rogerforlife\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9709\"\u003ecelery/celery#9709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: add beat_cron_starting_deadline documentation warning by \u003ca href=\"https://github.com/alirafiei75\"\u003e\u003ccode\u003e@​alirafiei75\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9712\"\u003ecelery/celery#9712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: resolve issue \u003ca href=\"https://redirect.github.com/celery/celery/issues/9569\"\u003e#9569\u003c/a\u003e by supporting distinct broker transport options for workers by \u003ca href=\"https://github.com/yiyu0x\"\u003e\u003ccode\u003e@​yiyu0x\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9695\"\u003ecelery/celery#9695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes issue with retry callback arguments in DelayedDelivery by \u003ca href=\"https://github.com/maccinza\"\u003e\u003ccode\u003e@​maccinza\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9708\"\u003ecelery/celery#9708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eget_exchange-unit-test by \u003ca href=\"https://github.com/rogerforlife\"\u003e\u003ccode\u003e@​rogerforlife\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9710\"\u003ecelery/celery#9710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eISSUE-9704: Update documentation of result_expires, filesystem backend is supported by \u003ca href=\"https://github.com/MattiasDC\"\u003e\u003ccode\u003e@​MattiasDC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9716\"\u003ecelery/celery#9716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate to blacksmith ubuntu 24.04 by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9717\"\u003ecelery/celery#9717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded unit tests for celery.utils.iso8601 by \u003ca href=\"https://github.com/jaiganeshs21\"\u003e\u003ccode\u003e@​jaiganeshs21\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9725\"\u003ecelery/celery#9725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate introduction.rst docs by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9728\"\u003ecelery/celery#9728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.5.3 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9732\"\u003ecelery/celery#9732\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/bityob\"\u003e\u003ccode\u003e@​bityob\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9686\"\u003ecelery/celery#9686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yiyu0x\"\u003e\u003ccode\u003e@​yiyu0x\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9711\"\u003ecelery/celery#9711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rogerforlife\"\u003e\u003ccode\u003e@​rogerforlife\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9709\"\u003ecelery/celery#9709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alirafiei75\"\u003e\u003ccode\u003e@​alirafiei75\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9712\"\u003ecelery/celery#9712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/maccinza\"\u003e\u003ccode\u003e@​maccinza\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9708\"\u003ecelery/celery#9708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MattiasDC\"\u003e\u003ccode\u003e@​MattiasDC\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9716\"\u003ecelery/celery#9716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaiganeshs21\"\u003e\u003ccode\u003e@​jaiganeshs21\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9725\"\u003ecelery/celery#9725\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.5.2...v5.5.3\"\u003ehttps://github.com/celery/celery/compare/v5.5.2...v5.5.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.5.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix calculating remaining time across DST changes by \u003ca href=\"https://github.com/imrivera\"\u003e\u003ccode\u003e@​imrivera\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9669\"\u003ecelery/celery#9669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003esetup_logger\u003c/code\u003e from COMPAT_MODULES by \u003ca href=\"https://github.com/rconradharris\"\u003e\u003ccode\u003e@​rconradharris\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9668\"\u003ecelery/celery#9668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix mongodb bullet and fix github links in contributions section by \u003ca href=\"https://github.com/jabberwock404\"\u003e\u003ccode\u003e@​jabberwock404\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9672\"\u003ecelery/celery#9672\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.5.2 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9675\"\u003ecelery/celery#9675\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/imrivera\"\u003e\u003ccode\u003e@​imrivera\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9669\"\u003ecelery/celery#9669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rconradharris\"\u003e\u003ccode\u003e@​rconradharris\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9668\"\u003ecelery/celery#9668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jabberwock404\"\u003e\u003ccode\u003e@​jabberwock404\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9672\"\u003ecelery/celery#9672\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.5.1...v5.5.2\"\u003ehttps://github.com/celery/celery/compare/v5.5.1...v5.5.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.5.1\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.5.3\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-06-01\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- make the tests run on python 3.13 for gcs backend ([#9677](https://github.com/celery/celery/issues/9677))\n- Added DeepWiki to README ([#9683](https://github.com/celery/celery/issues/9683))\n- Limit redis to \u0026lt;=v5.2.1 to match Kombu ([#9693](https://github.com/celery/celery/issues/9693))\n- Use EX_OK instead of literal zero ([#9684](https://github.com/celery/celery/issues/9684))\n- Make wheel metadata reproducible ([#9687](https://github.com/celery/celery/issues/9687))\n- let celery install from kombu dependencies for better align ([#9696](https://github.com/celery/celery/issues/9696))\n- Fix stamping documentation to clarify stamped_headers key is optional in visitor methods ([#9697](https://github.com/celery/celery/issues/9697))\n- Support apply_async without queue argument on quorum queues ([#9686](https://github.com/celery/celery/issues/9686))\n- Updated rabbitmq doc about using quorum queues with task routes ([#9707](https://github.com/celery/celery/issues/9707))\n- Add: Dumper Unit Test ([#9711](https://github.com/celery/celery/issues/9711))\n- Add unit test for event.group_from ([#9709](https://github.com/celery/celery/issues/9709))\n- refactor: add beat_cron_starting_deadline documentation warning ([#9712](https://github.com/celery/celery/issues/9712))\n- fix: resolve issue [#9569](https://github.com/celery/celery/issues/9569) by supporting distinct broker transport options for workers ([#9695](https://github.com/celery/celery/issues/9695))\n- Fixes issue with retry callback arguments in DelayedDelivery ([#9708](https://github.com/celery/celery/issues/9708))\n- get_exchange-unit-test ([#9710](https://github.com/celery/celery/issues/9710))\n- ISSUE-9704: Update documentation of result_expires, filesystem backend is supported ([#9716](https://github.com/celery/celery/issues/9716))\n- update to blacksmith ubuntu 24.04 ([#9717](https://github.com/celery/celery/issues/9717))\n- Added unit tests for celery.utils.iso8601 ([#9725](https://github.com/celery/celery/issues/9725))\n- Update introduction.rst docs ([#9728](https://github.com/celery/celery/issues/9728))\n- Prepare for release: v5.5.3 ([#9732](https://github.com/celery/celery/issues/9732))\n\u003cp\u003e.. _version-5.5.2:\u003c/p\u003e\n\u003ch1\u003e5.5.2\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-04-25\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix calculating remaining time across DST changes (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9669\"\u003e#9669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003esetup_logger\u003c/code\u003e from COMPAT_MODULES (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9668\"\u003e#9668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mongodb bullet and fix github links in contributions section (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9672\"\u003e#9672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.5.2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9675\"\u003e#9675\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _version-5.5.1:\u003c/p\u003e\n\u003ch1\u003e5.5.1\u003c/h1\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/celery/celery/commit/088c39c0f78b23a9cdf8d1c9e265ea64d02cfd86\"\u003e\u003ccode\u003e088c39c\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.5.3 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9732\"\u003e#9732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0c1c52b7c361b65c286b30b13973df741799f4ea\"\u003e\u003ccode\u003e0c1c52b\u003c/code\u003e\u003c/a\u003e Update introduction.rst docs (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9728\"\u003e#9728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/778b009ffbad7c7d8061a4e7cc4c4445ec541da3\"\u003e\u003ccode\u003e778b009\u003c/code\u003e\u003c/a\u003e Added unit tests for celery.utils.iso8601 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9725\"\u003e#9725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/b00c1446d809b8909c4932674c49a7659838aaa6\"\u003e\u003ccode\u003eb00c144\u003c/code\u003e\u003c/a\u003e update to blacksmith ubuntu 24.04\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/5aae2ca5f455e148cd59de89907459265c5b81fc\"\u003e\u003ccode\u003e5aae2ca\u003c/code\u003e\u003c/a\u003e ISSUE-9704: Update documentation of , filesystem backend is supported if cele...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/7cf9d8987017ee6414644ff7bf32756860255d2a\"\u003e\u003ccode\u003e7cf9d89\u003c/code\u003e\u003c/a\u003e get_exchange-unit-test (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9710\"\u003e#9710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/b06e53f324f0cfe2b1c98b99d7a8a158d7034dea\"\u003e\u003ccode\u003eb06e53f\u003c/code\u003e\u003c/a\u003e Fixes issue with retry callback argument types in DelayedDelivery (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9708\"\u003e#9708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/b6cab29e6932f100c9f30706ce2600ccff5e14e3\"\u003e\u003ccode\u003eb6cab29\u003c/code\u003e\u003c/a\u003e fix: resolve issue \u003ca href=\"https://redirect.github.com/celery/celery/issues/9569\"\u003e#9569\u003c/a\u003e by supporting distinct broker transport options for ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/5fc068cd4561ddddebaa5abdde947a90105fa59e\"\u003e\u003ccode\u003e5fc068c\u003c/code\u003e\u003c/a\u003e refactor: add beat_cron_starting_deadline documentation warning (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9712\"\u003e#9712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/c7bb67f7412c61477473299ae2f251d5731be3c1\"\u003e\u003ccode\u003ec7bb67f\u003c/code\u003e\u003c/a\u003e Add unit test for event.group_from (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9709\"\u003e#9709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.4.0...v5.5.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-celery-beat` from 2.7.0 to 2.8.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/django-celery-beat/releases\"\u003edjango-celery-beat's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.8.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/876\"\u003ecelery/django-celery-beat#876\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/880\"\u003ecelery/django-celery-beat#880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor / all_as_schedule crontab query optimization by \u003ca href=\"https://github.com/alirafiei75\"\u003e\u003ccode\u003e@​alirafiei75\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/879\"\u003ecelery/django-celery-beat#879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/884\"\u003ecelery/django-celery-beat#884\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConsider server timezone on _get_timezone_offset instead of django's settings by \u003ca href=\"https://github.com/iwalucas\"\u003e\u003ccode\u003e@​iwalucas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/886\"\u003ecelery/django-celery-beat#886\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePeriodic task querying is a separate method by \u003ca href=\"https://github.com/maciej-gol\"\u003e\u003ccode\u003e@​maciej-gol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/883\"\u003ecelery/django-celery-beat#883\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/889\"\u003ecelery/django-celery-beat#889\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/iwalucas\"\u003e\u003ccode\u003e@​iwalucas\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/886\"\u003ecelery/django-celery-beat#886\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/maciej-gol\"\u003e\u003ccode\u003e@​maciej-gol\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/883\"\u003ecelery/django-celery-beat#883\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/django-celery-beat/compare/v2.8.0...v2.8.1\"\u003ehttps://github.com/celery/django-celery-beat/compare/v2.8.0...v2.8.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.8.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a new step to upload code coverage report to codecov by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/793\"\u003ecelery/django-celery-beat#793\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged codecov branch from master to main in README.rst by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/794\"\u003ecelery/django-celery-beat#794\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003erequirements/runtime.txt: Django\u0026gt;=2.2,\u0026lt;6.0 by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/792\"\u003ecelery/django-celery-beat#792\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/795\"\u003ecelery/django-celery-beat#795\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIssue 796: remove days of the week from human readable description when the whole week is specified by \u003ca href=\"https://github.com/vkhudiakova\"\u003e\u003ccode\u003e@​vkhudiakova\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/797\"\u003ecelery/django-celery-beat#797\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eblacksmith.sh: Migrate workflows to Blacksmith by \u003ca href=\"https://github.com/blacksmith-sh\"\u003e\u003ccode\u003e@​blacksmith-sh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/804\"\u003ecelery/django-celery-beat#804\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Farsi translation by \u003ca href=\"https://github.com/hamidfzm\"\u003e\u003ccode\u003e@​hamidfzm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/688\"\u003ecelery/django-celery-beat#688\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Python 3.13 to the testing by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/813\"\u003ecelery/django-celery-beat#813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix 'exipres', 'expire_seconds' not working normal as expected by \u003ca href=\"https://github.com/x-7\"\u003e\u003ccode\u003e@​x-7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/816\"\u003ecelery/django-celery-beat#816\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/820\"\u003ecelery/django-celery-beat#820\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix long period task will never be triggered by \u003ca href=\"https://github.com/daydaychen\"\u003e\u003ccode\u003e@​daydaychen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/717\"\u003ecelery/django-celery-beat#717\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/823\"\u003ecelery/django-celery-beat#823\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\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 in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/825\"\u003ecelery/django-celery-beat#825\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix for missing periodic task name in results by \u003ca href=\"https://github.com/ntindicator\"\u003e\u003ccode\u003e@​ntindicator\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/812\"\u003ecelery/django-celery-beat#812\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/837\"\u003ecelery/django-celery-beat#837\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/839\"\u003ecelery/django-celery-beat#839\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/840\"\u003ecelery/django-celery-beat#840\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003erefactor(db-scheduler): optimize all_as_schedule query by \u003ca href=\"https://github.com/alirafiei75\"\u003e\u003ccode\u003e@​alirafiei75\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/835\"\u003ecelery/django-celery-beat#835\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix(tests): correct assertion in excluded hours test by \u003ca href=\"https://github.com/kyonlee\"\u003e\u003ccode\u003e@​kyonlee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/858\"\u003ecelery/django-celery-beat#858\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efeat(admin): add task field to search_fields by \u003ca href=\"https://github.com/kyonlee\"\u003e\u003ccode\u003e@​kyonlee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/857\"\u003ecelery/django-celery-beat#857\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003epre-commit: Upgrade to ruff v0.11.2 by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/859\"\u003ecelery/django-celery-beat#859\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/860\"\u003ecelery/django-celery-beat#860\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd django 5.2rc1 to test matrix by \u003ca href=\"https://github.com/jrobichaud\"\u003e\u003ccode\u003e@​jrobichaud\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/862\"\u003ecelery/django-celery-beat#862\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadded django 5.2rc1 lts and trim down django versions by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/865\"\u003ecelery/django-celery-beat#865\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eupdate python version for docker and copy rights by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/866\"\u003ecelery/django-celery-beat#866\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ereintroduce python 3.8 in the CI by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/867\"\u003ecelery/django-celery-beat#867\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix the time calculation problem caused by start_time by \u003ca href=\"https://github.com/JinRiYao2001\"\u003e\u003ccode\u003e@​JinRiYao2001\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/844\"\u003ecelery/django-celery-beat#844\u003c/a\u003e\u003c/p\u003e\n\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/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/793\"\u003ecelery/django-celery-beat#793\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vkhudiakova\"\u003e\u003ccode\u003e@​vkhudiakova\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/797\"\u003ecelery/django-celery-beat#797\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/celery/django-celery-beat/blob/main/Changelog\"\u003edjango-celery-beat's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.8.1\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-05-13\n:release-by: Asif Saif Uddin (\u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed regression by big code refactoring.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _version-2.8.0:\u003c/p\u003e\n\u003ch1\u003e2.8.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-04-16\n:release-by: Asif Saif Uddin (\u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd official support for Django 5.2.\u003c/li\u003e\n\u003cli\u003eIssue 796: remove days of the week from human readable description when the whole week is specified.\u003c/li\u003e\n\u003cli\u003efix 'exipres', 'expire_seconds' not working normal as expected.\u003c/li\u003e\n\u003cli\u003efix long period task will never be triggered (\u003ca href=\"https://redirect.github.com/celery/django-celery-beat/issues/717\"\u003e#717\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix for missing periodic task name in results (\u003ca href=\"https://redirect.github.com/celery/django-celery-beat/issues/812\"\u003e#812\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003erefactor(db-scheduler): optimize all_as_schedule query (\u003ca href=\"https://redirect.github.com/celery/django-celery-beat/issues/835\"\u003e#835\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efeat(admin): add task field to search_fields.\u003c/li\u003e\n\u003cli\u003eFix the time calculation problem caused by start_time (\u003ca href=\"https://redirect.github.com/celery/django-celery-beat/issues/844\"\u003e#844\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded Python 3.13 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _version-2.7.0:\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/celery/django-celery-beat/commit/2a20e5a9d2233236af73a4058cb140a733bbf5d3\"\u003e\u003ccode\u003e2a20e5a\u003c/code\u003e\u003c/a\u003e Bump version: 2.8.0 → 2.8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/django-celery-beat/commit/1466580e6afe15c5cda8feaeaf9be22a988d3b9b\"\u003e\u003ccode\u003e1466580\u003c/code\u003e\u003c/a\u003e added changelog entry for v2.8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/django-celery-beat/commit/3728f7a23c0dbb9d18556f90830466dd02544073\"\u003e\u003ccode\u003e3728f7a\u003c/code\u003e\u003c/a\u003e improve copyright\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/django-celery-beat/commit/5bebe6b89d197c19a4a0eca3a68a550a3d34fb1c\"\u003e\u003ccode\u003e5bebe6b\u003c/code\u003e\u003c/a\u003e remove flake8plus from make file as not needed anymore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/django-celery-beat/commit/62ba138b78d79295625cb340d8bcc19f37808022\"\u003e\u003ccode\u003e62ba138\u003c/code\u003e\u003c/a\u003e use django 5.2 stable version in ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/django-celery-beat/commit/942154f335599a166e7702a34117a296810bdefc\"\u003e\u003ccode\u003e942154f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/celery/django-celery-beat/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/django-celery-beat/commit/d78ba7a908a62d48108e16b51c70a2e0dace17dd\"\u003e\u003ccode\u003ed78ba7a\u003c/code\u003e\u003c/a\u003e Make list (\u003ca href=\"https://redirect.github.com/celery/django-celery-beat/issues/883\"\u003e#883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/django-celery-beat/commit/e64526219f52270e1ed464467ce8a6336eea2380\"\u003e\u003ccode\u003ee645262\u003c/code\u003e\u003c/a\u003e Consider server timezone on _get_timezone_offset instead of django's settings...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/django-celery-beat/commit/0c5b652ffa318818d6aebf45e18ef9f3b37e29dd\"\u003e\u003ccode\u003e0c5b652\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/celery/django-celery-beat/issues/884\"\u003e#884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/django-celery-beat/commit/87c059706506994f677e82426c80028ad9894af1\"\u003e\u003ccode\u003e87c0597\u003c/code\u003e\u003c/a\u003e Refactor / all_as_schedule crontab query optimization (\u003ca href=\"https://redirect.github.com/celery/django-celery-beat/issues/879\"\u003e#879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/django-celery-beat/compare/v2.7.0...v2.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn[standard]` from 0.34.0 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[standard]'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\u003ch2\u003eVersion 0.34.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFlush the stdout buffer on Windows to trigger reload by \u003ca href=\"https://github.com/jamesh1999\"\u003e\u003ccode\u003e@​jamesh1999\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2604\"\u003eencode/uvicorn#2604\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/jamesh1999\"\u003e\u003ccode\u003e@​jamesh1999\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2604\"\u003eencode/uvicorn#2604\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[standard]'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\u003ch2\u003e0.34.2 (April 19, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFlush stdout buffer on Windows to trigger reload (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2604\"\u003e#2604\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.34.1 (April 13, 2025)\u003c/h2\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate \u003ccode\u003eServerState\u003c/code\u003e in the main module (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2581\"\u003e#2581\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.0...0.36.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn-worker` from 0.3.0 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn-worker/releases\"\u003euvicorn-worker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd official support for Python 3.13 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-worker/pull/36\"\u003eKludex/uvicorn-worker#36\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport uvicorn \u0026gt;= 0.36.0 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-worker/pull/37\"\u003eKludex/uvicorn-worker#37\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion 0.4.0 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-worker/pull/38\"\u003eKludex/uvicorn-worker#38\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-worker/compare/0.3.0...0.4.0\"\u003ehttps://github.com/Kludex/uvicorn-worker/compare/0.3.0...0.4.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/Kludex/uvicorn-worker/commit/cd29cc6447cff3abc968e930023dc97e5e5080f9\"\u003e\u003ccode\u003ecd29cc6\u003c/code\u003e\u003c/a\u003e Version 0.4.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn-worker/issues/38\"\u003e#38\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn-worker/commit/c6019eb3448768f67d8f7541be656d17bed2fcbb\"\u003e\u003ccode\u003ec6019eb\u003c/code\u003e\u003c/a\u003e Support uvicorn \u0026gt;= 0.36.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn-worker/issues/37\"\u003e#37\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn-worker/commit/b96ea287e4ad3ee393cbbaf9d8ddcdae6cb46819\"\u003e\u003ccode\u003eb96ea28\u003c/code\u003e\u003c/a\u003e Bump the python-packages group across 1 directory with 9 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn-worker/issues/33\"\u003e#33\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn-worker/commit/0b796fd2724c38ef2d971c37fbfceaa331ec5aab\"\u003e\u003ccode\u003e0b796fd\u003c/code\u003e\u003c/a\u003e Add official support for Python 3.13 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn-worker/issues/36\"\u003e#36\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Kludex/uvicorn-worker/compare/0.3.0...0.4.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.1.8 to 5.2.6\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/75c4403f07b8ad25893f7832dbe8fc6814b53b2d\"\u003e\u003ccode\u003e75c4403\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.6 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4c044fcc866ec226f612c475950b690b0139d243\"\u003e\u003ccode\u003e4c044fc\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-57833 -- Protected FilteredRelation against SQL inject...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/e87ca3d6fa6fb12e06f9c755ecd3ebc3a528e02b\"\u003e\u003ccode\u003ee87ca3d\u003c/code\u003e\u003c/a\u003e [5.2.x] Made cosmetic edits to 5.2.6 release notes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ebec2c93230216f128184f5563215ad7760a7fc5\"\u003e\u003ccode\u003eebec2c9\u003c/code\u003e\u003c/a\u003e [5.2.x] Removed unused import in docs/ref/models/expressions.txt example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ace59cb83b87a4fdeab29424ea134e78de24fb27\"\u003e\u003ccode\u003eace59cb\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36431\"\u003e#36431\u003c/a\u003e -- Returned tuples for multi-column ForeignObject in val...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/16a12a979989565f471ef1a2011bab59f8226f05\"\u003e\u003ccode\u003e16a12a9\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35831\"\u003e#35831\u003c/a\u003e -- Documented the model form meta API in model form refe...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/51753bc80925ecbe07d944dd22449d5ca867b9d4\"\u003e\u003ccode\u003e51753bc\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.6, 5.1.12, and 4.2.24.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a4864551259f70e044043cf64b6925b816352156\"\u003e\u003ccode\u003ea486455\u003c/code\u003e\u003c/a\u003e [5.2.x] Corrected definition of \u0026quot;needsinfo\u0026quot; triage stage in contributing guide.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/f8e572e843b037dea9c79bcecd7b9626b2b4ceba\"\u003e\u003ccode\u003ef8e572e\u003c/code\u003e\u003c/a\u003e [5.2.x] Removed reference to flake8 file exclusions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/9c9ed6fd7a8399113a18b979c8cd6f04cfbfa30b\"\u003e\u003ccode\u003e9c9ed6f\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35530\"\u003e#35530\u003c/a\u003e -- Corrected deprecation message in auth.alogin().\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.1.8...5.2.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-crispy-forms` from 2.3 to 2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/releases\"\u003edjango-crispy-forms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eConfirmed support for Django 5.2.\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/django-crispy-forms/django-crispy-forms/blob/main/CHANGELOG.md\"\u003edjango-crispy-forms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4 (2025-04-13)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eConfirmed support for Django 5.2.\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/django-crispy-forms/django-crispy-forms/commit/b3f1d2255be531bba4acb67311a5d3c00dbd9973\"\u003e\u003ccode\u003eb3f1d22\u003c/code\u003e\u003c/a\u003e 2.4 Release. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1412\"\u003e#1412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/ac2479e16f48c265897acd2ce2455af6ad9840ef\"\u003e\u003ccode\u003eac2479e\u003c/code\u003e\u003c/a\u003e Update GitHub action versions in workflows. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1411\"\u003e#1411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/bb7030a9a07f327bc725a62341ae0e14526f82e6\"\u003e\u003ccode\u003ebb7030a\u003c/code\u003e\u003c/a\u003e Confirmed Django 5.2 support. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/a4fb3c7be1129cbd0de7895413cdb926fbb83d80\"\u003e\u003ccode\u003ea4fb3c7\u003c/code\u003e\u003c/a\u003e Pre-commit autoupdate. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1404\"\u003e#1404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/e7cc89a1a298515b3e934312f8aa1b21617c63a8\"\u003e\u003ccode\u003ee7cc89a\u003c/code\u003e\u003c/a\u003e Added Python 3.13 support. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1403\"\u003e#1403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/compare/2.3...2.4\"\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.0 to 3.16.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\u003ev3.16.1\u003c/h2\u003e\n\u003cp\u003eThis release fixes a few bugs, clean-up some old code paths for unsupported Python versions and improve translations.\u003c/p\u003e\n\u003ch2\u003eMinor changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup optional \u003ccode\u003ebackports.zoneinfo\u003c/code\u003e dependency and conditions on unsupported Python 3.8 and lower in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9681\"\u003e#9681\u003c/a\u003e. Python versions prior to 3.9 were already unsupported so this isn't considered as a breaking change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression in \u003ccode\u003eunique_together\u003c/code\u003e validation with \u003ccode\u003eSerializerMethodField\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9712\"\u003e#9712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eUniqueTogetherValidator\u003c/code\u003e to handle fields with \u003ccode\u003esource\u003c/code\u003e attribute in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9688\"\u003e#9688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop HTML line breaks on long headers in browsable API in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9438\"\u003e#9438\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTranslations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Kazakh locale support in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9713\"\u003e#9713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate translations for Korean translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9571\"\u003e#9571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate German translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9676\"\u003e#9676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Chinese translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9675\"\u003e#9675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Arabic translations-sal in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9595\"\u003e#9595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Persian translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9576\"\u003e#9576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Spanish translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9701\"\u003e#9701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Turkish Translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9749\"\u003e#9749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some typos in Brazilian Portuguese translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9673\"\u003e#9673\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumen...\n\n_Description has been truncated_","html_url":"https://github.com/shrestic/rod/pull/47","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/shrestic%2Frod/issues/47","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/47/packages"},{"uuid":"3439442005","node_id":"PR_kwDOPc3bps6pwxh7","number":28,"state":"closed","title":"chore(deps): bump qrcode from 7.4.2 to 8.2","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-09-23T15:07:46.000Z","author_association":"NONE","state_reason":null,"created_at":"2025-09-22T06:48:13.000Z","updated_at":"2025-09-23T15:07:46.000Z","time_to_close":116373,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"qrcode","old_version":"7.4.2","new_version":"8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"}],"path":null,"ecosystem":"pip"},"body":"Bumps [qrcode](https://github.com/lincolnloop/python-qrcode) from 7.4.2 to 8.2.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lincolnloop/python-qrcode/blob/main/CHANGES.rst\"\u003eqrcode's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2 (01 May 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize QRColorMask apply_mask method for enhanced performance\u003c/li\u003e\n\u003cli\u003eFix typos on StyledPilImage embeded_* parameters.\nThe old parameters with the typos are still accepted\nfor backward compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1 (02 April 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0 (27 September 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.11 and 3.12.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python \u0026lt;=3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange local development setup to use Poetry_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTestsuite and code quality checks are done through Github Actions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCode quality and formatting utilises ruff_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003etyping_extensions\u003c/code\u003e as a dependency, as it's no longer required\nwith having Python 3.9+ as a requirement.\nhaving Python 3.9+ as a requirement.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOnly allow high error correction rate (\u003ccode\u003eqrcode.ERROR_CORRECT_H\u003c/code\u003e)\nwhen generating\nQR codes with embedded images to ensure content is readable\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _Poetry: \u003ca href=\"https://python-poetry.org\"\u003ehttps://python-poetry.org\u003c/a\u003e\n.. _ruff: \u003ca href=\"https://astral.sh/ruff\"\u003ehttps://astral.sh/ruff\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/lincolnloop/python-qrcode/commit/3704f57a1107dbf553a50f5b531da3859abe19cf\"\u003e\u003ccode\u003e3704f57\u003c/code\u003e\u003c/a\u003e Preparing release 8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/b593a2b86d8f9cd1bc24cc5623ee47cf1aa076b5\"\u003e\u003ccode\u003eb593a2b\u003c/code\u003e\u003c/a\u003e Fix embeded_* typo on paremeters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/d2674f83092d3573e164bb83468e51f59c85bf50\"\u003e\u003ccode\u003ed2674f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/383\"\u003e#383\u003c/a\u003e from btimby/spelling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/2ced7b4b38ea3132793723bbab588d5676fc8bc7\"\u003e\u003ccode\u003e2ced7b4\u003c/code\u003e\u003c/a\u003e Ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/c5e3f0180e025d9c0fd6adf8ed3c9998073c6137\"\u003e\u003ccode\u003ec5e3f01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/372\"\u003e#372\u003c/a\u003e from smalyu/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/cd3cd7bf87fc81860481902ca22d5b7463332b4b\"\u003e\u003ccode\u003ecd3cd7b\u003c/code\u003e\u003c/a\u003e Release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/5dcf89c56417ad37de8dba953f974324ae7b9271\"\u003e\u003ccode\u003e5dcf89c\u003c/code\u003e\u003c/a\u003e Preparing release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/10da1ba2c95886312097608bd4632ba34765e0e0\"\u003e\u003ccode\u003e10da1ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/386\"\u003e#386\u003c/a\u003e from hugovk/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/7cb996d04c6536a2dbf84cccf9fc471a200f0072\"\u003e\u003ccode\u003e7cb996d\u003c/code\u003e\u003c/a\u003e Upgrade Python syntax with pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/dc4831bde0c432e5d878b75818af38e9dc80cc87\"\u003e\u003ccode\u003edc4831b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lincolnloop/python-qrcode/compare/v7.4.2...v8.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=qrcode\u0026package-manager=pip\u0026previous-version=7.4.2\u0026new-version=8.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/gaus-1/ExamFlow/pull/28","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/gaus-1%2FExamFlow/issues/28","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/28/packages"}],"issue_packages":[{"old_version":"7.4.2","new_version":"8.2","update_type":null,"path":"/services/auth-service","pr_created_at":"2026-06-08T13:40:27.000Z","version_change":"7.4.2 → 8.2","issue":{"uuid":"4613382470","node_id":"PR_kwDOPp7BEc7j7XK3","number":34,"state":"open","title":"Bump qrcode from 7.4.2 to 8.2 in /services/auth-service","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-06-08T13:40:27.000Z","updated_at":"2026-06-08T13:40:34.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"qrcode","old_version":"7.4.2","new_version":"8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"}],"path":"/services/auth-service","ecosystem":"pip"},"body":"Bumps [qrcode](https://github.com/lincolnloop/python-qrcode) from 7.4.2 to 8.2.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lincolnloop/python-qrcode/blob/main/CHANGES.rst\"\u003eqrcode's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2 (01 May 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize QRColorMask apply_mask method for enhanced performance\u003c/li\u003e\n\u003cli\u003eFix typos on StyledPilImage embeded_* parameters.\nThe old parameters with the typos are still accepted\nfor backward compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1 (02 April 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0 (27 September 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.11 and 3.12.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python \u0026lt;=3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange local development setup to use Poetry_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTestsuite and code quality checks are done through Github Actions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCode quality and formatting utilises ruff_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003etyping_extensions\u003c/code\u003e as a dependency, as it's no longer required\nwith having Python 3.9+ as a requirement.\nhaving Python 3.9+ as a requirement.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOnly allow high error correction rate (\u003ccode\u003eqrcode.ERROR_CORRECT_H\u003c/code\u003e)\nwhen generating\nQR codes with embedded images to ensure content is readable\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _Poetry: \u003ca href=\"https://python-poetry.org\"\u003ehttps://python-poetry.org\u003c/a\u003e\n.. _ruff: \u003ca href=\"https://astral.sh/ruff\"\u003ehttps://astral.sh/ruff\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/lincolnloop/python-qrcode/commit/3704f57a1107dbf553a50f5b531da3859abe19cf\"\u003e\u003ccode\u003e3704f57\u003c/code\u003e\u003c/a\u003e Preparing release 8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/b593a2b86d8f9cd1bc24cc5623ee47cf1aa076b5\"\u003e\u003ccode\u003eb593a2b\u003c/code\u003e\u003c/a\u003e Fix embeded_* typo on paremeters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/d2674f83092d3573e164bb83468e51f59c85bf50\"\u003e\u003ccode\u003ed2674f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/383\"\u003e#383\u003c/a\u003e from btimby/spelling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/2ced7b4b38ea3132793723bbab588d5676fc8bc7\"\u003e\u003ccode\u003e2ced7b4\u003c/code\u003e\u003c/a\u003e Ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/c5e3f0180e025d9c0fd6adf8ed3c9998073c6137\"\u003e\u003ccode\u003ec5e3f01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/372\"\u003e#372\u003c/a\u003e from smalyu/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/cd3cd7bf87fc81860481902ca22d5b7463332b4b\"\u003e\u003ccode\u003ecd3cd7b\u003c/code\u003e\u003c/a\u003e Release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/5dcf89c56417ad37de8dba953f974324ae7b9271\"\u003e\u003ccode\u003e5dcf89c\u003c/code\u003e\u003c/a\u003e Preparing release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/10da1ba2c95886312097608bd4632ba34765e0e0\"\u003e\u003ccode\u003e10da1ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/386\"\u003e#386\u003c/a\u003e from hugovk/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/7cb996d04c6536a2dbf84cccf9fc471a200f0072\"\u003e\u003ccode\u003e7cb996d\u003c/code\u003e\u003c/a\u003e Upgrade Python syntax with pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/dc4831bde0c432e5d878b75818af38e9dc80cc87\"\u003e\u003ccode\u003edc4831b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lincolnloop/python-qrcode/compare/v7.4.2...v8.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=qrcode\u0026package-manager=pip\u0026previous-version=7.4.2\u0026new-version=8.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 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/gustavo-almeidalopes/dentibot/pull/34","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/gustavo-almeidalopes%2Fdentibot/issues/34","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/34/packages"}},{"old_version":"7.4.2","new_version":"8.2","update_type":null,"path":"/services/gameserver","pr_created_at":"2026-05-31T19:13:54.000Z","version_change":"7.4.2 → 8.2","issue":{"uuid":"4558688519","node_id":"PR_kwDOOniZfc7hJCtr","number":39,"state":"closed","title":"chore(deps): bump the majors group in /services/gameserver with 15 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2026-05-31T19:39:53.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-31T19:13:54.000Z","updated_at":"2026-05-31T19:39:55.000Z","time_to_close":1559,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"majors","update_count":15,"packages":[{"name":"websockets","old_version":"11.0.3","new_version":"16.0","repository_url":"https://github.com/python-websockets/websockets"},{"name":"argon2-cffi","old_version":"23.1.0","new_version":"25.1.0","repository_url":"https://github.com/hynek/argon2-cffi"},{"name":"bcrypt","old_version":"4.0.1","new_version":"5.0.0","repository_url":"https://github.com/pyca/bcrypt"},{"name":"redis","old_version":"5.0.1","new_version":"8.0.0","repository_url":"https://github.com/redis/redis-py"},{"name":"pandas","old_version":"2.0.3","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"numpy","old_version":"1.24.3","new_version":"2.4.6","repository_url":"https://github.com/numpy/numpy"},{"name":"openai","old_version":"1.12.0","new_version":"2.38.0","repository_url":"https://github.com/openai/openai-python"},{"name":"qrcode","old_version":"7.4.2","new_version":"8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"},{"name":"pytest","old_version":"7.4.4","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"0.21.2","new_version":"1.4.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"pytest-cov","old_version":"4.1.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"black","old_version":"23.12.1","new_version":"26.5.1","repository_url":"https://github.com/psf/black"},{"name":"isort","old_version":"5.13.2","new_version":"8.0.1","repository_url":"https://github.com/PyCQA/isort"},{"name":"flake8","old_version":"6.1.0","new_version":"7.3.0","repository_url":"https://github.com/pycqa/flake8"},{"name":"mypy","old_version":"1.20.2","new_version":"2.1.0","repository_url":"https://github.com/python/mypy"}],"path":"/services/gameserver","ecosystem":"pip"},"body":"Bumps the majors group in /services/gameserver with 15 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [websockets](https://github.com/python-websockets/websockets) | `11.0.3` | `16.0` |\n| [argon2-cffi](https://github.com/hynek/argon2-cffi) | `23.1.0` | `25.1.0` |\n| [bcrypt](https://github.com/pyca/bcrypt) | `4.0.1` | `5.0.0` |\n| [redis](https://github.com/redis/redis-py) | `5.0.1` | `8.0.0` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.0.3` | `2.3.3` |\n| [numpy](https://github.com/numpy/numpy) | `1.24.3` | `2.4.6` |\n| [openai](https://github.com/openai/openai-python) | `1.12.0` | `2.38.0` |\n| [qrcode](https://github.com/lincolnloop/python-qrcode) | `7.4.2` | `8.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `7.4.4` | `9.0.3` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.21.2` | `1.4.0` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `4.1.0` | `7.1.0` |\n| [black](https://github.com/psf/black) | `23.12.1` | `26.5.1` |\n| [isort](https://github.com/PyCQA/isort) | `5.13.2` | `8.0.1` |\n| [flake8](https://github.com/pycqa/flake8) | `6.1.0` | `7.3.0` |\n| [mypy](https://github.com/python/mypy) | `1.20.2` | `2.1.0` |\n\nUpdates `websockets` from 11.0.3 to 16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-websockets/websockets/releases\"\u003ewebsockets's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e16.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://websockets.readthedocs.io/en/stable/project/changelog.html\"\u003ehttps://websockets.readthedocs.io/en/stable/project/changelog.html\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e15.0.1\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://websockets.readthedocs.io/en/stable/project/changelog.html\"\u003ehttps://websockets.readthedocs.io/en/stable/project/changelog.html\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e15.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://websockets.readthedocs.io/en/stable/project/changelog.html\"\u003ehttps://websockets.readthedocs.io/en/stable/project/changelog.html\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e14.2\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://websockets.readthedocs.io/en/stable/project/changelog.html\"\u003ehttps://websockets.readthedocs.io/en/stable/project/changelog.html\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e14.1\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://websockets.readthedocs.io/en/stable/project/changelog.html\"\u003ehttps://websockets.readthedocs.io/en/stable/project/changelog.html\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e14.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://websockets.readthedocs.io/en/stable/project/changelog.html\"\u003ehttps://websockets.readthedocs.io/en/stable/project/changelog.html\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e13.1\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://websockets.readthedocs.io/en/stable/project/changelog.html\"\u003ehttps://websockets.readthedocs.io/en/stable/project/changelog.html\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e13.0.1\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://websockets.readthedocs.io/en/stable/project/changelog.html\"\u003ehttps://websockets.readthedocs.io/en/stable/project/changelog.html\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e13.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://websockets.readthedocs.io/en/stable/project/changelog.html\"\u003ehttps://websockets.readthedocs.io/en/stable/project/changelog.html\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e12.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://websockets.readthedocs.io/en/stable/project/changelog.html\"\u003ehttps://websockets.readthedocs.io/en/stable/project/changelog.html\u003c/a\u003e for details.\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/python-websockets/websockets/commit/d4303a5d3e373fc8c34177c3dec1a9c75c8865fa\"\u003e\u003ccode\u003ed4303a5\u003c/code\u003e\u003c/a\u003e Release version 16.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/851bcd756bf114e41438f04d928aa85838724fe1\"\u003e\u003ccode\u003e851bcd7\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.3.0 to 3.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/740c8d373e10ced940fb33c3e0457991841c10c4\"\u003e\u003ccode\u003e740c8d3\u003c/code\u003e\u003c/a\u003e Temporarily remove the trio implementation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/92ea0553587ba07a4668c30dfd9e6210d9f26bc9\"\u003e\u003ccode\u003e92ea055\u003c/code\u003e\u003c/a\u003e Add missing changelog entry.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/ba74244154df5a74f044d0f8cd971acac636bb74\"\u003e\u003ccode\u003eba74244\u003c/code\u003e\u003c/a\u003e Document bug fix.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/9410483c016463a6cd08b2a5321337b85e094f10\"\u003e\u003ccode\u003e9410483\u003c/code\u003e\u003c/a\u003e Pin sphinx to avoid error in sphinxcontrib-trio.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/8e4d408e17b0bfa1a91aa62e054b8786a8132231\"\u003e\u003ccode\u003e8e4d408\u003c/code\u003e\u003c/a\u003e Document asyncio's TLS read buffer.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/cb3500b0b030715dc3caa1e3ce95affe4a79b8bd\"\u003e\u003ccode\u003ecb3500b\u003c/code\u003e\u003c/a\u003e Stop referring to the asyncio implementation as new.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/6563a9c884d92df4c889bb174dc84a56a7377686\"\u003e\u003ccode\u003e6563a9c\u003c/code\u003e\u003c/a\u003e The threading implementation supports max_queue.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-websockets/websockets/commit/9f17e92dbee2b9a14e02b2792cfbb127efbd4098\"\u003e\u003ccode\u003e9f17e92\u003c/code\u003e\u003c/a\u003e Clarify that protocol_mutex protects pending_pings.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-websockets/websockets/compare/11.0.3...16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argon2-cffi` from 23.1.0 to 25.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/hynek/argon2-cffi/releases\"\u003eargon2-cffi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.1.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eThis release is mostly about smoothing out packaging metadata and improve support for Pyodide / WebAssembly environments.\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://www.klaviyo.com\"\u003eKlaviyo\u003c/a\u003e (@\u003ca href=\"https://github.com/klaviyo\"\u003eklaviyo\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://doist.com/\"\u003eDoist\u003c/a\u003e (@\u003ca href=\"https://github.com/Doist\"\u003eDoist\u003c/a\u003e), \u003ca href=\"https://blog.alternatebuild.dev\"\u003enate nowack\u003c/a\u003e (@\u003ca href=\"https://github.com/zzstoatzz\"\u003ezzstoatzz\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), Jesse Snyder (@\u003ca href=\"https://github.com/jessesnyder\"\u003ejessesnyder\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://www.miketheman.net\"\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://mpr.crossjam.net/\"\u003eBrian M. Dennis\u003c/a\u003e (@\u003ca href=\"https://github.com/crossjam\"\u003ecrossjam\u003c/a\u003e), Moving Content AG (@\u003ca href=\"https://github.com/moving-content\"\u003emoving-content\u003c/a\u003e), \u003ca href=\"https://proteinqure.com/\"\u003eProteinQure\u003c/a\u003e (@\u003ca href=\"https://github.com/ProteinQure\"\u003eProteinQure\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\u003cp\u003eNot to forget 14 more amazing humans who chose to be generous but anonymous!\u003c/p\u003e\n\u003ch2\u003eFull Changelog\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficial support for Python 3.13 and 3.14. No code changes were necessary.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.7 is not supported anymore. \u003ca href=\"https://redirect.github.com/hynek/argon2-cffi/pull/186\"\u003e#186\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eargon2.PasswordHasher.check_needs_rehash()\u003c/code\u003e now also accepts bytes like the rest of the API. \u003ca href=\"https://redirect.github.com/hynek/argon2-cffi/pull/174\"\u003e#174\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved parameter compatibility handling for Pyodide / WebAssembly environments. \u003ca href=\"https://redirect.github.com/hynek/argon2-cffi/pull/190\"\u003e#190\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eThis release contains contributions from \u003ca href=\"https://github.com/alarmfox\"\u003e\u003ccode\u003e@​alarmfox\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/isidroas\"\u003e\u003ccode\u003e@​isidroas\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/peterc-s\"\u003e\u003ccode\u003e@​peterc-s\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/twm\"\u003e\u003ccode\u003e@​twm\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/argon2-cffi\"\u003ePyPI\u003c/a\u003e and running:\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/hynek/argon2-cffi/blob/main/CHANGELOG.md\"\u003eargon2-cffi's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi/compare/23.1.0...25.1.0\"\u003e25.1.0\u003c/a\u003e - 2025-06-03\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOfficial support for Python 3.13 and 3.14.\nNo code changes were necessary.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.7 and 3.8 are not supported anymore.\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi/pull/186\"\u003e#186\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eargon2.PasswordHasher.check_needs_rehash()\u003c/code\u003e now also accepts bytes like the rest of the API.\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi/pull/174\"\u003e#174\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImproved parameter compatibility handling for Pyodide / WebAssembly environments.\n\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi/pull/190\"\u003e#190\u003c/a\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/hynek/argon2-cffi/commit/1fcae4fc1b7ff192b5ade54f6616771e5cf5f391\"\u003e\u003ccode\u003e1fcae4f\u003c/code\u003e\u003c/a\u003e Prepare 25.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi/commit/18939b166b9df91402929394557c500d5bbf106b\"\u003e\u003ccode\u003e18939b1\u003c/code\u003e\u003c/a\u003e ci: placate dr zizmor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi/commit/8dcceb570941d5ea13d12d716335459d78461ec5\"\u003e\u003ccode\u003e8dcceb5\u003c/code\u003e\u003c/a\u003e ci: pin \u0026amp; trust\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi/commit/95422424750584fa8547ccb974c4845b7da81eb2\"\u003e\u003ccode\u003e9542242\u003c/code\u003e\u003c/a\u003e Clean up trove classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi/commit/298af7e4db7c693de5d8889ec8b8d12558367f9b\"\u003e\u003ccode\u003e298af7e\u003c/code\u003e\u003c/a\u003e Switch to dependency groups (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi/issues/202\"\u003e#202\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi/commit/2eedf07ac73ccdbf12846c4e243fcbbb03db9cb6\"\u003e\u003ccode\u003e2eedf07\u003c/code\u003e\u003c/a\u003e Update \u0026amp; rename Ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi/commit/bc861f04ffa8a39e5c27fe963dc9b8815564c39b\"\u003e\u003ccode\u003ebc861f0\u003c/code\u003e\u003c/a\u003e Add 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi/commit/f8260dd07d8e1e200f982a48039524ddacd8e4ec\"\u003e\u003ccode\u003ef8260dd\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi/issues/200\"\u003e#200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi/commit/b8321fa3b6f220a132a5836cfc982b2db9aff8a0\"\u003e\u003ccode\u003eb8321fa\u003c/code\u003e\u003c/a\u003e Add a multithreaded stress test (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi/issues/199\"\u003e#199\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hynek/argon2-cffi/commit/9143d9092b6f93f9c893d995af0d249d5c5a9feb\"\u003e\u003ccode\u003e9143d90\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/hynek/argon2-cffi/issues/198\"\u003e#198\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/hynek/argon2-cffi/compare/23.1.0...25.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bcrypt` from 4.0.1 to 5.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/bcrypt/blob/main/CHANGELOG.rst\"\u003ebcrypt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBumped MSRV to 1.74.\u003c/li\u003e\n\u003cli\u003eAdded support for Python 3.14 and free-threaded Python 3.14.\u003c/li\u003e\n\u003cli\u003eAdded support for Windows on ARM.\u003c/li\u003e\n\u003cli\u003ePassing \u003ccode\u003ehashpw\u003c/code\u003e a password longer than 72 bytes now raises a\n\u003ccode\u003eValueError\u003c/code\u003e. Previously the password was silently truncated, following the\nbehavior of the original OpenBSD \u003ccode\u003ebcrypt\u003c/code\u003e implementation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.7.\u003c/li\u003e\n\u003cli\u003eWe now support free-threaded Python 3.13.\u003c/li\u003e\n\u003cli\u003eWe now support PyPy 3.11.\u003c/li\u003e\n\u003cli\u003eWe now publish wheels for free-threaded Python 3.13, for PyPy 3.11 on\n\u003ccode\u003emanylinux\u003c/code\u003e, and for ARMv7l on \u003ccode\u003emanylinux\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump Rust dependency versions - this should resolve crashes on Python 3.13\nfree-threaded builds.\u003c/li\u003e\n\u003cli\u003eWe no longer build \u003ccode\u003emanylinux\u003c/code\u003e wheels for PyPy 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump Rust dependency versions\u003c/li\u003e\n\u003cli\u003eRemoved the \u003ccode\u003eBCRYPT_ALLOW_RUST_163\u003c/code\u003e environment variable.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump Rust dependency versions\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePublish both \u003ccode\u003epy37\u003c/code\u003e and \u003ccode\u003epy39\u003c/code\u003e wheels. This should resolve some errors\nrelating to initializing a module multiple times per process.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed the type signature on the \u003ccode\u003ekdf\u003c/code\u003e method.\u003c/li\u003e\n\u003cli\u003eFixed packaging bug on Windows.\u003c/li\u003e\n\u003cli\u003eFixed incompatibility with passlib package detection assumptions.\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/pyca/bcrypt/commit/5060bce7e6c27f55e89d5b0d22b7ae0437a362f7\"\u003e\u003ccode\u003e5060bce\u003c/code\u003e\u003c/a\u003e 5.0.0 release (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/e43f568265df7e1aabbaddccc336dbf3ea675df8\"\u003e\u003ccode\u003ee43f568\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.2.4 to 4.3.0 (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1077\"\u003e#1077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/fc9f680a96a0d8e9df4c5a1a4d991fd961a90adb\"\u003e\u003ccode\u003efc9f680\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.175 to 0.2.176 in /src/_bcrypt (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1075\"\u003e#1075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/633f46fbb33d8abfe5b9cb0c12eed79878fbff06\"\u003e\u003ccode\u003e633f46f\u003c/code\u003e\u003c/a\u003e Add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1073\"\u003e#1073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/a2fefbbcff8d46cfd00efa8d2c13956b388d6bec\"\u003e\u003ccode\u003ea2fefbb\u003c/code\u003e\u003c/a\u003e Remove pypy310 builds (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1074\"\u003e#1074\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/f60707e18f3f9728f2c6f4ce97fb8fc90721c7d3\"\u003e\u003ccode\u003ef60707e\u003c/code\u003e\u003c/a\u003e Bump wasi from 0.14.5+wasi-0.2.4 to 0.14.7+wasi-0.2.4 in /src/_bcrypt (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1071\"\u003e#1071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/c790eed8fa205403e1ea0587cf9178e866c940f3\"\u003e\u003ccode\u003ec790eed\u003c/code\u003e\u003c/a\u003e Bump unicode-ident from 1.0.18 to 1.0.19 in /src/_bcrypt (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1070\"\u003e#1070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/122cbdc6895fd70c044a2f4ad7845c2a56b93096\"\u003e\u003ccode\u003e122cbdc\u003c/code\u003e\u003c/a\u003e Bump target-lexicon from 0.13.2 to 0.13.3 in /src/_bcrypt (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1069\"\u003e#1069\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/2bd208d6c5cadba2f983280ec21cc8cf977904d0\"\u003e\u003ccode\u003e2bd208d\u003c/code\u003e\u003c/a\u003e Bump wasi from 0.14.4+wasi-0.2.4 to 0.14.5+wasi-0.2.4 in /src/_bcrypt (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1068\"\u003e#1068\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/bcrypt/commit/e1aa9e883090e0267bd7b38964fe852f70a99b88\"\u003e\u003ccode\u003ee1aa9e8\u003c/code\u003e\u003c/a\u003e remove poinless cargo cache paths from CI (\u003ca href=\"https://redirect.github.com/pyca/bcrypt/issues/1067\"\u003e#1067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/bcrypt/compare/4.0.1...5.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 5.0.1 to 8.0.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\u003e8.0.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 Highlights\u003c/h2\u003e\n\u003ch3\u003eAsync Cluster PubSub\u003c/h3\u003e\n\u003cp\u003eThis release introduces full \u003cstrong\u003easyncio Cluster PubSub support\u003c/strong\u003e, bringing shard-channel capabilities (\u003ccode\u003eSSUBSCRIBE\u003c/code\u003e, \u003ccode\u003eSUNSUBSCRIBE\u003c/code\u003e, \u003ccode\u003eSPUBLISH\u003c/code\u003e) to the async \u003ccode\u003eRedisCluster\u003c/code\u003e client. The new \u003ccode\u003eClusterPubSub\u003c/code\u003e class in \u003ccode\u003eredis.asyncio.cluster\u003c/code\u003e automatically routes shard-channel subscriptions to the correct cluster node based on key-slot hashing, manages per-node PubSub connections, and supports round-robin message retrieval across nodes. Users can create a cluster pubsub instance via \u003ccode\u003eRedisCluster.pubsub()\u003c/code\u003e and use \u003ccode\u003essubscribe()\u003c/code\u003e, \u003ccode\u003esunsubscribe()\u003c/code\u003e, and \u003ccode\u003eget_sharded_message()\u003c/code\u003e just as they would with the sync cluster client.\u003c/p\u003e\n\u003ch3\u003eKeyspace and subkey notifications\u003c/h3\u003e\n\u003cp\u003eRedis Keyspace Notifications are now supported for standalone and cluster deployments in both sync and async modes. New classes — \u003ccode\u003eKeyspaceNotifications\u003c/code\u003e, \u003ccode\u003eClusterKeyspaceNotifications\u003c/code\u003e, \u003ccode\u003eAsyncKeyspaceNotifications\u003c/code\u003e, and \u003ccode\u003eAsyncClusterKeyspaceNotifications\u003c/code\u003e — provide a high-level API for keyspace/keyevent subscriptions and subkey notification families: \u003ccode\u003esubkeyspace\u003c/code\u003e, \u003ccode\u003esubkeyevent\u003c/code\u003e, \u003ccode\u003esubkeyspaceitem\u003c/code\u003e, and \u003ccode\u003esubkeyspaceevent\u003c/code\u003e. Convenience methods like \u003ccode\u003esubscribe_keyspace()\u003c/code\u003e, \u003ccode\u003esubscribe_keyevent()\u003c/code\u003e, \u003ccode\u003esubscribe_subkeyspace()\u003c/code\u003e, \u003ccode\u003esubscribe_subkeyevent()\u003c/code\u003e, \u003ccode\u003esubscribe_subkeyspaceitem()\u003c/code\u003e, and \u003ccode\u003esubscribe_subkeyspaceevent()\u003c/code\u003e simplify common patterns, with channel classes for both key and subkey channels.\u003c/p\u003e\n\u003cp\u003eIn cluster mode, subscriptions are managed across primary nodes because each node emits notifications only for keys it owns, with built-in topology-change handling. Sync \u003ccode\u003erun_in_thread()\u003c/code\u003e and async \u003ccode\u003elisten()\u003c/code\u003e workflows are supported.\u003c/p\u003e\n\u003ch3\u003eRedis Array commands(\u003ca href=\"https://redis.io/docs/latest/develop/data-types/arrays/\"\u003ehttps://redis.io/docs/latest/develop/data-types/arrays/\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003eredis-py now supports \u003ca href=\"https://redis.io/docs/latest/develop/data-types/arrays/\"\u003eRedis Arrays\u003c/a\u003e, a preview Redis data type for sparse, index-addressable sequences of strings. New \u003ccode\u003eAR*\u003c/code\u003e command helpers cover indexed reads/writes, range scans, deletion, cursor-based insertion, ring-buffer writes, metadata, text search, and aggregation, including \u003ccode\u003eARGET\u003c/code\u003e, \u003ccode\u003eARSET\u003c/code\u003e, \u003ccode\u003eARMGET\u003c/code\u003e, \u003ccode\u003eARMSET\u003c/code\u003e, \u003ccode\u003eARSCAN\u003c/code\u003e, \u003ccode\u003eARGREP\u003c/code\u003e, \u003ccode\u003eARRING\u003c/code\u003e, and \u003ccode\u003eAROP\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eType Hints Improvements (breaking changes)\u003c/h3\u003e\n\u003cp\u003eThe \u003ccode\u003e@overload\u003c/code\u003e pattern has been applied systematically across \u003cstrong\u003ecore commands\u003c/strong\u003e (\u003ccode\u003ecore.py\u003c/code\u003e), \u003cstrong\u003eVectorSet commands\u003c/strong\u003e, and \u003cstrong\u003emodule commands\u003c/strong\u003e (Search, JSON, TimeSeries, Bloom filters) to provide distinct return types for sync and async clients. Previously, methods returned a combined \u003ccode\u003eResponseT\u003c/code\u003e (i.e., \u003ccode\u003eUnion[Awaitable[Any], Any]\u003c/code\u003e), which caused static analysis tools like mypy and Pyright to flag false positives. Now, sync clients see concrete return types (e.g., \u003ccode\u003eint\u003c/code\u003e, \u003ccode\u003ebool\u003c/code\u003e, \u003ccode\u003elist[str]\u003c/code\u003e) while async clients see \u003ccode\u003eAwaitable[...]\u003c/code\u003e wrappers. This is a \u003cstrong\u003ebreaking change for type-checking only\u003c/strong\u003e—runtime behavior is unchanged, but code relying on the old union return types in type annotations may need updates. Two new protocol types, \u003ccode\u003eSyncClientProtocol\u003c/code\u003e and \u003ccode\u003eAsyncClientProtocol\u003c/code\u003e, are used in overload signatures to enable this distinction.\u003c/p\u003e\n\u003ch3\u003eRESP3 by default with opt-in unified responses\u003c/h3\u003e\n\u003cp\u003eredis-py 8.0.0 now uses RESP3 on the wire by default while preserving legacy RESP2-compatible Python response shapes for existing applications (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4052\"\u003e#4052\u003c/a\u003e). Protocol-independent unified response shapes are available by setting \u003ccode\u003elegacy_responses=False\u003c/code\u003e, so affected commands return the same Python structure with RESP2 or RESP3.\u003c/p\u003e\n\u003cp\u003eUse \u003ccode\u003eprotocol=2\u003c/code\u003e to force RESP2 on the wire, \u003ccode\u003eprotocol=3\u003c/code\u003e to opt into native RESP3 response shapes, or \u003ccode\u003elegacy_responses=False\u003c/code\u003e to migrate to unified responses. See \u003ca href=\"https://github.com/redis/redis-py/blob/HEAD/docs/unified_responses.rst\"\u003e\u003ccode\u003ehttps://github.com/redis/redis-py/blob/HEAD/docs/unified_responses.rst\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/redis/redis-py/blob/HEAD/specs/unified_responses_migration_guide.md\"\u003e\u003ccode\u003ehttps://github.com/redis/redis-py/blob/HEAD/specs/unified_responses_migration_guide.md\u003c/code\u003e\u003c/a\u003e for the affected commands and migration details.\u003c/p\u003e\n\u003ch3\u003eConnection and retry defaults\u003c/h3\u003e\n\u003cp\u003eDefault connection settings were updated: \u003ccode\u003esocket_timeout\u003c/code\u003e and \u003ccode\u003esocket_connect_timeout\u003c/code\u003e now default to 5 seconds, TCP keepalive is enabled by default, socket reads use a 32 KB buffer, connection pools default to \u003ccode\u003emax_connections=100\u003c/code\u003e, and retry defaults now use 10 attempts with exponential jitter backoff.\u003c/p\u003e\n\u003cp\u003eNote: \u003ccode\u003esocket_timeout\u003c/code\u003e can affect blocking commands such as \u003ccode\u003eBLPOP\u003c/code\u003e/\u003ccode\u003eBRPOP\u003c/code\u003e; if a command blocks longer than the client socket timeout, it may raise \u003ccode\u003eTimeoutError\u003c/code\u003e before the command timeout elapses (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/2807\"\u003e#2807\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for new array commands (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4055\"\u003e#4055\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Cluster PubSub in asyncio (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3736\"\u003e#3736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Redis Keyspace Notifications Support for Redis Cluster (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3962\"\u003e#3962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd random load balancing strategy which allows for use of the primary (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4027\"\u003e#4027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd FPHA (floating-point homogeneous array) arg support to JSON.SET (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4011\"\u003e#4011\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded custom Claude command + XNACK command support (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4030\"\u003e#4030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding Time Series Multiple Aggregators support (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4035\"\u003e#4035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding support for new COUNT aggregator for some sorted set commands - ZINTER, ZINTERSTORE, ZUNION, ZUNIONSTORE (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4034\"\u003e#4034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding support for new INCREX command (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4067\"\u003e#4067\u003c/a\u003e \u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4077\"\u003e#4077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for PubSub subscriptions with binary channel names and handlers (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4068\"\u003e#4068\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/redis/redis-py/commit/733f80ec633d6a772a6e1ccb1c0cca6fc1afb4b6\"\u003e\u003ccode\u003e733f80e\u003c/code\u003e\u003c/a\u003e Updates in default connection and retry settings (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4082\"\u003e#4082\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/a68a16c296591e902d0c749d31781550048f280f\"\u003e\u003ccode\u003ea68a16c\u003c/code\u003e\u003c/a\u003e Updating Redis supported versions in README.md and lib version to 8.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/43a41d3d2956aa69eb0041655067ffaaaf23c6c3\"\u003e\u003ccode\u003e43a41d3\u003c/code\u003e\u003c/a\u003e Updating INCREX command arg - SATURATE now controls overflow behaviour (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4077\"\u003e#4077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/1496deba3801605cb123cb1b67adda50e85cd1e5\"\u003e\u003ccode\u003e1496deb\u003c/code\u003e\u003c/a\u003e Preserve explicit None for client metadata config (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4081\"\u003e#4081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/57dc08c550f82086afeaa68a7cd7e5df356f7217\"\u003e\u003ccode\u003e57dc08c\u003c/code\u003e\u003c/a\u003e Avoid zero-timeout async reads in hiredis connections readiness checks and re...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/cd54ddd25aa307dc7f05bc0e4387cfc294c0a4c8\"\u003e\u003ccode\u003ecd54ddd\u003c/code\u003e\u003c/a\u003e fix(typing): correct type annotation for XReadResponse (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4046\"\u003e#4046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/ab2d41fcf0f9477ac788822d7c430004076a27f2\"\u003e\u003ccode\u003eab2d41f\u003c/code\u003e\u003c/a\u003e Add support for PubSub subscriptions with binary channel names and handlers (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/ef24dc99b6f2aa9507f19aa4ce4be37745ed6c77\"\u003e\u003ccode\u003eef24dc9\u003c/code\u003e\u003c/a\u003e Randomize cluster startup node order during topology refresh (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4060\"\u003e#4060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/b604015aeb5abce4b576f9dc54ffe30a3f1ba8c6\"\u003e\u003ccode\u003eb604015\u003c/code\u003e\u003c/a\u003e Add CLAUDE.md and /sync-claude-md skill for managing (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4066\"\u003e#4066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/2b8b4fcc9986fbc1f188cc6a355d12eec814ee90\"\u003e\u003ccode\u003e2b8b4fc\u003c/code\u003e\u003c/a\u003e Fix flaky tests (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4071\"\u003e#4071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v5.0.1...v8.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pandas` from 2.0.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.0.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 `numpy` from 1.24.3 to 2.4.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.4.6 (May 18, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.6 Release Notes\u003c/h1\u003e\n\u003cp\u003eNumPy 2.4.6 is a quick release that fixes a regression discovered in the 2.4.5\nrelease.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 4 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e!EarlMilktea\u003c/li\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eSebastian Berg\u003c/li\u003e\n\u003cli\u003eWarren Weckesser\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 4 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31444\"\u003e#31444\u003c/a\u003e: MAINT: Prepare 2.4.x for further development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31453\"\u003e#31453\u003c/a\u003e: BUG: Fix regression in \u003ccode\u003earr.conj()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31459\"\u003e#31459\u003c/a\u003e: BUG: \u003ccode\u003enp.linalg.svd(..., hermitian=True)\u003c/code\u003e returns non-unitary...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31460\"\u003e#31460\u003c/a\u003e: BUG: Don't call INCREF/DECREF on descr in NpyStringAcquireAllocator...\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.4.5 (May 15, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.5 Release Notes\u003c/h1\u003e\n\u003cp\u003eNumPy 2.4.5 is a patch release that fixes bugs discovered after the 2.4.4\nrelease, has some typing improvements, and maintains infrastructure.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 17 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAleksei Nikiforov\u003c/li\u003e\n\u003cli\u003eAnarion Zuo +\u003c/li\u003e\n\u003cli\u003eAnkit Ahlawat\u003c/li\u003e\n\u003cli\u003eBreno Favaretto +\u003c/li\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eIgor Krivenko +\u003c/li\u003e\n\u003cli\u003eIjtihed Kilani +\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMaarten Baert +\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/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst\"\u003enumpy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThis is a walkthrough of the NumPy 2.4.0 release on Linux, which will be the\nfirst feature release using the \u003ccode\u003enumpy/numpy-release \u0026lt;https://github.com/numpy/numpy-release\u0026gt;\u003c/code\u003e__ repository.\u003c/p\u003e\n\u003cp\u003eThe commands can be copied into the command line, but be sure to replace 2.4.0\nwith the correct version. This should be read together with the\n:ref:\u003ccode\u003egeneral release guide \u0026lt;prepare_release\u0026gt;\u003c/code\u003e.\u003c/p\u003e\n\u003ch1\u003eFacility preparation\u003c/h1\u003e\n\u003cp\u003eBefore beginning to make a release, use the \u003ccode\u003erequirements/*_requirements.txt\u003c/code\u003e files to\nensure that you have the needed software. Most software can be installed with\npip, but some will require apt-get, dnf, or whatever your system uses for\nsoftware. You will also need a GitHub personal access token (PAT) to push the\ndocumentation. There are a few ways to streamline things:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGit can be set up to use a keyring to store your GitHub personal access token.\nSearch online for the details.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ePrior to release\u003c/h1\u003e\n\u003ch2\u003eAdd/drop Python versions\u003c/h2\u003e\n\u003cp\u003eWhen adding or dropping Python versions, multiple config and CI files need to\nbe edited in addition to changing the minimum version in \u003ccode\u003epyproject.toml\u003c/code\u003e.\nMake these changes in an ordinary PR against main and backport if necessary.\nWe currently release wheels for new Python versions after the first Python RC\nonce manylinux and cibuildwheel support that new Python version.\u003c/p\u003e\n\u003ch2\u003eBackport pull requests\u003c/h2\u003e\n\u003cp\u003eChanges that have been marked for this release must be backported to the\nmaintenance/2.4.x branch.\u003c/p\u003e\n\u003ch2\u003eUpdate 2.4.0 milestones\u003c/h2\u003e\n\u003cp\u003eLook at the issues/prs with 2.4.0 milestones and either push them off to a\nlater version, or maybe remove the milestone. You may need to add a milestone.\u003c/p\u003e\n\u003ch2\u003eCheck the numpy-release repo\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/numpy/numpy/commit/b832a09cf2a169c833dd2371e7c07aa00b293242\"\u003e\u003ccode\u003eb832a09\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31462\"\u003e#31462\u003c/a\u003e from charris/prepare-2.4.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/57cc147d2ceacffc6534642bfbdebb3a80428e1e\"\u003e\u003ccode\u003e57cc147\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.6 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/0c72b0b53b6b83c004e434b2c7855e73c000d21e\"\u003e\u003ccode\u003e0c72b0b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31459\"\u003e#31459\u003c/a\u003e from charris/backport-31347\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/9778d26e0475d381ccb7817c3b4dd8cacef2b9eb\"\u003e\u003ccode\u003e9778d26\u003c/code\u003e\u003c/a\u003e BUG: core: Don't call INCREF/DECREF on descr in NpyStringAcquireAllocator. (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/e0e38767d5d0f848ab44befeedcad71e8ef589c7\"\u003e\u003ccode\u003ee0e3876\u003c/code\u003e\u003c/a\u003e BUG: core: Don't call INCREF/DECREF on descr in NpyStringAcquireAllocator. (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/d1bffeb9ec4ec0bf029c94ea35abffa92d5c30f2\"\u003e\u003ccode\u003ed1bffeb\u003c/code\u003e\u003c/a\u003e BUG: \u003ccode\u003enp.linalg.svd(..., hermitian=True)\u003c/code\u003e returns non-unitary \u003ccode\u003evh\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31347\"\u003e#31347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/8d8d7e5a14a1da0bfb0faf609a7a7610c431e6e9\"\u003e\u003ccode\u003e8d8d7e5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31453\"\u003e#31453\u003c/a\u003e from seberg/issue-31452\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/bddaab7ace45f90148d8f2bb6e67daab2d45ec76\"\u003e\u003ccode\u003ebddaab7\u003c/code\u003e\u003c/a\u003e BUG: Fix regression in \u003ccode\u003earr.conj()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/37a1ecca8dff09b2c579a991194ac55b9971f3a7\"\u003e\u003ccode\u003e37a1ecc\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31444\"\u003e#31444\u003c/a\u003e from charris/begin-2.4.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/3c0e043217a759a8a948ade158fec14348c3b459\"\u003e\u003ccode\u003e3c0e043\u003c/code\u003e\u003c/a\u003e MAINT: Prepare 2.4.x for further development\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v1.24.3...v2.4.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openai` from 1.12.0 to 2.38.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.38.0\u003c/h2\u003e\n\u003ch2\u003e2.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.37.0\u003c/h2\u003e\n\u003ch2\u003e2.37.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.36.0...v2.37.0\"\u003ev2.36.0...v2.37.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 service_tier parameter to responses compact method (\u003ca href=\"https://github.com/openai/openai-python/commit/625827c5509ece3c40e5002be37a9bd9d91b5374\"\u003e625827c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal/types:\u003c/strong\u003e support eagerly validating pydantic iterators (\u003ca href=\"https://github.com/openai/openai-python/commit/7e527bc927cc58b74d7619abf7f1fbcfff8bddfa\"\u003e7e527bc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary client_id when using workload identity provider for auth (\u003ca href=\"https://github.com/openai/openai-python/commit/c39ea8d12a010052d7f02cebe8daabd2d1f89597\"\u003ec39ea8d\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 add missing f-string prefix in file type error message (\u003ca href=\"https://github.com/openai/openai-python/commit/c85ebd935cb4b80e7e97ce255437684f6411fb00\"\u003ec85ebd9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.36.0\u003c/h2\u003e\n\u003ch2\u003e2.36.0 (2026-05-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.35.1...v2.36.0\"\u003ev2.35.1...v2.36.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/13c639cc7d57e4fbd4406563511e15eeb88a54b2\"\u003e13c639c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e realtime 2 (\u003ca href=\"https://github.com/openai/openai-python/commit/8fe0ab87e67eeb3cc27426b50093845229520f0e\"\u003e8fe0ab8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.35.1\u003c/h2\u003e\n\u003ch2\u003e2.35.1 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.35.0...v2.35.1\"\u003ev2.35.0...v2.35.1\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/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.38.0 (2026-05-21)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.37.0...v2.38.0\"\u003ev2.37.0...v2.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e api update (\u003ca href=\"https://github.com/openai/openai-python/commit/33d1d013250053886a73d178136e6bd1b09df059\"\u003e33d1d01\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/a21700a2cd510cb9e6c88065ac8e942d4c041aa8\"\u003ea21700a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e update OpenAPI spec or Stainless config (\u003ca href=\"https://github.com/openai/openai-python/commit/00265c5daba4d2481452ad35220f1556dab6bcf6\"\u003e00265c5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e docs updates (\u003ca href=\"https://github.com/openai/openai-python/commit/ee101520d49e22c09cf8096f8cbb3848ea58a1f9\"\u003eee10152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003echeck release PR custom code sync (\u003ca href=\"https://github.com/openai/openai-python/commit/2638779a5b8fffaa8fdb6eebc1d734f15d2491f8\"\u003e2638779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eremove release automation trigger (\u003ca href=\"https://github.com/openai/openai-python/commit/bd6eea559f2996d914258a65e645981bdce3cad4\"\u003ebd6eea5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003etrigger release automation (\u003ca href=\"https://github.com/openai/openai-python/commit/f62d08201eea8e08d4bb3385662f934d4adccb29\"\u003ef62d082\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.37.0 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.36.0...v2.37.0\"\u003ev2.36.0...v2.37.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 service_tier parameter to responses compact method (\u003ca href=\"https://github.com/openai/openai-python/commit/625827c5509ece3c40e5002be37a9bd9d91b5374\"\u003e625827c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal/types:\u003c/strong\u003e support eagerly validating pydantic iterators (\u003ca href=\"https://github.com/openai/openai-python/commit/7e527bc927cc58b74d7619abf7f1fbcfff8bddfa\"\u003e7e527bc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove unnecessary client_id when using workload identity provider for auth (\u003ca href=\"https://github.com/openai/openai-python/commit/c39ea8d12a010052d7f02cebe8daabd2d1f89597\"\u003ec39ea8d\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 add missing f-string prefix in file type error message (\u003ca href=\"https://github.com/openai/openai-python/commit/c85ebd935cb4b80e7e97ce255437684f6411fb00\"\u003ec85ebd9\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.36.0 (2026-05-07)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.35.1...v2.36.0\"\u003ev2.35.1...v2.36.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e manual updates (\u003ca href=\"https://github.com/openai/openai-python/commit/13c639cc7d57e4fbd4406563511e15eeb88a54b2\"\u003e13c639c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e realtime 2 (\u003ca href=\"https://github.com/openai/openai-python/commit/8fe0ab87e67eeb3cc27426b50093845229520f0e\"\u003e8fe0ab8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.35.1 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/openai/openai-python/compare/v2.35.0...v2.35.1\"\u003ev2.35.0...v2.35.1\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e fix imagegen \u003ccode\u003esize\u003c/code\u003e enum regression (\u003ca href=\"https://github.com/openai/openai-python/commit/44846536bc3b02c393daa5bae70a85de04c7f621\"\u003e4484653\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/e75766769547601a25ed83b666c4d0fd046881f0\"\u003e\u003ccode\u003ee757667\u003c/code\u003e\u003c/a\u003e release: 2.38.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/b85b647b5312debb951814dfb9ed13f906d6bf43\"\u003e\u003ccode\u003eb85b647\u003c/code\u003e\u003c/a\u003e feat(api): api update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/d881c67866083ae187e14664e289e68a3ba04686\"\u003e\u003ccode\u003ed881c67\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;chore: check release PR custom code sync\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/d4a322816ad637330e40fdcdee9ca48bc92a2a4f\"\u003e\u003ccode\u003ed4a3228\u003c/code\u003e\u003c/a\u003e chore: check release PR custom code sync\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/48888380cdfc01e4f22f9ed7fbd5250231472e0d\"\u003e\u003ccode\u003e4888838\u003c/code\u003e\u003c/a\u003e chore: remove release automation trigger\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/74978f055a7adf004dec718e80bb46241e54d9ca\"\u003e\u003ccode\u003e74978f0\u003c/code\u003e\u003c/a\u003e chore: trigger release automation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/bab18af787cd5d962aedeb4b5b86df4f6cf28003\"\u003e\u003ccode\u003ebab18af\u003c/code\u003e\u003c/a\u003e chore(api): docs updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a6f899aa1e046dd0cc18b89c4f73260463888db6\"\u003e\u003ccode\u003ea6f899a\u003c/code\u003e\u003c/a\u003e feat(api): manual updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/2897485d445f2924c5c2a8e6a9f40eec633ff345\"\u003e\u003ccode\u003e2897485\u003c/code\u003e\u003c/a\u003e feat(api): update OpenAPI spec or Stainless config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/openai/openai-python/commit/a2f1d6c56980713619760c60a5c7bfb580b0adcb\"\u003e\u003ccode\u003ea2f1d6c\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/openai/openai-python/compare/v1.12.0...v2.38.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `qrcode` from 7.4.2 to 8.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lincolnloop/python-qrcode/blob/main/CHANGES.rst\"\u003eqrcode's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2 (01 May 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize QRColorMask apply_mask method for enhanced performance\u003c/li\u003e\n\u003cli\u003eFix typos on StyledPilImage embeded_* parameters.\nThe old parameters with the typos are still accepted\nfor backward compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1 (02 April 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0 (27 September 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.11 and 3.12.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python \u0026lt;=3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange local development setup to use Poetry_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTestsuite and code quality checks are done through Github Actions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCode quality and formatting utilises ruff_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003etyping_extensions\u003c/code\u003e as a dependency, as it's no longer required\nwith having Python 3.9+ as a requirement.\nhaving Python 3.9+ as a requirement.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOnly allow high error correction rate (\u003ccode\u003eqrcode.ERROR_CORRECT_H\u003c/code\u003e)\nwhen generating\nQR codes with embedded images to ensure content is readable\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _Poetry: \u003ca href=\"https://python-poetry.org\"\u003ehttps://python-poetry.org\u003c/a\u003e\n.. _ruff: \u003ca href=\"https://astral.sh/ruff\"\u003ehttps://astral.sh/ruff\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/lincolnloop/python-qrcode/commit/3704f57a1107dbf553a50f5b531da3859abe19cf\"\u003e\u003ccode\u003e3704f57\u003c/code\u003e\u003c/a\u003e Preparing release 8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/b593a2b86d8f9cd1bc24cc5623ee47cf1aa076b5\"\u003e\u003ccode\u003eb593a2b\u003c/code\u003e\u003c/a\u003e Fix embeded_* typo on paremeters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/d2674f83092d3573e164bb83468e51f59c85bf50\"\u003e\u003ccode\u003ed2674f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/383\"\u003e#383\u003c/a\u003e from btimby/spelling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/2ced7b4b38ea3132793723bbab588d5676fc8bc7\"\u003e\u003ccode\u003e2ced7b4\u003c/code\u003e\u003c/a\u003e Ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/c5e3f0180e025d9c0fd6adf8ed3c9998073c6137\"\u003e\u003ccode\u003ec5e3f01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/372\"\u003e#372\u003c/a\u003e from smalyu/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/cd3cd7bf87fc81860481902ca22d5b7463332b4b\"\u003e\u003ccode\u003ecd3cd7b\u003c/code\u003e\u003c/a\u003e Release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/5dcf89c56417ad37de8dba953f974324ae7b9271\"\u003e\u003ccode\u003e5dcf89c\u003c/code\u003e\u003c/a\u003e Preparing release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/10da1ba2c95886312097608bd4632ba34765e0e0\"\u003e\u003ccode\u003e10da1ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/386\"\u003e#386\u003c/a\u003e from hugovk/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/7cb996d04c6536a2dbf84cccf9fc471a200f0072\"\u003e\u003ccode\u003e7cb996d\u003c/code\u003e\u003c/a\u003e Upgrade Python syntax with pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/dc4831bde0c432e5d878b75818af38e9dc80cc87\"\u003e\u003ccode\u003edc4831b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lincolnloop/python-qrcode/compare/v7.4.2...v8.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 7.4.4 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\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\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/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\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/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/7.4.4...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-asyncio` from 0.21.2 to 1.4.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 v1.4.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.4.0\"\u003e1.4.0\u003c/a\u003e - 2026-05-26\u003c/h1\u003e\n\u003ch2\u003eDeprecated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOverriding the \u003cem\u003eevent_loop_policy\u003c/em\u003e fixture is deprecated. Use the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook instead. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1419\"\u003e#1419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook to parametrize asyncio tests with custom event loop factories.\u003c/p\u003e\n\u003cp\u003eThe hook returns a mapping of factory names to loop factories, and \u003ccode\u003epytest.mark.asyncio(loop_factories=[...])\u003c/code\u003e selects a subset of configured factories per test. When a single factory is configured, test names are unchanged.\u003c/p\u003e\n\u003cp\u003eSynchronous \u003ccode\u003e@pytest_asyncio.fixture\u003c/code\u003e functions now see the correct event loop when custom loop factories are configured, even when test code disrupts the current event loop (e.g., via \u003ccode\u003easyncio.run()\u003c/code\u003e or \u003ccode\u003easyncio.set_event_loop(None)\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1164\"\u003e#1164\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved the readability of the warning message that is displayed when \u003ccode\u003easyncio_default_fixture_loop_scope\u003c/code\u003e is unset (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1298\"\u003e#1298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly import \u003ccode\u003easyncio.AbstractEventLoopPolicy\u003c/code\u003e for type checking to avoid raising\na DeprecationWarning. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated minimum supported pytest version to v8.4.0. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1397\"\u003e#1397\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a \u003ccode\u003eResourceWarning: unclosed event loop\u003c/code\u003e warning that could occur when a synchronous test called \u003ccode\u003easyncio.run()\u003c/code\u003e or otherwise unset the current event loop after pytest-asyncio had run an async test or fixture. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/724\"\u003e#724\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded dependency on \u003ccode\u003esphinx-tabs \u0026gt;= 3.5\u003c/code\u003e to organize documentation examples into tabs. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1395\"\u003e#1395\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio v1.4.0a2\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.4.0a2\"\u003e1.4.0a2\u003c/a\u003e - 2026-05-02\u003c/h1\u003e\n\u003ch2\u003eDeprecated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOverriding the \u003cem\u003eevent_loop_policy\u003c/em\u003e fixture is deprecated. Use the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook instead. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1419\"\u003e#1419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook to parametrize asyncio tests with custom event loop factories.\u003c/p\u003e\n\u003cp\u003eThe hook returns a mapping of factory names to loop factories, and \u003ccode\u003epytest.mark.asyncio(loop_factories=[...])\u003c/code\u003e selects a subset of configured factories per test. When a single factory is configured, test names are unchanged on pytest 8.4+.\u003c/p\u003e\n\u003cp\u003eSynchronous \u003ccode\u003e@pytest_asyncio.fixture\u003c/code\u003e functions now see the correct event loop when custom loop factories are configured, even when test code disrupts the current event loop (e.g., via \u003ccode\u003easyncio.run()\u003c/code\u003e or \u003ccode\u003easyncio.set_event_loop(None)\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1164\"\u003e#1164\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved the readability of the warning message that is displayed when \u003ccode\u003easyncio_default_fixture_loop_scope\u003c/code\u003e is unset (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1298\"\u003e#1298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly import \u003ccode\u003easyncio.AbstractEventLoopPolicy\u003c/code\u003e for type checking to avoid raising\na DeprecationWarning. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1394\"\u003e#1394\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/pytest-dev/pytest-asyncio/commit/6e14cd2af9292dca1fa2b027a06bbc40b0e0e425\"\u003e\u003ccode\u003e6e14cd2\u003c/code\u003e\u003c/a\u003e chore: Prepare release of v1.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4b900fb5d0c30949c574e55dd904ee179f858a5e\"\u003e\u003ccode\u003e4b900fb\u003c/code\u003e\u003c/a\u003e Build(deps): Bump codecov/codecov-action from 6.0.0 to 6.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/ab9f63245094865c42c940a34af724b0dec1debf\"\u003e\u003ccode\u003eab9f632\u003c/code\u003e\u003c/a\u003e Build(deps): Bump zipp from 3.23.1 to 4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/a56fc77ecd59f781d8471b0f6a82bf58e08c95fa\"\u003e\u003ccode\u003ea56fc77\u003c/code\u003e\u003c/a\u003e Build(deps): Bump hypothesis from 6.152.6 to 6.152.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/e8bae9bc1f197731fc1a210c0da557af7b698e6d\"\u003e\u003ccode\u003ee8bae9b\u003c/code\u003e\u003c/a\u003e Build(deps): Bump requests from 2.34.0 to 2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/fc433402c570fd36a7a227ef4bc3abd4579299de\"\u003e\u003ccode\u003efc43340\u003c/code\u003e\u003c/a\u003e Build(deps): Bump idna from 3.14 to 3.15\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev...\n\n_Description has been truncated_","html_url":"https://github.com/Nebuspace/Sectorwars2102/pull/39","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nebuspace%2FSectorwars2102/issues/39","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/39/packages"}},{"old_version":"\u003e=7.4.2","new_version":"\u003e=8.2","update_type":null,"path":null,"pr_created_at":"2026-05-25T18:46:49.000Z","version_change":"\u003e=7.4.2 → \u003e=8.2","issue":{"uuid":"4518920774","node_id":"PR_kwDOImZqx87fI7-n","number":397,"state":"closed","title":"Update qrcode requirement from \u003e=7.4.2 to \u003e=8.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-25T22:24:32.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-25T18:46:49.000Z","updated_at":"2026-05-25T22:24:40.000Z","time_to_close":13063,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"qrcode","old_version":"\u003e=7.4.2","new_version":"\u003e=8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"}],"path":null,"ecosystem":"pip"},"body":"\u003e [!WARNING]\n\u003e Dependabot will stop supporting `python v3.9`!\n\u003e \n\u003e Please upgrade to one of the following versions: `v3.9`, `v3.10`, `v3.11`, `v3.12`, `v3.13`, or `v3.14`.\n\u003e\n\nUpdates the requirements on [qrcode](https://github.com/lincolnloop/python-qrcode) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lincolnloop/python-qrcode/blob/main/CHANGES.rst\"\u003eqrcode's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2 (01 May 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize QRColorMask apply_mask method for enhanced performance\u003c/li\u003e\n\u003cli\u003eFix typos on StyledPilImage embeded_* parameters.\nThe old parameters with the typos are still accepted\nfor backward compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1 (02 April 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0 (27 September 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.11 and 3.12.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python \u0026lt;=3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange local development setup to use Poetry_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTestsuite and code quality checks are done through Github Actions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCode quality and formatting utilises ruff_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003etyping_extensions\u003c/code\u003e as a dependency, as it's no longer required\nwith having Python 3.9+ as a requirement.\nhaving Python 3.9+ as a requirement.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOnly allow high error correction rate (\u003ccode\u003eqrcode.ERROR_CORRECT_H\u003c/code\u003e)\nwhen generating\nQR codes with embedded images to ensure content is readable\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _Poetry: \u003ca href=\"https://python-poetry.org\"\u003ehttps://python-poetry.org\u003c/a\u003e\n.. _ruff: \u003ca href=\"https://astral.sh/ruff\"\u003ehttps://astral.sh/ruff\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.4.2 (6 February 2023)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow \u003ccode\u003epypng\u003c/code\u003e factory to allow for saving to a string (like\n\u003ccode\u003eqr.save(\u0026quot;some_file.png\u0026quot;)\u003c/code\u003e) in addition to file-like objects.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.4.1 (3 February 2023)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix bad over-optimization in v7.4 that broke large QR codes. Thanks to\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/lincolnloop/python-qrcode/commit/3704f57a1107dbf553a50f5b531da3859abe19cf\"\u003e\u003ccode\u003e3704f57\u003c/code\u003e\u003c/a\u003e Preparing release 8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/b593a2b86d8f9cd1bc24cc5623ee47cf1aa076b5\"\u003e\u003ccode\u003eb593a2b\u003c/code\u003e\u003c/a\u003e Fix embeded_* typo on paremeters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/d2674f83092d3573e164bb83468e51f59c85bf50\"\u003e\u003ccode\u003ed2674f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/383\"\u003e#383\u003c/a\u003e from btimby/spelling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/2ced7b4b38ea3132793723bbab588d5676fc8bc7\"\u003e\u003ccode\u003e2ced7b4\u003c/code\u003e\u003c/a\u003e Ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/c5e3f0180e025d9c0fd6adf8ed3c9998073c6137\"\u003e\u003ccode\u003ec5e3f01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/372\"\u003e#372\u003c/a\u003e from smalyu/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/cd3cd7bf87fc81860481902ca22d5b7463332b4b\"\u003e\u003ccode\u003ecd3cd7b\u003c/code\u003e\u003c/a\u003e Release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/5dcf89c56417ad37de8dba953f974324ae7b9271\"\u003e\u003ccode\u003e5dcf89c\u003c/code\u003e\u003c/a\u003e Preparing release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/10da1ba2c95886312097608bd4632ba34765e0e0\"\u003e\u003ccode\u003e10da1ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/386\"\u003e#386\u003c/a\u003e from hugovk/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/7cb996d04c6536a2dbf84cccf9fc471a200f0072\"\u003e\u003ccode\u003e7cb996d\u003c/code\u003e\u003c/a\u003e Upgrade Python syntax with pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/dc4831bde0c432e5d878b75818af38e9dc80cc87\"\u003e\u003ccode\u003edc4831b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lincolnloop/python-qrcode/compare/v7.4.2...v8.2\"\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/laggykiller/sticker-convert/pull/397","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/laggykiller%2Fsticker-convert/issues/397","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/397/packages"}},{"old_version":"7.4.2","new_version":"8.2","update_type":null,"path":"/backend","pr_created_at":"2026-05-12T00:19:44.000Z","version_change":"7.4.2 → 8.2","issue":{"uuid":"4425231529","node_id":"PR_kwDOPa2xds7aeRcb","number":123,"state":"closed","title":"chore(deps): bump qrcode from 7.4.2 to 8.2 in /backend","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-17T05:26:55.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-12T00:19:44.000Z","updated_at":"2026-05-17T05:26:57.000Z","time_to_close":450431,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"qrcode","old_version":"7.4.2","new_version":"8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps [qrcode](https://github.com/lincolnloop/python-qrcode) from 7.4.2 to 8.2.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lincolnloop/python-qrcode/blob/main/CHANGES.rst\"\u003eqrcode's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2 (01 May 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize QRColorMask apply_mask method for enhanced performance\u003c/li\u003e\n\u003cli\u003eFix typos on StyledPilImage embeded_* parameters.\nThe old parameters with the typos are still accepted\nfor backward compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1 (02 April 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0 (27 September 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.11 and 3.12.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python \u0026lt;=3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange local development setup to use Poetry_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTestsuite and code quality checks are done through Github Actions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCode quality and formatting utilises ruff_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003etyping_extensions\u003c/code\u003e as a dependency, as it's no longer required\nwith having Python 3.9+ as a requirement.\nhaving Python 3.9+ as a requirement.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOnly allow high error correction rate (\u003ccode\u003eqrcode.ERROR_CORRECT_H\u003c/code\u003e)\nwhen generating\nQR codes with embedded images to ensure content is readable\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _Poetry: \u003ca href=\"https://python-poetry.org\"\u003ehttps://python-poetry.org\u003c/a\u003e\n.. _ruff: \u003ca href=\"https://astral.sh/ruff\"\u003ehttps://astral.sh/ruff\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/lincolnloop/python-qrcode/commit/3704f57a1107dbf553a50f5b531da3859abe19cf\"\u003e\u003ccode\u003e3704f57\u003c/code\u003e\u003c/a\u003e Preparing release 8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/b593a2b86d8f9cd1bc24cc5623ee47cf1aa076b5\"\u003e\u003ccode\u003eb593a2b\u003c/code\u003e\u003c/a\u003e Fix embeded_* typo on paremeters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/d2674f83092d3573e164bb83468e51f59c85bf50\"\u003e\u003ccode\u003ed2674f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/383\"\u003e#383\u003c/a\u003e from btimby/spelling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/2ced7b4b38ea3132793723bbab588d5676fc8bc7\"\u003e\u003ccode\u003e2ced7b4\u003c/code\u003e\u003c/a\u003e Ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/c5e3f0180e025d9c0fd6adf8ed3c9998073c6137\"\u003e\u003ccode\u003ec5e3f01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/372\"\u003e#372\u003c/a\u003e from smalyu/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/cd3cd7bf87fc81860481902ca22d5b7463332b4b\"\u003e\u003ccode\u003ecd3cd7b\u003c/code\u003e\u003c/a\u003e Release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/5dcf89c56417ad37de8dba953f974324ae7b9271\"\u003e\u003ccode\u003e5dcf89c\u003c/code\u003e\u003c/a\u003e Preparing release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/10da1ba2c95886312097608bd4632ba34765e0e0\"\u003e\u003ccode\u003e10da1ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/386\"\u003e#386\u003c/a\u003e from hugovk/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/7cb996d04c6536a2dbf84cccf9fc471a200f0072\"\u003e\u003ccode\u003e7cb996d\u003c/code\u003e\u003c/a\u003e Upgrade Python syntax with pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/dc4831bde0c432e5d878b75818af38e9dc80cc87\"\u003e\u003ccode\u003edc4831b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lincolnloop/python-qrcode/compare/v7.4.2...v8.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/WebbPulse/CarModPicker/pull/123","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/WebbPulse%2FCarModPicker/issues/123","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/123/packages"}},{"old_version":"\u003e=7.4.2","new_version":"\u003e=8.2","update_type":null,"path":"/portfolio-backend","pr_created_at":"2026-04-27T10:43:43.000Z","version_change":"\u003e=7.4.2 → \u003e=8.2","issue":{"uuid":"4335083828","node_id":"PR_kwDOPaKbKs7V7QQ2","number":117,"state":"open","title":"deps(backend)(deps): update qrcode requirement from \u003e=7.4.2 to \u003e=8.2 in /portfolio-backend","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-27T10:43:43.000Z","updated_at":"2026-04-27T10:45:35.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(backend)(deps): update","packages":[{"name":"qrcode","old_version":"\u003e=7.4.2","new_version":"\u003e=8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"}],"path":"/portfolio-backend","ecosystem":"pip"},"body":"Updates the requirements on [qrcode](https://github.com/lincolnloop/python-qrcode) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lincolnloop/python-qrcode/blob/main/CHANGES.rst\"\u003eqrcode's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2 (01 May 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize QRColorMask apply_mask method for enhanced performance\u003c/li\u003e\n\u003cli\u003eFix typos on StyledPilImage embeded_* parameters.\nThe old parameters with the typos are still accepted\nfor backward compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1 (02 April 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0 (27 September 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.11 and 3.12.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python \u0026lt;=3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange local development setup to use Poetry_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTestsuite and code quality checks are done through Github Actions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCode quality and formatting utilises ruff_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003etyping_extensions\u003c/code\u003e as a dependency, as it's no longer required\nwith having Python 3.9+ as a requirement.\nhaving Python 3.9+ as a requirement.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOnly allow high error correction rate (\u003ccode\u003eqrcode.ERROR_CORRECT_H\u003c/code\u003e)\nwhen generating\nQR codes with embedded images to ensure content is readable\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _Poetry: \u003ca href=\"https://python-poetry.org\"\u003ehttps://python-poetry.org\u003c/a\u003e\n.. _ruff: \u003ca href=\"https://astral.sh/ruff\"\u003ehttps://astral.sh/ruff\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.4.2 (6 February 2023)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow \u003ccode\u003epypng\u003c/code\u003e factory to allow for saving to a string (like\n\u003ccode\u003eqr.save(\u0026quot;some_file.png\u0026quot;)\u003c/code\u003e) in addition to file-like objects.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.4.1 (3 February 2023)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix bad over-optimization in v7.4 that broke large QR codes. Thanks to\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/lincolnloop/python-qrcode/commit/3704f57a1107dbf553a50f5b531da3859abe19cf\"\u003e\u003ccode\u003e3704f57\u003c/code\u003e\u003c/a\u003e Preparing release 8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/b593a2b86d8f9cd1bc24cc5623ee47cf1aa076b5\"\u003e\u003ccode\u003eb593a2b\u003c/code\u003e\u003c/a\u003e Fix embeded_* typo on paremeters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/d2674f83092d3573e164bb83468e51f59c85bf50\"\u003e\u003ccode\u003ed2674f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/383\"\u003e#383\u003c/a\u003e from btimby/spelling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/2ced7b4b38ea3132793723bbab588d5676fc8bc7\"\u003e\u003ccode\u003e2ced7b4\u003c/code\u003e\u003c/a\u003e Ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/c5e3f0180e025d9c0fd6adf8ed3c9998073c6137\"\u003e\u003ccode\u003ec5e3f01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/372\"\u003e#372\u003c/a\u003e from smalyu/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/cd3cd7bf87fc81860481902ca22d5b7463332b4b\"\u003e\u003ccode\u003ecd3cd7b\u003c/code\u003e\u003c/a\u003e Release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/5dcf89c56417ad37de8dba953f974324ae7b9271\"\u003e\u003ccode\u003e5dcf89c\u003c/code\u003e\u003c/a\u003e Preparing release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/10da1ba2c95886312097608bd4632ba34765e0e0\"\u003e\u003ccode\u003e10da1ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/386\"\u003e#386\u003c/a\u003e from hugovk/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/7cb996d04c6536a2dbf84cccf9fc471a200f0072\"\u003e\u003ccode\u003e7cb996d\u003c/code\u003e\u003c/a\u003e Upgrade Python syntax with pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/dc4831bde0c432e5d878b75818af38e9dc80cc87\"\u003e\u003ccode\u003edc4831b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lincolnloop/python-qrcode/compare/v7.4.2...v8.2\"\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/andresfranco/portfolio-suite/pull/117","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/andresfranco%2Fportfolio-suite/issues/117","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/117/packages"}},{"old_version":"8.0","new_version":"8.2","update_type":null,"path":"/apps/mybookkeeper/backend","pr_created_at":"2026-04-26T13:48:05.000Z","version_change":"8.0 → 8.2","issue":{"uuid":"4331014784","node_id":"PR_kwDOR8p0Wc7VueQu","number":70,"state":"closed","title":"chore(deps): Bump the python-minor-patch group in /apps/mybookkeeper/backend with 26 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-26T14:21:17.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-26T13:48:05.000Z","updated_at":"2026-04-26T14:21:19.000Z","time_to_close":1992,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","group_name":"python-minor-patch","update_count":26,"packages":[{"name":"uvicorn","old_version":"0.30.0","new_version":"0.46.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"sqlalchemy","old_version":"2.0.36","new_version":"2.0.49","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"alembic","old_version":"1.13.3","new_version":"1.18.4","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"asyncpg","old_version":"0.30.0","new_version":"0.31.0","repository_url":"https://github.com/MagicStack/asyncpg"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pydantic","old_version":"2.9.0","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.5.0","new_version":"2.14.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"email-validator","old_version":"2.1.2","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"anthropic","old_version":"0.34.0","new_version":"0.97.0","repository_url":"https://github.com/anthropics/anthropic-sdk-python"},{"name":"google-api-python-client","old_version":"2.143.0","new_version":"2.194.0","repository_url":"https://github.com/googleapis/google-api-python-client"},{"name":"google-auth-httplib2","old_version":"0.2.0","new_version":"0.3.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth-oauthlib","old_version":"1.2.1","new_version":"1.3.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"mammoth","old_version":"1.11.0","new_version":"1.12.0","repository_url":"https://github.com/mwilliamson/python-mammoth"},{"name":"httpx","old_version":"0.27.0","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"minio","old_version":"7.2.15","new_version":"7.2.20","repository_url":"https://github.com/minio/minio-py"},{"name":"sentry-sdk","old_version":"2.19.2","new_version":"2.58.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"qrcode","old_version":"8.0","new_version":"8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"},{"name":"certifi","old_version":"2026.2.25","new_version":"2026.4.22","repository_url":"https://github.com/certifi/python-certifi"},{"name":"click","old_version":"8.3.2","new_version":"8.3.3","repository_url":"https://github.com/pallets/click"},{"name":"filelock","old_version":"3.28.0","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"huggingface-hub","old_version":"1.11.0","new_version":"1.12.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"idna","old_version":"3.11","new_version":"3.13","repository_url":"https://github.com/kjd/idna"},{"name":"packaging","old_version":"26.1","new_version":"26.2","repository_url":"https://github.com/pypa/packaging"},{"name":"pydantic-core","old_version":"2.23.2","new_version":"2.46.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"typer","old_version":"0.24.1","new_version":"0.25.0","repository_url":"https://github.com/fastapi/typer"},{"name":"tzdata","old_version":"2026.1","new_version":"2026.2","repository_url":"https://github.com/python/tzdata"}],"path":"/apps/mybookkeeper/backend","ecosystem":"pip"},"body":"Bumps the python-minor-patch group in /apps/mybookkeeper/backend with 26 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.30.0` | `0.46.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.36` | `2.0.49` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.13.3` | `1.18.4` |\n| [asyncpg](https://github.com/MagicStack/asyncpg) | `0.30.0` | `0.31.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.12` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.9.0` | `2.13.3` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.5.0` | `2.14.0` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.1.2` | `2.3.0` |\n| [anthropic](https://github.com/anthropics/anthropic-sdk-python) | `0.34.0` | `0.97.0` |\n| [google-api-python-client](https://github.com/googleapis/google-api-python-client) | `2.143.0` | `2.194.0` |\n| [google-auth-httplib2](https://github.com/googleapis/google-cloud-python) | `0.2.0` | `0.3.1` |\n| [google-auth-oauthlib](https://github.com/googleapis/google-cloud-python) | `1.2.1` | `1.3.1` |\n| [mammoth](https://github.com/mwilliamson/python-mammoth) | `1.11.0` | `1.12.0` |\n| [httpx](https://github.com/encode/httpx) | `0.27.0` | `0.28.1` |\n| [minio](https://github.com/minio/minio-py) | `7.2.15` | `7.2.20` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.19.2` | `2.58.0` |\n| [qrcode](https://github.com/lincolnloop/python-qrcode) | `8.0` | `8.2` |\n| [certifi](https://github.com/certifi/python-certifi) | `2026.2.25` | `2026.4.22` |\n| [click](https://github.com/pallets/click) | `8.3.2` | `8.3.3` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.28.0` | `3.29.0` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.11.0` | `1.12.0` |\n| [idna](https://github.com/kjd/idna) | `3.11` | `3.13` |\n| [packaging](https://github.com/pypa/packaging) | `26.1` | `26.2` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.23.2` | `2.46.3` |\n| [typer](https://github.com/fastapi/typer) | `0.24.1` | `0.25.0` |\n| [tzdata](https://github.com/python/tzdata) | `2026.1` | `2026.2` |\n\nUpdates `uvicorn` from 0.30.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\u003ch2\u003eVersion 0.42.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for request body accumulation to avoid O(n^2) allocation on fragmented bodies (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2845\"\u003e#2845\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\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/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\u003ch2\u003e0.42.0 (March 16, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for request body accumulation to avoid O(n^2) allocation on fragmented bodies (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2845\"\u003e#2845\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/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.30.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 `sqlalchemy` from 2.0.36 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 `alembic` from 1.13.3 to 1.18.4\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.18.4\u003c/h1\u003e\n\u003cp\u003eReleased: February 10, 2026\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [operations]\u003c/strong\u003e Reverted the behavior of \u003ccode\u003eOperations.add_column()\u003c/code\u003e that would\nautomatically render the \u0026quot;PRIMARY KEY\u0026quot; keyword inline when a\n\u003ccode\u003eColumn\u003c/code\u003e with \u003ccode\u003eprimary_key=True\u003c/code\u003e is added. The automatic\nbehavior, added in version 1.18.2, is now opt-in via the new\n\u003ccode\u003eOperations.add_column.inline_primary_key\u003c/code\u003e parameter. This\nchange restores the ability to render a PostgreSQL SERIAL column, which is\nrequired to be \u003ccode\u003eprimary_key=True\u003c/code\u003e, while not impacting the ability to\nrender a separate primary key constraint. This also provides consistency\nwith the \u003ccode\u003eOperations.add_column.inline_references\u003c/code\u003e parameter and\ngives users explicit control over SQL generation.\u003c/p\u003e\n\u003cp\u003eTo render PRIMARY KEY inline, use the\n\u003ccode\u003eOperations.add_column.inline_primary_key\u003c/code\u003e parameter set to\n\u003ccode\u003eTrue\u003c/code\u003e:\u003c/p\u003e\n\u003cp\u003eop.add_column(\n\u0026quot;my_table\u0026quot;,\nColumn(\u0026quot;id\u0026quot;, Integer, primary_key=True),\ninline_primary_key=True\n)References: \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1232\"\u003e#1232\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e1.18.3\u003c/h1\u003e\n\u003cp\u003eReleased: January 29, 2026\u003c/p\u003e\n\u003ch2\u003ebug\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[bug] [autogenerate]\u003c/strong\u003e Fixed regression in version 1.18.0 due to \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e where autogenerate\nwould raise \u003ccode\u003eNoReferencedTableError\u003c/code\u003e when a foreign key constraint\nreferenced a table that was not part of the initial table load, including\ntables filtered out by the\n\u003ccode\u003eEnvironmentContext.configure.include_name\u003c/code\u003e callable or tables\nin remote schemas that were not included in the initial reflection run.\u003c/p\u003e\n\u003cp\u003eThe change in \u003ca href=\"https://redirect.github.com/sqlalchemy/alembic/issues/1771\"\u003e#1771\u003c/a\u003e was a performance optimization that eliminated\nadditional reflection queries for tables that were only referenced by\nforeign keys but not explicitly included in the main reflection run.\nHowever, this optimization inadvertently removed the creation of\n\u003ccode\u003eTable\u003c/code\u003e objects for these referenced tables, causing autogenerate\nto fail when processing foreign key constraints that pointed to them.\u003c/p\u003e\n\u003cp\u003eThe fix creates placeholder \u003ccode\u003eTable\u003c/code\u003e objects for foreign key targets\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 `asyncpg` from 0.30.0 to 0.31.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/MagicStack/asyncpg/releases\"\u003easyncpg's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.31.0\u003c/h2\u003e\n\u003cp\u003eEnable Python 3.14 with experimental subinterpreter/freethreading\nsupport.\u003c/p\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Python 3.14 support, experimental subinterpreter/freethreading support (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1279\"\u003e#1279\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 9e42642b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid performing type introspection on known types (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1243\"\u003e#1243\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5c9986c4)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMake \u003ccode\u003eprepare()\u003c/code\u003e not use named statements by default when cache is disabled (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1245\"\u003e#1245\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 5b14653e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImplement connection service file functionality (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1223\"\u003e#1223\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 1d63bb15)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix multi port connection string issue (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1222\"\u003e#1222\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/AndrewJackson2020\"\u003e\u003ccode\u003e@​AndrewJackson2020\u003c/code\u003e\u003c/a\u003e in 01c0db7b)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid leaking connections if _can_use_connection fails (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1269\"\u003e#1269\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/yuliy-openai\"\u003e\u003ccode\u003e@​yuliy-openai\u003c/code\u003e\u003c/a\u003e in e94302d2)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eOther\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\n(by \u003ca href=\"https://github.com/elprans\"\u003e\u003ccode\u003e@​elprans\u003c/code\u003e\u003c/a\u003e in 6c2c4904)\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/MagicStack/asyncpg/commit/71775a67277fc0aa5bd2b9f15e848826d7078c4d\"\u003e\u003ccode\u003e71775a6\u003c/code\u003e\u003c/a\u003e asyncpg v0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/508cae6441968ef7613a623fece7083cce66c2b3\"\u003e\u003ccode\u003e508cae6\u003c/code\u003e\u003c/a\u003e Test on PostgreSQL 18 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1290\"\u003e#1290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/e534e5f15c73525a6509143b3828335517360f1b\"\u003e\u003ccode\u003ee534e5f\u003c/code\u003e\u003c/a\u003e Bump cibuildwheel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/07fe5122a680f5768e39fc28d68c94b185037a52\"\u003e\u003ccode\u003e07fe512\u003c/code\u003e\u003c/a\u003e Bump pgproto\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/648b35f18199ebf2a30009376a6e9060cf7ad789\"\u003e\u003ccode\u003e648b35f\u003c/code\u003e\u003c/a\u003e Bump Cython to 3.2.1 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1288\"\u003e#1288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/9e42642b9110d206706697921b6e697a0972649d\"\u003e\u003ccode\u003e9e42642\u003c/code\u003e\u003c/a\u003e Add Python 3.14 support, experimental subinterpreter/freethreading support (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6fe1c494ef5c3069fa9149c48bf9f8f2cd69f95e\"\u003e\u003ccode\u003e6fe1c49\u003c/code\u003e\u003c/a\u003e Move development deps away from extras and into dependency groups (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1280\"\u003e#1280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/7a548166c2b23561915c481bd332013e3a415cfb\"\u003e\u003ccode\u003e7a54816\u003c/code\u003e\u003c/a\u003e Fix a couple of missed Python version guards\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/6c2c4904e61b2cd2f502540730a24e246cff2ebd\"\u003e\u003ccode\u003e6c2c490\u003c/code\u003e\u003c/a\u003e Drop support for EOL Python 3.8 (\u003ca href=\"https://redirect.github.com/MagicStack/asyncpg/issues/1281\"\u003e#1281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MagicStack/asyncpg/commit/4c60ae890d1f3800f889679657357f91a6923568\"\u003e\u003ccode\u003e4c60ae8\u003c/code\u003e\u003c/a\u003e Bump version to 0.31.0.dev0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/MagicStack/asyncpg/compare/v0.30.0...v0.31.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.12\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-binary'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.12\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix infinite loop with malformed interval (:ticket:\u003ccode\u003e1835\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\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\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\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\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/psycopg/psycopg2/commit/3a6d9d6ddc6b53eaa80b712f5fa6b23abbdc38db\"\u003e\u003ccode\u003e3a6d9d6\u003c/code\u003e\u003c/a\u003e ci: include almalinux in whieel building\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ebca6bf0f86bc6cbdc86de1eb3a53eaf49966d86\"\u003e\u003ccode\u003eebca6bf\u003c/code\u003e\u003c/a\u003e chore: bump to version 3.9.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/0196f02cc9512df8de3c941f87d27bda98f9f7af\"\u003e\u003ccode\u003e0196f02\u003c/code\u003e\u003c/a\u003e build(deps): bump pypa/cibuildwheel from 3.3.1 to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d157bdc2235a42dc1742936dbb0f5cfc8e4d2eb7\"\u003e\u003ccode\u003ed157bdc\u003c/code\u003e\u003c/a\u003e build(deps): bump docker/setup-qemu-action from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/7fccc0f5066a40dea530512abbf02621f4182b81\"\u003e\u003ccode\u003e7fccc0f\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/upload-artifact from 6 to 7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d52a61eb2e6095fc1b9891bfcca44ebfac509e55\"\u003e\u003ccode\u003ed52a61e\u003c/code\u003e\u003c/a\u003e chore: bump dependency libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/b231d726a01d55e07ec3620b2b82f4a2da37ba62\"\u003e\u003ccode\u003eb231d72\u003c/code\u003e\u003c/a\u003e chore: fix building binary images\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/6d76e8479f0f522c2e07ce0e2701030d8fd63785\"\u003e\u003ccode\u003e6d76e84\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1836\"\u003e#1836\u003c/a\u003e from psycopg/fix-1835\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/f7e314c7ab418ab9b9956e694956089a49c5c3b9\"\u003e\u003ccode\u003ef7e314c\u003c/code\u003e\u003c/a\u003e fix: overflow in malformed interval\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/eb905c124b75f2a5183d22177b85af20914b0f17\"\u003e\u003ccode\u003eeb905c1\u003c/code\u003e\u003c/a\u003e docs: replace bare except clause with except Exception\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.9.0 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.9.0...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.5.0 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\u003ch2\u003ev2.13.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression for bool fields since 2.13.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/784\"\u003epydantic/pydantic-settings#784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix RecursionError with self-referential models in CliApp 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/783\"\u003epydantic/pydantic-settings#783\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/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.5.0...v2.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `email-validator` from 2.1.2 to 2.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/JoshData/python-email-validator/releases\"\u003eemail-validator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe package name is changed from using an underscore (email_validator) to a dash (email-validator) to match PyPi's normalized package name.\u003c/li\u003e\n\u003cli\u003eThe library no longer checks that the local part is at most 64 characters because a more careful reading of RFC 5321 indicates the limit is optional and such email addresses have been found in the wild. However the check can be restored using a new \u003ccode\u003estrict=True\u003c/code\u003e parameter, and the overall 254 character email address length limit is still in place.\u003c/li\u003e\n\u003cli\u003eNew EmailSyntaxError messages are used for some exiting syntax errors related to @-sign homoglyphs and invalid characters in internationalized domains.\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003eallow_display_name=True\u003c/code\u003e, display names are now returned with Unicode NFC normalization.\u003c/li\u003e\n\u003cli\u003eTypeError is now raised if something other than str (or bytes) is passed as the email address.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.0 (June 20, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEmail addresses with internationalized local parts could, with rare Unicode characters, be returned as valid but actually be invalid in their normalized form (returned in the \u003ccode\u003enormalized\u003c/code\u003e field). Local parts now re-validated after Unicode NFC normalization to ensure that invalid characters cannot be injected into the normalized address and that characters with length-increasing NFC normalizations cannot cause a local part to exceed the maximum length after normalization.\u003c/li\u003e\n\u003cli\u003eThe length check for email addresses with internationalized local parts is now also applied to the original address string prior to Unicode NFC normalization, which may be longer and could exceed the maximum email address length, to protect callers who do not use the returned normalized address.\u003c/li\u003e\n\u003cli\u003eImproved error message for IDNA domains that are too long or have invalid characters after Unicode normalization.\u003c/li\u003e\n\u003cli\u003eA new option to parse \u003ccode\u003eMy Name \u0026lt;address@domain\u0026gt;\u003c/code\u003e strings, i.e. a display name plus an email address in angle brackets, is now available. It is off by default.\u003c/li\u003e\n\u003cli\u003eImprovements to Python typing.\u003c/li\u003e\n\u003cli\u003eSome additional tests added.\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/JoshData/python-email-validator/blob/main/CHANGELOG.md\"\u003eemail-validator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.0 (August 26, 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe package name is changed from using an underscore (email_validator) to a dash (email-validator) to match PyPi's normalized package name.\u003c/li\u003e\n\u003cli\u003eThe library no longer checks that the local part is at most 64 characters because a more careful reading of RFC 5321 indicates the limit is optional and such email addresses have been found in the wild. However the check can be restored using a new \u003ccode\u003estrict=True\u003c/code\u003e parameter, and the overall 254 character email address length limit is still in place.\u003c/li\u003e\n\u003cli\u003eNew EmailSyntaxError messages are used for some exiting syntax errors related to @-sign homoglyphs and invalid characters in internationalized domains.\u003c/li\u003e\n\u003cli\u003eWhen using \u003ccode\u003eallow_display_name=True\u003c/code\u003e, display names are now returned with Unicode NFC normalization.\u003c/li\u003e\n\u003cli\u003eTypeError is now raised if something other than str (or bytes) is passed as the email address.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.0 (June 20, 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEmail addresses with internationalized local parts could, with rare Unicode characters, be returned as valid but actually be invalid in their normalized form (returned in the \u003ccode\u003enormalized\u003c/code\u003e field). In particular, it is possible to get a normalized address with a \u0026quot;;\u0026quot; character, which is not valid and could change the interpretation of the address. Local parts now re-validated after Unicode NFC normalization to ensure that invalid characters cannot be injected into the normalized address and that characters with length-increasing NFC normalizations cannot cause a local part to exceed the maximum length after normalization. Thanks to \u003ca href=\"mailto:khanh@calif.io\"\u003ekhanh@calif.io\u003c/a\u003e from \u003ca href=\"https://calif.io\"\u003ehttps://calif.io\u003c/a\u003e for reporting the issue.\u003c/li\u003e\n\u003cli\u003eThe length check for email addresses with internationalized local parts is now also applied to the original address string prior to Unicode NFC normalization, which may be longer and could exceed the maximum email address length, to protect callers who do not use the returned normalized address.\u003c/li\u003e\n\u003cli\u003eImproved error message for IDNA domains that are too long or have invalid characters after Unicode normalization.\u003c/li\u003e\n\u003cli\u003eA new option to parse \u003ccode\u003eMy Name \u0026lt;address@domain\u0026gt;\u003c/code\u003e strings, i.e. a display name plus an email address in angle brackets, is now available. It is off by default.\u003c/li\u003e\n\u003cli\u003eImprovements to Python typing.\u003c/li\u003e\n\u003cli\u003eSome additional tests added.\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/JoshData/python-email-validator/commit/030a63a183a6a66450e98381ca9a23ab9769706a\"\u003e\u003ccode\u003e030a63a\u003c/code\u003e\u003c/a\u003e Version 2.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/e943a0f07f5c130b4a419e0cd79f705f36bf24fe\"\u003e\u003ccode\u003ee943a0f\u003c/code\u003e\u003c/a\u003e Raise TypeError when an invalid argument is passed for email, closes \u003ca href=\"https://redirect.github.com/JoshData/python-email-validator/issues/155\"\u003e#155\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/f90d256045dc1ccbcffd5514189267d14a9e3ea1\"\u003e\u003ccode\u003ef90d256\u003c/code\u003e\u003c/a\u003e Remove local part length check unless new strict flag is given, fixes \u003ca href=\"https://redirect.github.com/JoshData/python-email-validator/issues/158\"\u003e#158\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/98800bac023b8713351393a5043034065f1ea6cb\"\u003e\u003ccode\u003e98800ba\u003c/code\u003e\u003c/a\u003e Add explicit checks for internationalized domain name characters invalid unde...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/936aead3bf5c608f8561954e0d2955b7f97bfdad\"\u003e\u003ccode\u003e936aead\u003c/code\u003e\u003c/a\u003e Fix final syntax checks on normalized internationalized domains checking the ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/8043de49596f08d54a07e2bc7c442ced074216a6\"\u003e\u003ccode\u003e8043de4\u003c/code\u003e\u003c/a\u003e NFC-normalize display names per UTS \u003ca href=\"https://redirect.github.com/JoshData/python-email-validator/issues/39\"\u003e#39\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/bc08faa2a74b51a9e7ba7ff4f995c0b475cb5b12\"\u003e\u003ccode\u003ebc08faa\u003c/code\u003e\u003c/a\u003e Add one-off error messages for full-width-at and small-commercial-at which ar...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/a1c90ab58fb0f5d969a8351a68ca15bff068527c\"\u003e\u003ccode\u003ea1c90ab\u003c/code\u003e\u003c/a\u003e Split exceptions_types.py into exceptions.py and types.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/dbcf07cc5c8066c14b6dc58d2dbb4a1e582eeefd\"\u003e\u003ccode\u003edbcf07c\u003c/code\u003e\u003c/a\u003e Change package name from using underscore to dash to match PyPi normalized pa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshData/python-email-validator/commit/7c22208ee5b82c377e960ddcea5293691eadc6cc\"\u003e\u003ccode\u003e7c22208\u003c/code\u003e\u003c/a\u003e Support ALLOW_DISPLAY_NAME and ALLOW_EMPTY_LOCAL in the CLI (\u003ca href=\"https://redirect.github.com/JoshData/python-email-validator/issues/145\"\u003e#145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/JoshData/python-email-validator/compare/v2.1.2...v2.3.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.34.0 to 0.97.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.97.0\u003c/h2\u003e\n\u003ch2\u003e0.97.0 (2026-04-23)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.96.0...v0.97.0\"\u003ev0.96.0...v0.97.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e CMA Memory public beta (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fc30ebe5ca81204faa0b1d756b61dad176e37dcb\"\u003efc30ebe\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 fix errors in api spec (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/f946de8da00748b472489e93ab4920d64d1cb22d\"\u003ef946de8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e restore missing features (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/72212ab8408af389981e9e6b111c00460b2b17e4\"\u003e72212ab\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e optimize file structure copying in multipart requests (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1f9eed3a953c8cef0967df8470e04f7ac8fe3235\"\u003e1f9eed3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd missing import (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/4b12f5e0f4c29a234cd05f93c603b9cae2011aaa\"\u003e4b12f5e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e more robust bootstrap script (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7ed737089d1f28385ee827f601ba81f1935d0b6a\"\u003e7ed7370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.22.1 (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/a4b7184e57410ae92a409db5ee6fec90edceaa51\"\u003ea4b7184\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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\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.97.0 (2026-04-23)\u003c/h2\u003e\n\u003cp\u003eFull Changelog: \u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/compare/v0.96.0...v0.97.0\"\u003ev0.96.0...v0.97.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e CMA Memory public beta (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/fc30ebe5ca81204faa0b1d756b61dad176e37dcb\"\u003efc30ebe\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 fix errors in api spec (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/f946de8da00748b472489e93ab4920d64d1cb22d\"\u003ef946de8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eapi:\u003c/strong\u003e restore missing features (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/72212ab8408af389981e9e6b111c00460b2b17e4\"\u003e72212ab\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance Improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eclient:\u003c/strong\u003e optimize file structure copying in multipart requests (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/1f9eed3a953c8cef0967df8470e04f7ac8fe3235\"\u003e1f9eed3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadd missing import (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/4b12f5e0f4c29a234cd05f93c603b9cae2011aaa\"\u003e4b12f5e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003einternal:\u003c/strong\u003e more robust bootstrap script (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/7ed737089d1f28385ee827f601ba81f1935d0b6a\"\u003e7ed7370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003etests:\u003c/strong\u003e bump steady to v0.22.1 (\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/a4b7184e57410ae92a409db5ee6fec90edceaa51\"\u003ea4b7184\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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\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/78c73600b714fcb036893768df8ee122f33d4cb3\"\u003e\u003ccode\u003e78c7360\u003c/code\u003e\u003c/a\u003e release: 0.97.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/d274533036e250506f665011d8d3441ed5228944\"\u003e\u003ccode\u003ed274533\u003c/code\u003e\u003c/a\u003e chore: add missing import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/c078db11d55c5b0455272e85617d8c1cfe76180e\"\u003e\u003ccode\u003ec078db1\u003c/code\u003e\u003c/a\u003e fix(api): fix errors in api spec\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/5807d0efd8fac5fb7323dbd8949a2df8528a3456\"\u003e\u003ccode\u003e5807d0e\u003c/code\u003e\u003c/a\u003e fix(api): restore missing features\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/2cb7a83a029aa3bd960536158f16231fe0ad6d0d\"\u003e\u003ccode\u003e2cb7a83\u003c/code\u003e\u003c/a\u003e feat(api): CMA Memory public beta\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/edbddf7715a78e56ab019737977e4e2db60acf1b\"\u003e\u003ccode\u003eedbddf7\u003c/code\u003e\u003c/a\u003e codegen metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/4d3e27c78b404f7a3fcb7b1cd2221033e615574b\"\u003e\u003ccode\u003e4d3e27c\u003c/code\u003e\u003c/a\u003e chore(internal): more robust bootstrap script\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/d2b3cda70e3c3b2bc153a9a486f90c3111bd4323\"\u003e\u003ccode\u003ed2b3cda\u003c/code\u003e\u003c/a\u003e chore(tests): bump steady to v0.22.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/5871ccb66966dc2b6a3a33b8c8bf419512d830b8\"\u003e\u003ccode\u003e5871ccb\u003c/code\u003e\u003c/a\u003e perf(client): optimize file structure copying in multipart requests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthropics/anthropic-sdk-python/commit/b4fba031da1b33c80aa5104e84a7babda3b847f5\"\u003e\u003ccode\u003eb4fba03\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.34.0...v0.97.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-api-python-client` from 2.143.0 to 2.194.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-api-python-client/releases\"\u003egoogle-api-python-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.194.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-api-python-client/compare/v2.193.0...v2.194.0\"\u003e2.194.0\u003c/a\u003e (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eadmin:\u003c/strong\u003e Update the api \u003ca href=\"https://togithub.com/googleapis/google-api-python-client/commit/91646aa8f11c3491c8ae96cb142098d23bd4d86a\"\u003ehttps://togithub.com/googleapis/google-api-python-client/commit/91646aa8f11c3491c8ae96cb142098d23bd4d86a\u003c/a\u003e (\u003ca href=\"https://github.com/googleapis/google-api-python-client/commit/b6b55b68cb84e98c0feaac31d2c...\n\n_Description has been truncated_","html_url":"https://github.com/jykwon91/MyFreeApps/pull/70","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/jykwon91%2FMyFreeApps/issues/70","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/70/packages"}},{"old_version":"7.4.2","new_version":"8.2","update_type":null,"path":null,"pr_created_at":"2026-04-06T19:11:59.000Z","version_change":"7.4.2 → 8.2","issue":{"uuid":"4213571944","node_id":"PR_kwDORDlzlc7QSs5h","number":12,"state":"open","title":"deps: bump qrcode from 7.4.2 to 8.2","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-04-06T19:11:59.000Z","updated_at":"2026-04-06T19:12:00.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps","packages":[{"name":"qrcode","old_version":"7.4.2","new_version":"8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"}],"path":null,"ecosystem":"pip"},"body":"Bumps [qrcode](https://github.com/lincolnloop/python-qrcode) from 7.4.2 to 8.2.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lincolnloop/python-qrcode/blob/main/CHANGES.rst\"\u003eqrcode's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2 (01 May 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize QRColorMask apply_mask method for enhanced performance\u003c/li\u003e\n\u003cli\u003eFix typos on StyledPilImage embeded_* parameters.\nThe old parameters with the typos are still accepted\nfor backward compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1 (02 April 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0 (27 September 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.11 and 3.12.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python \u0026lt;=3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange local development setup to use Poetry_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTestsuite and code quality checks are done through Github Actions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCode quality and formatting utilises ruff_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003etyping_extensions\u003c/code\u003e as a dependency, as it's no longer required\nwith having Python 3.9+ as a requirement.\nhaving Python 3.9+ as a requirement.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOnly allow high error correction rate (\u003ccode\u003eqrcode.ERROR_CORRECT_H\u003c/code\u003e)\nwhen generating\nQR codes with embedded images to ensure content is readable\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _Poetry: \u003ca href=\"https://python-poetry.org\"\u003ehttps://python-poetry.org\u003c/a\u003e\n.. _ruff: \u003ca href=\"https://astral.sh/ruff\"\u003ehttps://astral.sh/ruff\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/lincolnloop/python-qrcode/commit/3704f57a1107dbf553a50f5b531da3859abe19cf\"\u003e\u003ccode\u003e3704f57\u003c/code\u003e\u003c/a\u003e Preparing release 8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/b593a2b86d8f9cd1bc24cc5623ee47cf1aa076b5\"\u003e\u003ccode\u003eb593a2b\u003c/code\u003e\u003c/a\u003e Fix embeded_* typo on paremeters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/d2674f83092d3573e164bb83468e51f59c85bf50\"\u003e\u003ccode\u003ed2674f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/383\"\u003e#383\u003c/a\u003e from btimby/spelling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/2ced7b4b38ea3132793723bbab588d5676fc8bc7\"\u003e\u003ccode\u003e2ced7b4\u003c/code\u003e\u003c/a\u003e Ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/c5e3f0180e025d9c0fd6adf8ed3c9998073c6137\"\u003e\u003ccode\u003ec5e3f01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/372\"\u003e#372\u003c/a\u003e from smalyu/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/cd3cd7bf87fc81860481902ca22d5b7463332b4b\"\u003e\u003ccode\u003ecd3cd7b\u003c/code\u003e\u003c/a\u003e Release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/5dcf89c56417ad37de8dba953f974324ae7b9271\"\u003e\u003ccode\u003e5dcf89c\u003c/code\u003e\u003c/a\u003e Preparing release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/10da1ba2c95886312097608bd4632ba34765e0e0\"\u003e\u003ccode\u003e10da1ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/386\"\u003e#386\u003c/a\u003e from hugovk/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/7cb996d04c6536a2dbf84cccf9fc471a200f0072\"\u003e\u003ccode\u003e7cb996d\u003c/code\u003e\u003c/a\u003e Upgrade Python syntax with pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/dc4831bde0c432e5d878b75818af38e9dc80cc87\"\u003e\u003ccode\u003edc4831b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lincolnloop/python-qrcode/compare/v7.4.2...v8.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=qrcode\u0026package-manager=pip\u0026previous-version=7.4.2\u0026new-version=8.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 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/Brunsben/FoodBot/pull/12","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Brunsben%2FFoodBot/issues/12","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12/packages"}},{"old_version":"7.4.2","new_version":"8.2","update_type":null,"path":"/requirements","pr_created_at":"2026-02-12T22:00:31.000Z","version_change":"7.4.2 → 8.2","issue":{"uuid":"3934239497","node_id":"PR_kwDOBwbUJs7DZ_Dm","number":149,"state":"closed","title":"Bump the all-dependencies group in /requirements with 38 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-02-12T22:53:59.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-12T22:00:31.000Z","updated_at":"2026-02-12T22:54:00.000Z","time_to_close":3208,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-dependencies","update_count":38,"packages":[{"name":"bleach","old_version":"6.0.0","new_version":"6.3.0","repository_url":"https://github.com/mozilla/bleach"},{"name":"celery","old_version":"5.4.0","new_version":"5.6.2","repository_url":"https://github.com/celery/celery"},{"name":"celery-redbeat","old_version":"2.2.0","new_version":"2.3.3","repository_url":"https://github.com/sibson/redbeat"},{"name":"cryptography","old_version":"42.0.4","new_version":"46.0.5","repository_url":"https://github.com/pyca/cryptography"},{"name":"dockerfile-parse","old_version":"2.0.0","new_version":"2.0.1","repository_url":"https://github.com/containerbuildsystem/dockerfile-parse"},{"name":"flask","old_version":"2.3.2","new_version":"2.3.3","repository_url":"https://github.com/pallets/flask"},{"name":"flask-admin","old_version":"1.6.1","new_version":"2.0.2","repository_url":"https://github.com/pallets-eco/flask-admin"},{"name":"flask-babel","old_version":"3.1.0","new_version":"4.0.0","repository_url":"https://github.com/python-babel/flask-babel"},{"name":"flask-debugtoolbar","old_version":"0.14.1","new_version":"0.16.0","repository_url":"https://github.com/pallets-eco/flask-debugtoolbar"},{"name":"flask-mail","old_version":"0.9.1","new_version":"0.10.0","repository_url":"https://github.com/pallets-eco/flask-mail"},{"name":"flask-migrate","old_version":"3.0.1","new_version":"4.1.0","repository_url":"https://github.com/miguelgrinberg/flask-migrate"},{"name":"flask-nav3","old_version":"0.7.0","new_version":"0.7.2","repository_url":"https://github.com/wtfo-guru/flask-nav3"},{"name":"flask-security-too","old_version":"5.3.3","new_version":"5.7.1","repository_url":"https://github.com/pallets-eco/flask-security"},{"name":"flask-sock","old_version":"0.6.0","new_version":"0.7.0","repository_url":"https://github.com/miguelgrinberg/flask-sock"},{"name":"flask-sqlalchemy","old_version":"2.5.1","new_version":"3.1.1","repository_url":"https://github.com/pallets-eco/flask-sqlalchemy"},{"name":"gunicorn","old_version":"23.0.0","new_version":"25.0.3","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"hupper","old_version":"1.10.3","new_version":"1.12.1","repository_url":"https://github.com/Pylons/hupper"},{"name":"hvac","old_version":"2.3.0","new_version":"2.4.0","repository_url":"https://github.com/hvac/hvac"},{"name":"kubernetes","old_version":"30.1.0","new_version":"35.0.0","repository_url":"https://github.com/kubernetes-client/python"},{"name":"psycopg2","old_version":"2.9.6","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"py-consul","old_version":"1.5.1","new_version":"1.7.1","repository_url":"https://github.com/criteo-forks/py-consul"},{"name":"pygithub","old_version":"1.59.1","new_version":"2.8.1","repository_url":"https://github.com/pygithub/pygithub"},{"name":"python-dxf","old_version":"10.0.0","new_version":"12.1.1","repository_url":"https://github.com/davedoesdev/dxf"},{"name":"qrcode","old_version":"7.4.2","new_version":"8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"},{"name":"redis","old_version":"3.5.3","new_version":"7.1.1","repository_url":"https://github.com/redis/redis-py"},{"name":"sentry-sdk","old_version":"2.6.0","new_version":"2.52.0"},{"name":"sqlalchemy","old_version":"1.4.48","new_version":"2.0.46","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"sqlalchemy-continuum","old_version":"1.3.14","new_version":"1.6.0","repository_url":"https://github.com/kvesteri/sqlalchemy-continuum"},{"name":"typing-extensions","old_version":"4.7.1","new_version":"4.15.0","repository_url":"https://github.com/python/typing_extensions"},{"name":"unidecode","old_version":"1.2.0","new_version":"1.4.0","repository_url":"https://github.com/kmike/text-unidecode"},{"name":"urllib3","old_version":"2.2.2","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"bandit","old_version":"1.7.9","new_version":"1.9.3","repository_url":"https://github.com/PyCQA/bandit"},{"name":"black","old_version":"24.4.2","new_version":"26.1.0","repository_url":"https://github.com/psf/black"},{"name":"mypy","old_version":"1.11.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"pip-tools","old_version":"7.4.1","new_version":"7.5.3","repository_url":"https://github.com/jazzband/pip-tools"},{"name":"ruff","old_version":"0.5.1","new_version":"0.15.0","repository_url":"https://github.com/astral-sh/ruff"},{"name":"types-pyyaml","old_version":"6.0.12.20240311","new_version":"6.0.12.20250915","repository_url":"https://github.com/typeshed-internal/stub_uploader"},{"name":"types-requests","old_version":"2.32.0.20240712","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"}],"path":"/requirements","ecosystem":"pip"},"body":"Bumps the all-dependencies group in /requirements with 38 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [bleach](https://github.com/mozilla/bleach) | `6.0.0` | `6.3.0` |\n| [celery](https://github.com/celery/celery) | `5.4.0` | `5.6.2` |\n| [celery-redbeat](https://github.com/sibson/redbeat) | `2.2.0` | `2.3.3` |\n| [cryptography](https://github.com/pyca/cryptography) | `42.0.4` | `46.0.5` |\n| [dockerfile-parse](https://github.com/containerbuildsystem/dockerfile-parse) | `2.0.0` | `2.0.1` |\n| [flask](https://github.com/pallets/flask) | `2.3.2` | `2.3.3` |\n| [flask-admin](https://github.com/pallets-eco/flask-admin) | `1.6.1` | `2.0.2` |\n| [flask-babel](https://github.com/python-babel/flask-babel) | `3.1.0` | `4.0.0` |\n| [flask-debugtoolbar](https://github.com/pallets-eco/flask-debugtoolbar) | `0.14.1` | `0.16.0` |\n| [flask-mail](https://github.com/pallets-eco/flask-mail) | `0.9.1` | `0.10.0` |\n| [flask-migrate](https://github.com/miguelgrinberg/flask-migrate) | `3.0.1` | `4.1.0` |\n| [flask-nav3](https://github.com/wtfo-guru/flask-nav3) | `0.7.0` | `0.7.2` |\n| [flask-security-too](https://github.com/pallets-eco/flask-security) | `5.3.3` | `5.7.1` |\n| [flask-sock](https://github.com/miguelgrinberg/flask-sock) | `0.6.0` | `0.7.0` |\n| [flask-sqlalchemy](https://github.com/pallets-eco/flask-sqlalchemy) | `2.5.1` | `3.1.1` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `25.0.3` |\n| [hupper](https://github.com/Pylons/hupper) | `1.10.3` | `1.12.1` |\n| [hvac](https://github.com/hvac/hvac) | `2.3.0` | `2.4.0` |\n| [kubernetes](https://github.com/kubernetes-client/python) | `30.1.0` | `35.0.0` |\n| [psycopg2](https://github.com/psycopg/psycopg2) | `2.9.6` | `2.9.11` |\n| [py-consul](https://github.com/criteo-forks/py-consul) | `1.5.1` | `1.7.1` |\n| [pygithub](https://github.com/pygithub/pygithub) | `1.59.1` | `2.8.1` |\n| [python-dxf](https://github.com/davedoesdev/dxf) | `10.0.0` | `12.1.1` |\n| [qrcode](https://github.com/lincolnloop/python-qrcode) | `7.4.2` | `8.2` |\n| [redis](https://github.com/redis/redis-py) | `3.5.3` | `7.1.1` |\n| [sentry-sdk[flask]](https://github.com/getsentry/sentry-python) | `2.6.0` | `2.52.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `1.4.48` | `2.0.46` |\n| [sqlalchemy-continuum](https://github.com/kvesteri/sqlalchemy-continuum) | `1.3.14` | `1.6.0` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.7.1` | `4.15.0` |\n| [unidecode](https://github.com/kmike/text-unidecode) | `1.2.0` | `1.4.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.2` | `2.6.3` |\n| [bandit](https://github.com/PyCQA/bandit) | `1.7.9` | `1.9.3` |\n| [black](https://github.com/psf/black) | `24.4.2` | `26.1.0` |\n| [mypy](https://github.com/python/mypy) | `1.11.0` | `1.19.1` |\n| [pip-tools](https://github.com/jazzband/pip-tools) | `7.4.1` | `7.5.3` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.5.1` | `0.15.0` |\n| [types-pyyaml](https://github.com/typeshed-internal/stub_uploader) | `6.0.12.20240311` | `6.0.12.20250915` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.0.20240712` | `2.32.4.20260107` |\n\nUpdates `bleach` from 6.0.0 to 6.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mozilla/bleach/blob/main/CHANGES\"\u003ebleach's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 6.3.0 (October 27th, 2025)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix wbr handling. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.2.0 (October 29th, 2024)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.8. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/737\"\u003e#737\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/736\"\u003e#736\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove six depdenncy. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/618\"\u003e#618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate known-good versions for tinycss2. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/732\"\u003e#732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix additional \u0026lt; followed by characters and EOF issues. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 6.1.0 (October 6th, 2023)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBackwards incompatible changes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.7. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/709\"\u003e#709\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eNone\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eBug fixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12. (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/710\"\u003e#710\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/mozilla/bleach/commit/5546d5dbce60d08ccb99d981778d74044d646d4e\"\u003e\u003ccode\u003e5546d5d\u003c/code\u003e\u003c/a\u003e chore: prep for 6.3.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/88df3ff23fb2a43e174b3fdfe9191ef516de868a\"\u003e\u003ccode\u003e88df3ff\u003c/code\u003e\u003c/a\u003e chore: fix readthedocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/d8b2fb45b2606515c58787c223d6605c6c70868f\"\u003e\u003ccode\u003ed8b2fb4\u003c/code\u003e\u003c/a\u003e fix: fix wbr handling (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/488\"\u003e#488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/55e48cedb20bda23940ab34753a1fb378d5d30b9\"\u003e\u003ccode\u003e55e48ce\u003c/code\u003e\u003c/a\u003e chore: add support for Python 3.14 (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/758\"\u003e#758\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/a4d6cddac6e338c3d6f84c755a5fcb32e9e18fba\"\u003e\u003ccode\u003ea4d6cdd\u003c/code\u003e\u003c/a\u003e chore: drop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/mozilla/bleach/issues/756\"\u003e#756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/172d92faef543a83c6760c63c32749586cdd564b\"\u003e\u003ccode\u003e172d92f\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.6.0 to 6.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/df88612f2e9daf8f4ee23cf0e29b712d9d9147b6\"\u003e\u003ccode\u003edf88612\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.2.2 to 5.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/cbcf6b18d19aeb7777699f9385013d0a04052b68\"\u003e\u003ccode\u003ecbcf6b1\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.2.3 to 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/d9aa7ef592d57dda56e26ba31d06e1b279c58eca\"\u003e\u003ccode\u003ed9aa7ef\u003c/code\u003e\u003c/a\u003e Switch from dependabot reviewers to CODEOWNERS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mozilla/bleach/commit/06f0f76cc68112bda3fa101d1730d5ba914d54a1\"\u003e\u003ccode\u003e06f0f76\u003c/code\u003e\u003c/a\u003e Update setuptools, wheel, and twine for devs\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mozilla/bleach/compare/v6.0.0...v6.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.4.0 to 5.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string by \u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: Revoked tasks now immediately update backend status to REVOKED by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9869\"\u003ecelery/celery#9869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.2 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10049\"\u003ecelery/celery#10049\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/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.1...v5.6.2\"\u003ehttps://github.com/celery/celery/compare/v5.6.1...v5.6.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support by \u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown by \u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option by \u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10020\"\u003ecelery/celery#10020\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup by \u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereliable prefork detection by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10023\"\u003ecelery/celery#10023\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter coverage by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10029\"\u003ecelery/celery#10029\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example by \u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10032\"\u003ecelery/celery#10032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10033\"\u003ecelery/celery#10033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10037\"\u003ecelery/celery#10037\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/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.0...v5.6.1\"\u003ehttps://github.com/celery/celery/compare/v5.6.0...v5.6.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\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/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.2\u003c/h1\u003e\n\u003cp\u003e:release-date: 2026-01-04\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string ([#10045](https://github.com/celery/celery/issues/10045))\n- Bugfix: Revoked tasks now immediately update backend status to REVOKED ([#9869](https://github.com/celery/celery/issues/9869))\n- Prepare for release: v5.6.2 ([#10049](https://github.com/celery/celery/issues/10049))\n\u003cp\u003e.. _version-5.6.1:\u003c/p\u003e\n\u003ch1\u003e5.6.1\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-12-29\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10013\"\u003e#10013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9986\"\u003e#9986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10016\"\u003e#10016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10020\"\u003e#10020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10015\"\u003e#10015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereliable prefork detection (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10023\"\u003e#10023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebetter coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10030\"\u003e#10030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10032\"\u003e#10032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _version-5.6.0:\u003c/p\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/6a43c846f183ef0cbade24f4b9a8f7a6ea113b44\"\u003e\u003ccode\u003e6a43c84\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10049\"\u003e#10049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/333a82f746734151c5cbe848916085455b0a3748\"\u003e\u003ccode\u003e333a82f\u003c/code\u003e\u003c/a\u003e Bugfix: Revoked tasks now immediately update backend status to REVOKED (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9869\"\u003e#9869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/9d6ab110d947270c4edf0b42454266d2954e653d\"\u003e\u003ccode\u003e9d6ab11\u003c/code\u003e\u003c/a\u003e Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeEr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21dbc73f81d2fae058de49e665afaa1cd92da5c0\"\u003e\u003ccode\u003e21dbc73\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/ba20bed7723c684d12ddd62d6a7c0c0d901b3351\"\u003e\u003ccode\u003eba20bed\u003c/code\u003e\u003c/a\u003e Only use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21675299bc2d10c648448ec5221136e07c1eec1a\"\u003e\u003ccode\u003e2167529\u003c/code\u003e\u003c/a\u003e Stop importing pytest_subtests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0527296acb1f1790788301d4395ba6d5ce2a9704\"\u003e\u003ccode\u003e0527296\u003c/code\u003e\u003c/a\u003e Bump google-cloud-firestore from 2.21.0 to 2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/5f8659bdba4561796d66e938a1e2c71d4489562f\"\u003e\u003ccode\u003e5f8659b\u003c/code\u003e\u003c/a\u003e Clarify 'result_extended' setting usage in tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f19db7008682c782d85e69b5ce736970491752ea\"\u003e\u003ccode\u003ef19db70\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.19.0 to 1.19.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10028\"\u003e#10028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/6da72bde60553a1c350eef1e17d834d004ed099d\"\u003e\u003ccode\u003e6da72bd\u003c/code\u003e\u003c/a\u003e better coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.4.0...v5.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery-redbeat` from 2.2.0 to 2.3.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sibson/redbeat/blob/main/CHANGES.txt\"\u003ecelery-redbeat's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.3dev (unreleased)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8 and add CI coverage through Python 3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.3 (2025-07-02)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd Python 3.12 support, thanks \u003ca href=\"https://github.com/AnkiHubSoftware\"\u003e\u003ccode\u003e@​AnkiHubSoftware\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebugfix, update RedBeatSchedulerEntry definitions for improved type safety and correctness, thanks \u003ca href=\"https://github.com/sotosapp\"\u003e\u003ccode\u003e@​sotosapp\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebugfix, Redbeat no longer updating tasks definitions on Redis \u003ca href=\"https://redirect.github.com/sibson/redbeat/issues/289\"\u003e#289\u003c/a\u003e, thanks \u003ca href=\"https://github.com/semoac\"\u003e\u003ccode\u003e@​semoac\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci, fix testpypi publish by checking out source before version update\u003c/li\u003e\n\u003cli\u003etest, pin fakeredis\u0026lt;2.27.0 for Python 3.8 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.0 (2025-02-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebugfix, allow disabling of lock with redbeat_lock_key = None, thanks \u003ca href=\"https://github.com/jscaria\"\u003e\u003ccode\u003e@​jscaria\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/molog\"\u003e\u003ccode\u003e@​molog\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/bertosantamaria\"\u003e\u003ccode\u003e@​bertosantamaria\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebugfix, track changes to primary in Sentinel, thanks \u003ca href=\"https://github.com/Niccolum\"\u003e\u003ccode\u003e@​Niccolum\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebugfix, static entries honour last_run_at, thanks \u003ca href=\"https://github.com/kchamz\"\u003e\u003ccode\u003e@​kchamz\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edoc updates, thanks \u003ca href=\"https://github.com/miketheman\"\u003e\u003ccode\u003e@​miketheman\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cikay\"\u003e\u003ccode\u003e@​cikay\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/sibson/redbeat/commit/2b85c88951fdd2964610819c1a59e4914e4c205b\"\u003e\u003ccode\u003e2b85c88\u003c/code\u003e\u003c/a\u003e prepare for release of 2.3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/3d107dd7cf5c310bcd05fd8ba76da622a0f84b13\"\u003e\u003ccode\u003e3d107dd\u003c/code\u003e\u003c/a\u003e update for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/30e812dd1a178dca02390c4f4a3e8fe79c43ca39\"\u003e\u003ccode\u003e30e812d\u003c/code\u003e\u003c/a\u003e makefile: add version target using grep for warning-free version check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/1242fde248ed7aeebe7cd148f873977f0face2e8\"\u003e\u003ccode\u003e1242fde\u003c/code\u003e\u003c/a\u003e update changelog for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/f35e31cfb0f9c0cf6662821cc4d4d7ec1d45d144\"\u003e\u003ccode\u003ef35e31c\u003c/code\u003e\u003c/a\u003e ci: fetch full git history for pbr versioning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/acf82610cb0fab5caa3418c42efcfb4715686d2e\"\u003e\u003ccode\u003eacf8261\u003c/code\u003e\u003c/a\u003e build: switch to pbr for dynamic versioning and simplify workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/a317b5ff3a4f7b6508c8d91ae55f3ac736d646be\"\u003e\u003ccode\u003ea317b5f\u003c/code\u003e\u003c/a\u003e bump version for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/5e185f63ba10458545ec4c8a91747006da65de63\"\u003e\u003ccode\u003e5e185f6\u003c/code\u003e\u003c/a\u003e ci: use .dev0.\u0026lt;githash\u0026gt; for testpypi version (PEP 440/PyPI compliant)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/f384d757f8f58ca2cd26d36c13dfb8971461d3de\"\u003e\u003ccode\u003ef384d75\u003c/code\u003e\u003c/a\u003e ci: ensure PEP 440 compliant version for testpypi with git hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sibson/redbeat/commit/bfc520b778a0234815917e3aba472a27ffabc6f6\"\u003e\u003ccode\u003ebfc520b\u003c/code\u003e\u003c/a\u003e test: pin fakeredis\u0026lt;2.27.0 for Python 3.8 support (see comment)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sibson/redbeat/compare/v2.2.0...v2.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 42.0.4 to 46.0.5\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.5 - 2026-02-10\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* An attacker could create a malicious public key that reveals portions of your\n  private key when using certain uncommon elliptic curves (binary curves).\n  This version now includes additional security checks to prevent this attack.\n  This issue only affects binary elliptic curves, which are rarely used in\n  real-world applications. Credit to **XlabAI Team of Tencent Xuanwu Lab and\n  Atuin Automated Vulnerability Discovery Engine** for reporting the issue.\n  **CVE-2026-26007**\n* Support for ``SECT*`` binary elliptic curves is deprecated and will be\n  removed in the next release.\n\u003cp\u003e.. v46-0-4:\u003c/p\u003e\n\u003cp\u003e46.0.4 - 2026-01-27\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eDropped support for win_arm64 wheels\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.5.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-3:\u003c/p\u003e\n\u003cp\u003e46.0.3 - 2025-10-15\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Fixed compilation when using LibreSSL 4.2.0.\n\u003cp\u003e.. _v46-0-2:\u003c/p\u003e\n\u003cp\u003e46.0.2 - 2025-09-30\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.4.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-1:\u003c/p\u003e\n\u003cp\u003e46.0.1 - 2025-09-16\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Fixed an issue where users installing via ``pip`` on Python 3.14 development\n  versions would not properly install a dependency.\n* Fixed an issue building the free-threaded macOS 3.14 wheels.\n\u003cp\u003e.. _v46-0-0:\u003c/p\u003e\n\u003cp\u003e46.0.0 - 2025-09-16\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBACKWARDS INCOMPATIBLE:\u003c/strong\u003e Support for Python 3.7 has been removed.\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/pyca/cryptography/commit/06e120e682cb200e3f7050c02f0bcdac90c4c6ad\"\u003e\u003ccode\u003e06e120e\u003c/code\u003e\u003c/a\u003e bump version for 46.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14289\"\u003e#14289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/0eebb9dbb6343d9bc1d91e5a2482ed4e054a6d8c\"\u003e\u003ccode\u003e0eebb9d\u003c/code\u003e\u003c/a\u003e EC check key on cofactor \u0026gt; 1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14287\"\u003e#14287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/bedf6e186b814f69a3f54f51252c23a71d44ed2e\"\u003e\u003ccode\u003ebedf6e1\u003c/code\u003e\u003c/a\u003e fix openssl version on 46 branch (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14220\"\u003e#14220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/e6f44fc8e6391f05d719fb9d369692325b87a471\"\u003e\u003ccode\u003ee6f44fc\u003c/code\u003e\u003c/a\u003e bump for 46.0.4 and drop win arm64 due to CI issues (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14217\"\u003e#14217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/c0af4dd7b75921bbe9f1d41a03dbd4b64a9e3403\"\u003e\u003ccode\u003ec0af4dd\u003c/code\u003e\u003c/a\u003e release 46.0.3 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13681\"\u003e#13681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/99efe5ad150a56efadafacaffd0e3ee319373904\"\u003e\u003ccode\u003e99efe5a\u003c/code\u003e\u003c/a\u003e bump version for 46.0.2 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13531\"\u003e#13531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/e735cfc27502320101c130335c556394a125ba52\"\u003e\u003ccode\u003ee735cfc\u003c/code\u003e\u003c/a\u003e release 46.0.1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13450\"\u003e#13450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/4e457ffba43a6d87efc63c33041e2081438dd8a4\"\u003e\u003ccode\u003e4e457ff\u003c/code\u003e\u003c/a\u003e Explicitly specify python in mac uv build invocation (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13447\"\u003e#13447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/2726efdb6d67f1c90cf9c6062d9fe051965586f8\"\u003e\u003ccode\u003e2726efd\u003c/code\u003e\u003c/a\u003e Depend on CFFI 2.0.0 or newer on Python \u0026gt; 3.8 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13448\"\u003e#13448\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/62230623d183706632c0eb7822c96ac95e3710a8\"\u003e\u003ccode\u003e6223062\u003c/code\u003e\u003c/a\u003e release 46.0.0 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13446\"\u003e#13446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/cryptography/compare/42.0.4...46.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `dockerfile-parse` from 2.0.0 to 2.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/containerbuildsystem/dockerfile-parse/releases\"\u003edockerfile-parse's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003ch1\u003eImprovements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRemoval of python-six module\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/containerbuildsystem/dockerfile-parse/commit/3a4360f78e60ac72b6ffc627135fca27c180c4ad\"\u003e\u003ccode\u003e3a4360f\u003c/code\u003e\u003c/a\u003e Automatic commit of package [python-dockerfile-parse] release [2.0.1-1].\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/containerbuildsystem/dockerfile-parse/commit/7d0e60413dfd6cb7f6dbe2ecb841a8199f6a43a7\"\u003e\u003ccode\u003e7d0e604\u003c/code\u003e\u003c/a\u003e fix(pylint): address broad-exception-raised\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/containerbuildsystem/dockerfile-parse/commit/9cd9cde8a1502e04c9078242964b4bb22eb00c77\"\u003e\u003ccode\u003e9cd9cde\u003c/code\u003e\u003c/a\u003e fix(spec): remove six module\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/containerbuildsystem/dockerfile-parse/compare/2.0.0...2.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask` from 2.3.2 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/pallets/flask/releases\"\u003eflask's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.3\u003c/h2\u003e\n\u003cp\u003eThis is a fix release for the 2.3.x feature branch.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eChanges: \u003ca href=\"https://flask.palletsprojects.com/en/2.3.x/changes/#version-2-3-3\"\u003ehttps://flask.palletsprojects.com/en/2.3.x/changes/#version-2-3-3\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMilestone: \u003ca href=\"https://github.com/pallets/flask/milestone/31?closed=1\"\u003ehttps://github.com/pallets/flask/milestone/31?closed=1\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/pallets/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.3.3\u003c/h2\u003e\n\u003cp\u003eReleased 2023-08-21\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.12 compatibility.\u003c/li\u003e\n\u003cli\u003eRequire Werkzeug \u0026gt;= 2.3.7.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e instead of \u003ccode\u003esetuptools\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eRefactor how an app's root and instance paths are determined. :issue:\u003ccode\u003e5160\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/flask/commit/3205b53c7cf69d17fee49cac6b84978175b7dd73\"\u003e\u003ccode\u003e3205b53\u003c/code\u003e\u003c/a\u003e release version 2.3.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/9f9550247a2798b9dcc28081c15e266442f4e28a\"\u003e\u003ccode\u003e9f95502\u003c/code\u003e\u003c/a\u003e bump werkzeug 2.3.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/02736640095ed6d5a4a409a9658eaca373fd1d48\"\u003e\u003ccode\u003e0273664\u003c/code\u003e\u003c/a\u003e Update dispatch by path example (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5217\"\u003e#5217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/a887e179b8af6a9c582a7918f9f8499ab58032cc\"\u003e\u003ccode\u003ea887e17\u003c/code\u003e\u003c/a\u003e clean up\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/aa6d4c3e92bd11a7d449f49f524e54bbb88b89c0\"\u003e\u003ccode\u003eaa6d4c3\u003c/code\u003e\u003c/a\u003e update dispatch-by-path example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/826514b8eb18f6c314cf566630253d35c89e42c3\"\u003e\u003ccode\u003e826514b\u003c/code\u003e\u003c/a\u003e fix flake8 bugbear findings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/6d266f63633f5f127165d4ef836db14a59bbc106\"\u003e\u003ccode\u003e6d266f6\u003c/code\u003e\u003c/a\u003e Pass maxsplit via kwarg to re.split (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5215\"\u003e#5215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/17e146ad949b3d80438faf95e81b53c543cb50f5\"\u003e\u003ccode\u003e17e146a\u003c/code\u003e\u003c/a\u003e Pass maxsplit via kwarg to re.split\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/8a72b741616556b4f739ea79ab502c2d2038844a\"\u003e\u003ccode\u003e8a72b74\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5211\"\u003e#5211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/7255be9626ab56d81bc0ab86db939fcc1da9bca1\"\u003e\u003ccode\u003e7255be9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/flask/compare/2.3.2...2.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-admin` from 1.6.1 to 2.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/flask-admin/releases\"\u003eflask-admin's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds support for Python 3.14: \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/pull/2685\"\u003epallets-eco/flask-admin#2685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdds a MenuDivider item for bootstrap themes: \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/pull/2696\"\u003epallets-eco/flask-admin#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eField errors are now shown in red text for bootstrap themes: \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/pull/2699\"\u003epallets-eco/flask-admin#2699\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix documentation\u003c/li\u003e\n\u003cli\u003eUpdate arabic translations\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.0.0\u003c/h2\u003e\n\u003cp\u003eBreaking changes from v1.6.1:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for Python \u0026lt;3.10\u003c/li\u003e\n\u003cli\u003eUse of the \u003ccode\u003eboto\u003c/code\u003e library has been replaced by \u003ccode\u003eboto3\u003c/code\u003e. S3FileAdmin and S3Storage now accept an \u003ccode\u003es3_client\u003c/code\u003e parameter taking a \u003ccode\u003eboto3.client('s3')\u003c/code\u003e instance rather than \u003ccode\u003eaws_access_key_id\u003c/code\u003e, \u003ccode\u003eaws_secret_access_key\u003c/code\u003e, and \u003ccode\u003eregion\u003c/code\u003e parameters.\u003c/li\u003e\n\u003cli\u003eAzure Blob Storage SDK has been upgraded from the legacy version (v2) to the latest version (v12). AzureFileAdmin now accept \u003ccode\u003eblob_service_client\u003c/code\u003e rather than \u003ccode\u003econnection_string\u003c/code\u003e to give more flexibility with connection types.\u003c/li\u003e\n\u003cli\u003eFlask-BabelEx is no longer supported; the package is no longer maintained and Flask-Babel is recommended/active instead.\u003c/li\u003e\n\u003cli\u003eMongoengine support in Flask-Admin no longer uses Flask-Mongoengine, as that library is no longer actively maintained.\u003c/li\u003e\n\u003cli\u003eBootstrap2 and Bootstrap3 themes are no longer available.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAdmin()\u003c/code\u003e now takes a \u003ccode\u003etheme\u003c/code\u003e parameter that encapsulates all of the configuration options for theming the admin instance. This replaces the \u003ccode\u003etemplate_mode\u003c/code\u003e parameter.\u003c/li\u003e\n\u003cli\u003eAll remaining Flask-Admin config has been namespaced under \u003ccode\u003eFLASK_ADMIN_\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eConfig variable name\u003c/th\u003e\n\u003cth\u003eWhat's changed\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003eFLASK_ADMIN_SWATCH\u003c/td\u003e\n\u003ctd\u003eRemoved; use \u003c!-- raw HTML omitted --\u003eTheme(swatch=...)\u003c!-- raw HTML omitted --\u003e instead\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eFLASK_ADMIN_FLUID_LAYOUT\u003c/td\u003e\n\u003ctd\u003eRemoved; use \u003c!-- raw HTML omitted --\u003eTheme(fluid=...)\u003c!-- raw HTML omitted --\u003e instead\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eMAPBOX_MAP_ID\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_MAPBOX_MAP_ID\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eMAPBOX_SEARCH\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_MAPBOX_SEARCH\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eMAPBOX_ACCESS_TOKEN\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_MAPBOX_ACCESS_TOKEN\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eGOOGLE_MAPS_API_KEY\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_GOOGLE_MAPS_API_KEY\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eDEFAULT_CENTER_LAT\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_DEFAULT_CENTER_LAT\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eDEFAULT_CENTER_LONG\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_DEFAULT_CENTER_LONG\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eADMIN_RAISE_ON_INTEGRITY_ERROR\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_RAISE_ON_INTEGRITY_ERROR\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003eADMIN_RAISE_ON_VIEW_EXCEPTION\u003c/td\u003e\n\u003ctd\u003eRenamed to FLASK_ADMIN_RAISE_ON_VIEW_EXCEPTION\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eNew functionality:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python \u0026lt;=3.13\u003c/li\u003e\n\u003cli\u003eThe default query for pymongo can be overridden\u003c/li\u003e\n\u003cli\u003eFlask async routes are supported\u003c/li\u003e\n\u003cli\u003eFlask-Admin now supports the \u003ccode\u003ehost_matching\u003c/code\u003e mode of Flask apps. See documentation for how to configure this where needed.\u003c/li\u003e\n\u003cli\u003eFlask-Admin is now compatible with SQLAlchemy v2+, Flask v3+, WTForms v3+, and Pillow v10+.\u003c/li\u003e\n\u003cli\u003eFlask-Admin now declares its dependencies and supported dependency versions more cleanly, including using pip extras. If you use Flask-Admin with SQLAlchemy, for example, you should use \u003ccode\u003epip install flask-admin[sqlalchemy]\u003c/code\u003e or list \u003ccode\u003eflask-admin[sqlalchemy]\u003c/code\u003e in your requirements.txt or pyproject.toml files.\u003c/li\u003e\n\u003cli\u003eApps using content security policies to restrict the assets that can be loaded can now whitelist Flask-Admin's assets by passing a \u003ccode\u003ecsp_nonce_generator\u003c/code\u003e function to the Admin instance. See examples or documentation for how to configure this where needed.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epage_size_options\u003c/code\u003e can now be configured on Admin models, to restrict the page sizes that users can select. These are now enforced properly and cannot be bypassed by URL hacking.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eBootstrap menu icons should show up properly and not duplicated\u003c/li\u003e\n\u003cli\u003eRedis CLI commands are now case insensitive\u003c/li\u003e\n\u003cli\u003eSQLAlchemy boolean filters now convert \u0026quot;1\u0026quot; and \u0026quot;0\u0026quot; to Python booleans, which fixes a type coercion issue with psycopg(3).\u003c/li\u003e\n\u003cli\u003eJinja templates can now be loaded in StrictUndefined mode.\u003c/li\u003e\n\u003cli\u003eRemove an implicit dependency on \u003ccode\u003epackaging\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFixed an error caused by the fallback implementation of \u003ccode\u003egettext()\u003c/code\u003e (when used in templates)\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-eco/flask-admin/blob/master/doc/changelog.rst\"\u003eflask-admin's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds support for Python 3.14: \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/pull/2685\"\u003epallets-eco/flask-admin#2685\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdds a MenuDivider item for bootstrap themes: \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/pull/2696\"\u003epallets-eco/flask-admin#2696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eField errors are now shown in red text for bootstrap themes: \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/pull/2699\"\u003epallets-eco/flask-admin#2699\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix documentation\u003c/li\u003e\n\u003cli\u003eUpdate arabic translations\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.0.0\u003c/h2\u003e\n\u003cp\u003eBreaking changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for Python \u0026lt;3.10\u003c/li\u003e\n\u003cli\u003eUse of the \u003ccode\u003eboto\u003c/code\u003e library has been replaced by \u003ccode\u003eboto3\u003c/code\u003e. S3FileAdmin and S3Storage now accept an \u003ccode\u003es3_client\u003c/code\u003e parameter taking a \u003ccode\u003eboto3.client('s3')\u003c/code\u003e instance rather than \u003ccode\u003eaws_access_key_id\u003c/code\u003e, \u003ccode\u003eaws_secret_access_key\u003c/code\u003e, and \u003ccode\u003eregion\u003c/code\u003e parameters.\u003c/li\u003e\n\u003cli\u003eAzure Blob Storage SDK has been upgraded from the legacy version (v2) to the latest version (v12). AzureFileAdmin now accept \u003ccode\u003eblob_service_client\u003c/code\u003e rather than \u003ccode\u003econnection_string\u003c/code\u003e to give more flexibility with connection types.\u003c/li\u003e\n\u003cli\u003eFlask-BabelEx is no longer supported; the package is no longer maintained and Flask-Babel is recommended/active instead.\u003c/li\u003e\n\u003cli\u003eMongoengine support in Flask-Admin no longer uses Flask-Mongoengine, as that library is no longer actively maintained.\u003c/li\u003e\n\u003cli\u003eBootstrap2 and Bootstrap3 themes are no longer available.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAdmin()\u003c/code\u003e now takes a \u003ccode\u003etheme\u003c/code\u003e parameter that encapsulates all of the configuration options for theming the admin instance. This replaces the \u003ccode\u003etemplate_mode\u003c/code\u003e parameter.\u003c/li\u003e\n\u003cli\u003eAll remaining Flask-Admin config has been namespaced under \u003ccode\u003eFLASK_ADMIN_\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. list-table:: Configuration Changes\n:widths: 50 50\n:header-rows: 1\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eConfig variable name\u003c/li\u003e\n\u003cli\u003eWhat's changed\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eFLASK_ADMIN_SWATCH\u003c/li\u003e\n\u003cli\u003eRemoved; use \u003ccode\u003eTheme(swatch=...)\u003c/code\u003e instead\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eFLASK_ADMIN_FLUID_LAYOUT\u003c/li\u003e\n\u003cli\u003eRemoved; use \u003ccode\u003eTheme(fluid=...)\u003c/code\u003e instead\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eMAPBOX_MAP_ID\u003c/li\u003e\n\u003cli\u003eRenamed to FLASK_ADMIN_MAPBOX_MAP_ID\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eMAPBOX_SEARCH\u003c/li\u003e\n\u003cli\u003eRenamed to FLASK_ADMIN_MAPBOX_SEARCH\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eMAPBOX_ACCESS_TOKEN\u003c/li\u003e\n\u003cli\u003eRenamed to FLASK_ADMIN_MAPBOX_ACCESS_TOKEN\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eGOOGLE_MAPS_API_KEY\u003c/li\u003e\n\u003cli\u003eRenamed to FLASK_ADMIN_GOOGLE_MAPS_API_KEY\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eDEFAULT_CENTER_LAT\u003c/li\u003e\n\u003cli\u003eRenamed to FLASK_ADMIN_DEFAULT_CENTER_LAT\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eDEFAULT_CENTER_LONG\u003c/li\u003e\n\u003cli\u003eRenamed to FLASK_ADMIN_DEFAULT_CENTER_LONG\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cul\u003e\n\u003cli\u003eADMIN_RAISE_ON_INTEGRITY_ERROR\u003c/li\u003e\n\u003c/ul\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/pallets-eco/flask-admin/commit/e26bee40d0aaddf7aaf2bc9d1f8949cfed3a709c\"\u003e\u003ccode\u003ee26bee4\u003c/code\u003e\u003c/a\u003e v2.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/6b0a8a03f0ebd3bcf28bfb59390c380c014b031d\"\u003e\u003ccode\u003e6b0a8a0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/issues/2696\"\u003e#2696\u003c/a\u003e from samialfattani/feature/menu-divider\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/67c5702d102e89c9ab96f5ed87d446595b9cc3a3\"\u003e\u003ccode\u003e67c5702\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/issues/2699\"\u003e#2699\u003c/a\u003e from samialfattani/err_desc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/9336e2d56c372ec697360f0d15fa1ddc93e7941f\"\u003e\u003ccode\u003e9336e2d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/issues/2685\"\u003e#2685\u003c/a\u003e from pallets-eco/py3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/5368f70b925e85f724e5c91b2f8c894fab2855fe\"\u003e\u003ccode\u003e5368f70\u003c/code\u003e\u003c/a\u003e error discription in red color\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/731281b61d21f9fcc58243a71e5ee4d9574dbe3e\"\u003e\u003ccode\u003e731281b\u003c/code\u003e\u003c/a\u003e filter resource warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/0eb8920a5fcde4eae7d69fb463d6ae1f00dea64f\"\u003e\u003ccode\u003e0eb8920\u003c/code\u003e\u003c/a\u003e add menu divider\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/16d36f25e8d06d099db29b7a29d3b4eeb85b8ca5\"\u003e\u003ccode\u003e16d36f2\u003c/code\u003e\u003c/a\u003e Release v2.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/4303e46fa9b782c7136803e77f044c4abd39fa17\"\u003e\u003ccode\u003e4303e46\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pallets-eco/flask-admin/issues/2692\"\u003e#2692\u003c/a\u003e from samialfattani/fix_arabic\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-admin/commit/d923bbc5b163e92beaa2450c9c5a5532da866489\"\u003e\u003ccode\u003ed923bbc\u003c/code\u003e\u003c/a\u003e fix typos\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/flask-admin/compare/v1.6.1...v2.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-babel` from 3.1.0 to 4.0.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-babel/flask-babel/releases\"\u003eflask-babel's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.0.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for end-of-life Python 3.7. Support PyPy 3.9\u003c/li\u003e\n\u003cli\u003eReplace deprecated locked_cached_property decorator with cached_property (\u003ca href=\"https://redirect.github.com/python-babel/flask-babel/issues/230\"\u003e#230\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-babel/flask-babel/commit/a754eade39d9850693dd2b645ae8a2545df7fdf7\"\u003e\u003ccode\u003ea754ead\u003c/code\u003e\u003c/a\u003e Bump version: 3.1.1 → 4.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/flask-babel/commit/d42f50c1f80279931279c076c40e2bacf74b4c15\"\u003e\u003ccode\u003ed42f50c\u003c/code\u003e\u003c/a\u003e Dropping Python 3.7 support, adding PyPy 3.9.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/flask-babel/commit/db5c2a152330d3095aab868752342dad18653852\"\u003e\u003ccode\u003edb5c2a1\u003c/code\u003e\u003c/a\u003e Bump version: 3.1.0 → 3.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/flask-babel/commit/6ca29cdc52587488c46f131dbb3b3cd69f4aa78c\"\u003e\u003ccode\u003e6ca29cd\u003c/code\u003e\u003c/a\u003e Merge branch 'jkittner-flask-2-3-deprecation'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/flask-babel/commit/346a45a0e1fbf6fae735c70588754724a0101857\"\u003e\u003ccode\u003e346a45a\u003c/code\u003e\u003c/a\u003e Merge branch 'flask-2-3-deprecation' of github.com:jkittner/flask-babel into ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/flask-babel/commit/dad9165d5cb4494e4473259bf37fc34a21974cad\"\u003e\u003ccode\u003edad9165\u003c/code\u003e\u003c/a\u003e Explicit app factory test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/flask-babel/commit/38f15cd15bdb742cadb81bcb8c8bfb81e0b5a1c5\"\u003e\u003ccode\u003e38f15cd\u003c/code\u003e\u003c/a\u003e Release triggered on public, not creation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-babel/flask-babel/commit/414a5a3dee8639b28ca6edd37e5f91adbc622e37\"\u003e\u003ccode\u003e414a5a3\u003c/code\u003e\u003c/a\u003e replace deprecated locked_cached_property decorator with cached_property\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python-babel/flask-babel/compare/v3.1.0...v4.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-debugtoolbar` from 0.14.1 to 0.16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/releases\"\u003eflask-debugtoolbar's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.16.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.7 support in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/255\"\u003epallets-eco/flask-debugtoolbar#255\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequire Flask \u0026gt;= 2.3.0 in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/256\"\u003epallets-eco/flask-debugtoolbar#256\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop unnecessary Blinker dependency in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/248\"\u003epallets-eco/flask-debugtoolbar#248\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd static type annotations in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/259\"\u003epallets-eco/flask-debugtoolbar#259\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e__version__\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/260\"\u003epallets-eco/flask-debugtoolbar#260\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eFlask.host_matching\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/274\"\u003epallets-eco/flask-debugtoolbar#274\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/compare/0.15.1...0.16.0\"\u003ehttps://github.com/pallets-eco/flask-debugtoolbar/compare/0.15.1...0.16.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.15.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix prob w/using w/o SQLAlchemy by \u003ca href=\"https://github.com/joelburton\"\u003e\u003ccode\u003e@​joelburton\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/253\"\u003epallets-eco/flask-debugtoolbar#253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump to \u003ccode\u003e0.15.1\u003c/code\u003e by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/254\"\u003epallets-eco/flask-debugtoolbar#254\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/joelburton\"\u003e\u003ccode\u003e@​joelburton\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/253\"\u003epallets-eco/flask-debugtoolbar#253\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/compare/0.15.0...0.15.1\"\u003ehttps://github.com/pallets-eco/flask-debugtoolbar/compare/0.15.0...0.15.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.15.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd minimal test without extra deps by \u003ca href=\"https://github.com/greyli\"\u003e\u003ccode\u003e@​greyli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/230\"\u003epallets-eco/flask-debugtoolbar#230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRequire Flask \u0026gt;= 2.2.0 by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/224\"\u003epallets-eco/flask-debugtoolbar#224\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd option to dump profiler stats by \u003ca href=\"https://github.com/Dosenpfand\"\u003e\u003ccode\u003e@​Dosenpfand\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/204\"\u003epallets-eco/flask-debugtoolbar#204\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003einit_app()\u003c/code\u003e method to \u003ccode\u003eDebugPanel\u003c/code\u003e base class by \u003ca href=\"https://github.com/malthejorgensen\"\u003e\u003ccode\u003e@​malthejorgensen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/95\"\u003epallets-eco/flask-debugtoolbar#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport applications using flask.copy_current_request_context by \u003ca href=\"https://github.com/glic3rinu\"\u003e\u003ccode\u003e@​glic3rinu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/231\"\u003epallets-eco/flask-debugtoolbar#231\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix SQLAlchemy recording warning for versions \u0026gt;= 3 by \u003ca href=\"https://github.com/Jonty\"\u003e\u003ccode\u003e@​Jonty\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/233\"\u003epallets-eco/flask-debugtoolbar#233\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix missing \u003ccode\u003edistutils\u003c/code\u003e error on Python 3.12 by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/238\"\u003epallets-eco/flask-debugtoolbar#238\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove deprecated Flask version attribute by \u003ca href=\"https://github.com/greyli\"\u003e\u003ccode\u003e@​greyli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/243\"\u003epallets-eco/flask-debugtoolbar#243\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix trailing whitespace by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/237\"\u003epallets-eco/flask-debugtoolbar#237\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate \u003ccode\u003ejquery.tablesorter.js\u003c/code\u003e plugin by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/235\"\u003epallets-eco/flask-debugtoolbar#235\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003ejquery\u003c/code\u003e to \u003ccode\u003e1.12.4\u003c/code\u003e by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/236\"\u003epallets-eco/flask-debugtoolbar#236\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump \u003ccode\u003ejquery\u003c/code\u003e to \u003ccode\u003e3.7.1\u003c/code\u003e and \u003ccode\u003ejquery-migrate\u003c/code\u003e to \u003ccode\u003e3.4.1\u003c/code\u003e by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/241\"\u003epallets-eco/flask-debugtoolbar#241\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some \u003ccode\u003ejquery\u003c/code\u003e deprecation warnings by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/242\"\u003epallets-eco/flask-debugtoolbar#242\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace deprecated \u003ccode\u003epkg_resources\u003c/code\u003e with stdlib by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/239\"\u003epallets-eco/flask-debugtoolbar#239\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent LookupError when accessing debug_toolbars_var by \u003ca href=\"https://github.com/glic3rinu\"\u003e\u003ccode\u003e@​glic3rinu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/245\"\u003epallets-eco/flask-debugtoolbar#245\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInstall custom Sphinx theme via \u003ccode\u003eextras_require\u003c/code\u003e by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/250\"\u003epallets-eco/flask-debugtoolbar#250\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e.readthedocs.yaml\u003c/code\u003e file by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/246\"\u003epallets-eco/flask-debugtoolbar#246\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump to \u003ccode\u003e0.15.0\u003c/code\u003e by \u003ca href=\"https://github.com/jeffwidman\"\u003e\u003ccode\u003e@​jeffwidman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/251\"\u003epallets-eco/flask-debugtoolbar#251\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/malthejorgensen\"\u003e\u003ccode\u003e@​malthejorgensen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/95\"\u003epallets-eco/flask-debugtoolbar#95\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/glic3rinu\"\u003e\u003ccode\u003e@​glic3rinu\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/231\"\u003epallets-eco/flask-debugtoolbar#231\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Jonty\"\u003e\u003ccode\u003e@​Jonty\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/pull/233\"\u003epallets-eco/flask-debugtoolbar#233\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/compare/0.14.1...0.15.0\"\u003ehttps://github.com/pallets-eco/flask-debugtoolbar/compare/0.14.1...0.15.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/pallets-eco/flask-debugtoolbar/commit/98c611ade925e1a615373edcd6313222ea57d221\"\u003e\u003ccode\u003e98c611a\u003c/code\u003e\u003c/a\u003e Release version 0.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/95b02b592036e4d74c1d837d0ef3bba06063aa38\"\u003e\u003ccode\u003e95b02b5\u003c/code\u003e\u003c/a\u003e Bump the python-requirements group across 1 directory with 4 updates (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/bd642464f28e053c52a09882665e5bd8af5132da\"\u003e\u003ccode\u003ebd64246\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/issues/283\"\u003e#283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/5671a92e1737699dcce8d792ae0113c150c52a7d\"\u003e\u003ccode\u003e5671a92\u003c/code\u003e\u003c/a\u003e Bump the python-requirements group across 1 directory with 4 updates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/ad6323994f2ab3226c6056755f535cb1aea62e42\"\u003e\u003ccode\u003ead63239\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/issues/285\"\u003e#285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/23612561077884f355fc34651955757d29289dc6\"\u003e\u003ccode\u003e2361256\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/e7b8136dea5a746195ebd4e9982ec2be8fc9c617\"\u003e\u003ccode\u003ee7b8136\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/issues/280\"\u003e#280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/ccf5ae22c6ebcd284fa4826bc21f570a624017c3\"\u003e\u003ccode\u003eccf5ae2\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into dependabot/github_actions/github-actions-5070efb06b\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/4e98b183f3060d38028a0e2c47649553b23dc063\"\u003e\u003ccode\u003e4e98b18\u003c/code\u003e\u003c/a\u003e Bump the python-requirements group in /requirements with 2 updates (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-debugtoolbar/issues/279\"\u003e#279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/commit/5b4f4a0fcd29ed152f8041a386d264a1cd04cc30\"\u003e\u003ccode\u003e5b4f4a0\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/flask-debugtoolbar/compare/0.14.1...0.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-mail` from 0.9.1 to 0.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets-eco/flask-mail/releases\"\u003eflask-mail's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.10.0\u003c/h2\u003e\n\u003cp\u003eFlask-Mail is now part of the Pallets Community Ecosystem. Pallets is the open source organization that maintains Flask; Pallets-Eco enables community maintenance of related projects. If you are interested in helping maintain this project, please reach out on \u003ca href=\"https://discord.gg/pallets\"\u003ethe Pallets Discord server\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis release mainly refreshes the project after its extended hiatus. It now uses the standard Pallets project layout, tools, and configurations. Documentation is now hosted at \u003ca href=\"https://flask-mail.readthedocs.io\"\u003ehttps://flask-mail.readthedocs.io\u003c/a\u003e. The library now exports static type annotations.\u003c/p\u003e\n\u003cp\u003eChanges: \u003ca href=\"https://flask-mail.readthedocs.io/en/latest/changes/#version-0-10-0\"\u003ehttps://flask-mail.readthedocs.io/en/latest/changes/#version-0-10-0\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets-eco/flask-mail/milestone/1?closed=1\"\u003ehttps://github.com/pallets-eco/flask-mail/milestone/1?closed=1\u003c/a\u003e\nPyPI: \u003ca href=\"https://pypi.org/project/Flask-Mail/0.10.0/\"\u003ehttps://pypi.org/project/Flask-Mail/0.10.0/\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python \u0026lt; 3.8.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003epyproject.toml\u003c/code\u003e for packaging metadata.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eApply code formatting and linting tools.\u003c/li\u003e\n\u003cli\u003eAdd static type annotations.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection or \u003ccode\u003eimportlib.metadata.version(\u0026quot;flask-mail\u0026quot;)\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eIndicate that the deprecated \u003ccode\u003eis_bad_headers\u003c/code\u003e will be removed in the next version.\u003c/li\u003e\n\u003cli\u003eFix the \u003ccode\u003eemail_dispatched\u003c/code\u003e signal to pass the current app as the sender and \u003ccode\u003emessage\u003c/code\u003e as an argument, rather than the other way around.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAttachment.data\u003c/code\u003e may not be \u003ccode\u003eNone\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAttachment.content_type\u003c/code\u003e will be detected based on \u003ccode\u003efilename\u003c/code\u003e and \u003ccode\u003edata\u003c/code\u003e and will not be \u003ccode\u003eNone\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/pallets-eco/flask-mail/blob/main/CHANGES.md\"\u003eflask-mail's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.10.0\u003c/h2\u003e\n\u003cp\u003eReleased 2024-05-23\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python \u0026lt; 3.8.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003epyproject.toml\u003c/code\u003e for packaging metadata.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eflit_core\u003c/code\u003e as build backend.\u003c/li\u003e\n\u003cli\u003eApply code formatting and linting tools.\u003c/li\u003e\n\u003cli\u003eAdd static type annotations.\u003c/li\u003e\n\u003cli\u003eDeprecate the \u003ccode\u003e__version__\u003c/code\u003e attribute. Use feature detection or\n\u003ccode\u003eimportlib.metadata.version(\u0026quot;flask-mail\u0026quot;)\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eIndicate that the deprecated \u003ccode\u003eis_bad_headers\u003c/code\u003e will be removed in the next\nversion.\u003c/li\u003e\n\u003cli\u003eFix the \u003ccode\u003eemail_dispatched\u003c/code\u003e signal to pass the current app as the sender and\n\u003ccode\u003emessage\u003c/code\u003e as an argument, rather than the other way around.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAttachment.data\u003c/code\u003e may not be \u003ccode\u003eNone\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eAttachment.content_type\u003c/code\u003e will be detected based on \u003ccode\u003efilename\u003c/code\u003e and \u003ccode\u003edata\u003c/code\u003e\nand will not be \u003ccode\u003eNone\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-eco/flask-mail/commit/848ea85f2bf2583d7f0ef58ed55ac1d18f67883a\"\u003e\u003ccode\u003e848ea85\u003c/code\u003e\u003c/a\u003e release version 0.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/0ec1f6b59407f064ece6db351e2da86f4f9ea557\"\u003e\u003ccode\u003e0ec1f6b\u003c/code\u003e\u003c/a\u003e remove test pypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/846a67ecf442d908c45057d8c39e2a16150d4868\"\u003e\u003ccode\u003e846a67e\u003c/code\u003e\u003c/a\u003e add static type annotations (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/221\"\u003e#221\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/9075a7a453839a2d8918635ac517713375d26357\"\u003e\u003ccode\u003e9075a7a\u003c/code\u003e\u003c/a\u003e fix signal argument order (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/219\"\u003e#219\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/7b450bd11060bb2885b107c22593326cf488ebad\"\u003e\u003ccode\u003e7b450bd\u003c/code\u003e\u003c/a\u003e update \u003ccode\u003eis_bad_headers\u003c/code\u003e deprecation message (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/218\"\u003e#218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/56914a8512cade43990ea0161560cef8b9bc7391\"\u003e\u003ccode\u003e56914a8\u003c/code\u003e\u003c/a\u003e deprecate \u003ccode\u003e__version__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/217\"\u003e#217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/1932b747f8323c3225fa306f6f36e561face7368\"\u003e\u003ccode\u003e1932b74\u003c/code\u003e\u003c/a\u003e update project files (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/216\"\u003e#216\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/46bddb7cd0f543c32d79ee449087664143927a61\"\u003e\u003ccode\u003e46bddb7\u003c/code\u003e\u003c/a\u003e Various minor doc updates (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/214\"\u003e#214\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/610faf7d5f7b1cf3f0706bd8ca1aec9bba9fa654\"\u003e\u003ccode\u003e610faf7\u003c/code\u003e\u003c/a\u003e Update docs to use myst-parser (and be written in .md) (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets-eco/flask-mail/commit/bede1aca81ebf585cf9d8284e8881c94e8eb269b\"\u003e\u003ccode\u003ebede1ac\u003c/code\u003e\u003c/a\u003e notify 0.8 backward incompatible changes in ChangeLog (\u003ca href=\"https://redirect.github.com/pallets-eco/flask-mail/issues/109\"\u003e#109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets-eco/flask-mail/compare/0.9.1...0.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `flask-migrate` from 3.0.1 to 4.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/releases\"\u003eflask-migrate's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 4.1.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGES.md\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.7\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGES.md\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.6\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGES.md\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.5\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGES.md\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.4\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGE.LOG\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.3\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGE.LOG\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.2\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGE.LOG\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.1\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGE.LOG\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 4.0.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGE.LOG\u003c/a\u003e for release notes.\u003c/p\u003e\n\u003ch2\u003eRelease 3.1.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/blob/main/CHANGES.md\"\u003eCHANGE.LOG\u003c/a\u003e for release notes.\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/miguelgrinberg/Flask-Migrate/blob/main/CHANGES.md\"\u003eflask-migrate's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eFlask-Migrate Change Log\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eRelease 4.1.0\u003c/strong\u003e - 2025-01-10\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAccept arguments such as \u003ccode\u003e--directory\u003c/code\u003e in environment variables \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/553\"\u003e#553\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/12a181ce0542659f10b4ce154a10cfd41fa1f501\"\u003ecommit\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix minor typos in documentation \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/552\"\u003e#552\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/3b073a2c500303894c495d2e4fa0ef449b6a2833\"\u003ecommit\u003c/a\u003e) (thanks \u003cstrong\u003eKevin Kirsche\u003c/strong\u003e!)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eRelease 4.0.7\u003c/strong\u003e - 2024-03-11\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRegression from \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/438\"\u003e#438\u003c/a\u003e: check \u003ccode\u003eg.x_arg\u003c/code\u003e exists before accessing it \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/541\"\u003e#541\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/7e8032c61e5c47f4e50b03dcf98c3b20dd5a8e55\"\u003ecommit\u003c/a\u003e) (thanks \u003cstrong\u003eSkye Im\u003c/strong\u003e!)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eRelease 4.0.6\u003c/strong\u003e - 2024-03-09\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAccept \u003ccode\u003e-x\u003c/code\u003e options for all db commands \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/438\"\u003e#438\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/6f3f889c36030134f87dc1db327c2385d873a4d6\"\u003ecommit\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--purge\u003c/code\u003e flag to the \u003ccode\u003estamp\u003c/code\u003e command \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/540\"\u003e#540\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/af67bb093df5652c867b88880c5934bfc68313cc\"\u003ecommit\u003c/a\u003e) (thanks \u003cstrong\u003eJono N\u003c/strong\u003e!)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eRelease 4.0.5\u003c/strong\u003e - 2023-09-12\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCompatibility fixes for Flask-SQLAlchemy \u0026gt;= 3.1 \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/526\"\u003e#526\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/f562178bbe1912912f3cb6877cbae8b0899c74da\"\u003ecommit\u003c/a\u003e) (thanks \u003cstrong\u003eDavid Lord\u003c/strong\u003e!)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eprocess_revision_directives\u003c/code\u003e option to be configurable \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/523\"\u003e#523\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/821e37fcc4a5e339f197153cdbb4dd2316cbd44b\"\u003ecommit\u003c/a\u003e) (thanks \u003cstrong\u003ellc\u003c/strong\u003e!)\u003c/li\u003e\n\u003cli\u003eStop testing Python 3.7, as Flask-SQLAlchemy 3.1 stopped supporting it (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/8d175193f00bf4e5578f0142d011093d8cd53d57\"\u003ecommit\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eRelease 4.0.4\u003c/strong\u003e - 2023-02-02\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCorrectly obtain database URL with SQLAlchemy 2.0 \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/505\"\u003e#505\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/c8cd02c5d3d43bbab462b863db5417b5d69228bb\"\u003ecommit\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eRelease 4.0.3\u003c/strong\u003e - 2023-01-29\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemove legacy \u003cstrong\u003efuture\u003c/strong\u003e import in Alembic templates \u003ca href=\"https://redirect.github.com/miguelgrinberg/flask-migrate/issues/504\"\u003e#504\u003c/a\u003e (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/7a388cfe320254735f4ed65ac655caaf0cae8b28\"\u003ecommit\u003c/a\u003e) (thanks \u003cstrong\u003ePamela Fox\u003c/strong\u003e!)\u003c/li\u003e\n\u003cli\u003eAdd SQLAlchemy 1.4 and 2.0 to the test matrix (\u003ca href=\"https://github.com/miguelgrinberg/flask-migrate/commit/7a725f2e3267f1c3bb4920cd3bff3a9ff1d7eb6e\"\u003ecommit\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSwitch to pytest as test runner (\u003c...\n\n_Description has been truncated_","html_url":"https://github.com/cabotage/cabotage-app/pull/149","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/cabotage%2Fcabotage-app/issues/149","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/149/packages"}},{"old_version":"8.0","new_version":"8.2","update_type":null,"path":null,"pr_created_at":"2025-12-15T14:30:19.000Z","version_change":"8.0 → 8.2","issue":{"uuid":"3730711535","node_id":"PR_kwDOPrR8PM648EqS","number":1123,"state":"open","title":"chore(deps)(deps): bump qrcode[pil] from 8.0 to 8.2","user":"dependabot[bot]","labels":["bug","documentation","enhancement","backend","dependencies","python","priority: high","security","automated","performance","needs-review","size/XS","refactor"],"assignees":["GrayGhostDev"],"locked":false,"comments_count":11,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-12-15T14:30:19.000Z","updated_at":"2025-12-15T14:38:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps)","packages":[{"name":"qrcode","old_version":"8.0","new_version":"8.2","repository_url":null}],"path":null,"ecosystem":"pip"},"body":"Bumps [qrcode[pil]](https://github.com/lincolnloop/python-qrcode) from 8.0 to 8.2.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lincolnloop/python-qrcode/blob/main/CHANGES.rst\"\u003eqrcode[pil]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2 (01 May 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize QRColorMask apply_mask method for enhanced performance\u003c/li\u003e\n\u003cli\u003eFix typos on StyledPilImage embeded_* parameters.\nThe old parameters with the typos are still accepted\nfor backward compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1 (02 April 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\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/lincolnloop/python-qrcode/commit/3704f57a1107dbf553a50f5b531da3859abe19cf\"\u003e\u003ccode\u003e3704f57\u003c/code\u003e\u003c/a\u003e Preparing release 8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/b593a2b86d8f9cd1bc24cc5623ee47cf1aa076b5\"\u003e\u003ccode\u003eb593a2b\u003c/code\u003e\u003c/a\u003e Fix embeded_* typo on paremeters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/d2674f83092d3573e164bb83468e51f59c85bf50\"\u003e\u003ccode\u003ed2674f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/383\"\u003e#383\u003c/a\u003e from btimby/spelling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/2ced7b4b38ea3132793723bbab588d5676fc8bc7\"\u003e\u003ccode\u003e2ced7b4\u003c/code\u003e\u003c/a\u003e Ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/c5e3f0180e025d9c0fd6adf8ed3c9998073c6137\"\u003e\u003ccode\u003ec5e3f01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/372\"\u003e#372\u003c/a\u003e from smalyu/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/cd3cd7bf87fc81860481902ca22d5b7463332b4b\"\u003e\u003ccode\u003ecd3cd7b\u003c/code\u003e\u003c/a\u003e Release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/5dcf89c56417ad37de8dba953f974324ae7b9271\"\u003e\u003ccode\u003e5dcf89c\u003c/code\u003e\u003c/a\u003e Preparing release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/10da1ba2c95886312097608bd4632ba34765e0e0\"\u003e\u003ccode\u003e10da1ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/386\"\u003e#386\u003c/a\u003e from hugovk/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/7cb996d04c6536a2dbf84cccf9fc471a200f0072\"\u003e\u003ccode\u003e7cb996d\u003c/code\u003e\u003c/a\u003e Upgrade Python syntax with pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/dc4831bde0c432e5d878b75818af38e9dc80cc87\"\u003e\u003ccode\u003edc4831b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lincolnloop/python-qrcode/compare/v8.0...v8.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=qrcode[pil]\u0026package-manager=pip\u0026previous-version=8.0\u0026new-version=8.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/GrayGhostDev/ToolboxAI-Solutions/pull/1123","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/GrayGhostDev%2FToolboxAI-Solutions/issues/1123","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1123/packages"}},{"old_version":"8.1","new_version":"8.2","update_type":null,"path":null,"pr_created_at":"2025-12-03T12:35:06.000Z","version_change":"8.1 → 8.2","issue":{"uuid":"3690058876","node_id":"PR_kwDOQTbNN8620v51","number":39,"state":"closed","title":"Bump the python group across 1 directory with 30 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-12-04T12:33:30.000Z","author_association":null,"state_reason":null,"created_at":"2025-12-03T12:35:06.000Z","updated_at":"2025-12-04T12:33:32.000Z","time_to_close":86304,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python","update_count":30,"packages":[{"name":"celery","old_version":"5.5.3","new_version":"5.6.0","repository_url":"https://github.com/celery/celery"},{"name":"django","old_version":"5.2.8","new_version":"5.2.9","repository_url":"https://github.com/django/django"},{"name":"django-allauth","old_version":"65.13.0","new_version":"65.13.1"},{"name":"psycopg","old_version":"3.2.12","new_version":"3.3.1"},{"name":"redis","old_version":"7.0.1","new_version":"7.1.0","repository_url":"https://github.com/redis/redis-py"},{"name":"sentry-sdk","old_version":"2.43.0","new_version":"2.46.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"django-import-export","old_version":"4.1.1","new_version":"4.3.14","repository_url":"https://github.com/django-import-export/django-import-export"},{"name":"django-leaflet","old_version":"0.30.1","new_version":"0.33.0","repository_url":"https://github.com/makinacorpus/django-leaflet"},{"name":"djoser","old_version":"2.2.3","new_version":"2.3.3","repository_url":"https://github.com/sunscrapers/djoser"},{"name":"social-auth-app-django","old_version":"5.4.2","new_version":"5.6.0","repository_url":"https://github.com/python-social-auth/social-app-django"},{"name":"channels","old_version":"4.1.0","new_version":"4.3.2"},{"name":"channels-redis","old_version":"4.2.0","new_version":"4.3.0","repository_url":"https://github.com/django/channels_redis"},{"name":"django-filter","old_version":"25.1","new_version":"25.2","repository_url":"https://github.com/carltongibson/django-filter"},{"name":"pycryptodome","old_version":"3.19.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"qrcode","old_version":"8.1","new_version":"8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"},{"name":"djangorestframework-gis","old_version":"1.0","new_version":"1.2.0","repository_url":"https://github.com/openwisp/django-rest-framework-gis"},{"name":"xhtml2pdf","old_version":"0.2.16","new_version":"0.2.17","repository_url":"https://github.com/xhtml2pdf/xhtml2pdf"},{"name":"exponent-server-sdk","old_version":"2.1.0","new_version":"2.2.0","repository_url":"https://github.com/expo/exponent-server-sdk-python"},{"name":"python-bidi","old_version":"0.4.2","new_version":"0.6.7","repository_url":"https://github.com/MeirKriheli/python-bidi"},{"name":"django-unfold","old_version":"0.33.0","new_version":"0.72.0","repository_url":"https://github.com/unfoldadmin/django-unfold"},{"name":"django-simple-history","old_version":"3.7.0","new_version":"3.10.1","repository_url":"https://github.com/django-commons/django-simple-history"},{"name":"reportlab","old_version":"4.0.9","new_version":"4.4.5"},{"name":"django-auto-prefetch","old_version":"1.9.0","new_version":"1.14.0","repository_url":"https://github.com/tolomea/django-auto-prefetch"},{"name":"coverage","old_version":"7.11.0","new_version":"7.12.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"django-stubs","old_version":"5.2.7","new_version":"5.2.8"},{"name":"factory-boy","old_version":"3.3.2","new_version":"3.3.3","repository_url":"https://github.com/FactoryBoy/factory_boy"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.0","repository_url":"https://github.com/python/mypy"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.5.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.14.4","new_version":"0.14.7","repository_url":"https://github.com/astral-sh/ruff"},{"name":"werkzeug","old_version":"3.1.3","new_version":"3.1.4"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 30 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [celery](https://github.com/celery/celery) | `5.5.3` | `5.6.0` |\n| [django](https://github.com/django/django) | `5.2.8` | `5.2.9` |\n| [django-allauth[mfa]](https://github.com/sponsors/pennersr) | `65.13.0` | `65.13.1` |\n| [psycopg[c]](https://github.com/psycopg/psycopg) | `3.2.12` | `3.3.1` |\n| [redis](https://github.com/redis/redis-py) | `7.0.1` | `7.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.43.0` | `2.46.0` |\n| [django-import-export](https://github.com/django-import-export/django-import-export) | `4.1.1` | `4.3.14` |\n| [django-leaflet](https://github.com/makinacorpus/django-leaflet) | `0.30.1` | `0.33.0` |\n| [djoser](https://github.com/sunscrapers/djoser) | `2.2.3` | `2.3.3` |\n| [social-auth-app-django](https://github.com/python-social-auth/social-app-django) | `5.4.2` | `5.6.0` |\n| [channels[daphne]](https://github.com/django/channels) | `4.1.0` | `4.3.2` |\n| [channels-redis](https://github.com/django/channels_redis) | `4.2.0` | `4.3.0` |\n| [django-filter](https://github.com/carltongibson/django-filter) | `25.1` | `25.2` |\n| [pycryptodome](https://github.com/Legrandin/pycryptodome) | `3.19.0` | `3.23.0` |\n| [qrcode](https://github.com/lincolnloop/python-qrcode) | `8.1` | `8.2` |\n| [djangorestframework-gis](https://github.com/openwisp/django-rest-framework-gis) | `1.0` | `1.2.0` |\n| [xhtml2pdf](https://github.com/xhtml2pdf/xhtml2pdf) | `0.2.16` | `0.2.17` |\n| [exponent-server-sdk](https://github.com/expo/exponent-server-sdk-python) | `2.1.0` | `2.2.0` |\n| [python-bidi](https://github.com/MeirKriheli/python-bidi) | `0.4.2` | `0.6.7` |\n| [django-unfold](https://github.com/unfoldadmin/django-unfold) | `0.33.0` | `0.72.0` |\n| [django-simple-history](https://github.com/django-commons/django-simple-history) | `3.7.0` | `3.10.1` |\n| [reportlab](https://www.reportlab.com/) | `4.0.9` | `4.4.5` |\n| [django-auto-prefetch](https://github.com/tolomea/django-auto-prefetch) | `1.9.0` | `1.14.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.11.0` | `7.12.0` |\n| [django-stubs[compatible-mypy]](https://github.com/sponsors/typeddjango) | `5.2.7` | `5.2.8` |\n| [factory-boy](https://github.com/FactoryBoy/factory_boy) | `3.3.2` | `3.3.3` |\n| [mypy](https://github.com/python/mypy) | `1.18.2` | `1.19.0` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.5.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.4` | `0.14.7` |\n| [werkzeug[watchdog]](https://github.com/pallets/werkzeug) | `3.1.3` | `3.1.4` |\n\n\nUpdates `celery` from 5.5.3 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/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.0\u003c/h2\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003ch2\u003eKey Highlights\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.celeryq.dev/en/stable/history/whatsnew-5.6.html\"\u003eWhat's new in Celery 5.6\u003c/a\u003e for a complete overview or read the main highlights below.\u003c/p\u003e\n\u003ch3\u003ePython 3.9 Minimum Version\u003c/h3\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python version is now 3.9. Users still on Python 3.8 must upgrade their Python version before upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS users.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9620\"\u003ecelery/celery#9620\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h3\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged in plaintext by the delayed delivery mechanism. Broker credentials are now properly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/giancarloromeo\"\u003e\u003ccode\u003e@​giancarloromeo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9997\"\u003ecelery/celery#9997\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eMemory Leak Fixes\u003c/h3\u003e\n\u003cp\u003eTwo significant memory leaks have been fixed in this release:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eException Handling Memory Leak\u003c/strong\u003e: Fixed a critical memory leak in task exception handling that was particularly severe on Python 3.11+ due to enhanced traceback data. The fix properly breaks reference cycles in tracebacks to allow garbage collection.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/jaiganeshs21\"\u003e\u003ccode\u003e@​jaiganeshs21\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9799\"\u003ecelery/celery#9799\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003ePending Result Memory Leak\u003c/strong\u003e: Fixed a memory leak where \u003ccode\u003eAsyncResult\u003c/code\u003e subscriptions were not being cleaned up when results were forgotten.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/tsoos99dev\"\u003e\u003ccode\u003e@​tsoos99dev\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9806\"\u003ecelery/celery#9806\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eETA Task Memory Limit\u003c/h3\u003e\n\u003cp\u003eNew configuration option \u003ccode\u003eworker_eta_task_limit\u003c/code\u003e to prevent out-of-memory crashes when workers fetch large numbers of ETA or countdown tasks. Previously, workers could exhaust available memory when the broker contained many scheduled tasks.\u003c/p\u003e\n\u003cp\u003eExample usage:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003eapp.conf.worker_eta_task_limit = 1000\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eContributed by \u003ca href=\"https://github.com/sashu2310\"\u003e\u003ccode\u003e@​sashu2310\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9853\"\u003ecelery/celery#9853\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eQueue Type Selection for Auto-created Queues\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/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-11-30\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eCelery v5.6.0 is now available.\u003c/p\u003e\n\u003cp\u003eKey Highlights\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nSee :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.\n\u003ch2\u003ePython 3.9 Minimum Version\u003c/h2\u003e\n\u003cp\u003eCelery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python\nversion is now 3.9. Users still on Python 3.8 must upgrade their Python version\nbefore upgrading to Celery 5.6.0.\u003c/p\u003e\n\u003cp\u003eAdditionally, this release includes initial support for Python 3.14.\u003c/p\u003e\n\u003ch2\u003eSQS: Reverted to \u003ccode\u003epycurl\u003c/code\u003e from \u003ccode\u003eurllib3\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eThe switch from \u003ccode\u003epycurl\u003c/code\u003e to \u003ccode\u003eurllib3\u003c/code\u003e for the SQS transport (introduced in\nCelery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS\nusers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eProcessing throughput dropped from ~100 tasks/sec to ~3/sec in some environments\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eUnknownOperationException\u003c/code\u003e errors causing container crash loops\u003c/li\u003e\n\u003cli\u003eSilent message processing failures with no error logs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eUsers of the SQS transport must ensure \u003ccode\u003epycurl\u003c/code\u003e is installed. If you removed\n\u003ccode\u003epycurl\u003c/code\u003e after upgrading to Celery 5.5.0, you will need to reinstall it.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@auvipy \u0026amp;lt;https://github.com/auvipy\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9620](https://github.com/celery/celery/issues/9620) \u0026amp;lt;https://github.com/celery/celery/pull/9620\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003ch2\u003eSecurity Fix: Broker Credential Leak Prevention\u003c/h2\u003e\n\u003cp\u003eFixed a security issue where broker URLs containing passwords were being logged\nin plaintext by the delayed delivery mechanism. Broker credentials are now\nproperly sanitized in all log output.\u003c/p\u003e\n\u003cp\u003eContributed by \u003ccode\u003e@giancarloromeo \u0026amp;lt;https://github.com/giancarloromeo\u0026amp;gt;\u003c/code\u003e_ in\n\u003ccode\u003e[#9997](https://github.com/celery/celery/issues/9997) \u0026amp;lt;https://github.com/celery/celery/pull/9997\u0026amp;gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003eMemory Leak Fixes\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\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/celery/celery/commit/cca11164860a1bee6ad8626c27a683b482f741eb\"\u003e\u003ccode\u003ecca1116\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10010\"\u003e#10010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/1133f22181bb22223d39c0060973695c6af55643\"\u003e\u003ccode\u003e1133f22\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.14.1 to 1.19.0 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10008\"\u003e#10008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0932d2c06e001903b90638f7c40a14f5407c9801\"\u003e\u003ccode\u003e0932d2c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10007\"\u003e#10007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/b446910f18860531b089d6c39f974265cc24a589\"\u003e\u003ccode\u003eb446910\u003c/code\u003e\u003c/a\u003e Prepare for (pre) release: v5.6.0rc2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10005\"\u003e#10005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/3f0f0fe7ea6a67a696d0a750644b552559ae368e\"\u003e\u003ccode\u003e3f0f0fe\u003c/code\u003e\u003c/a\u003e asynpool: Don't return from inside a finally block (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10000\"\u003e#10000\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/95d05527c0e1fff5c1a38877ba87592983a7f993\"\u003e\u003ccode\u003e95d0552\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 5 to 6 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10003\"\u003e#10003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f32b92f0e481601e9cc9f1212a4feced3f48e1a0\"\u003e\u003ccode\u003ef32b92f\u003c/code\u003e\u003c/a\u003e Add Py39-314t to CI (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9999\"\u003e#9999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/63c1910221d9fb8c1931ff62c80c4c37232b2d58\"\u003e\u003ccode\u003e63c1910\u003c/code\u003e\u003c/a\u003e Don't fail task on timeout during cold shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9678\"\u003e#9678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/30649dbd41308fc8eef79b2aae179a908eaa7a51\"\u003e\u003ccode\u003e30649db\u003c/code\u003e\u003c/a\u003e Fix log leaking broker credentials (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9997\"\u003e#9997\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/929412e2d4d328e337be3f177ca99fff10ab9bdc\"\u003e\u003ccode\u003e929412e\u003c/code\u003e\u003c/a\u003e Remove Python 4.0 version condition for pytest dependencies (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9993\"\u003e#9993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.5.3...v5.6.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.8 to 5.2.9\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/c14b756185c88f7f2eb745ff061f3c221fea9de7\"\u003e\u003ccode\u003ec14b756\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.9 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/99e7d22f55497278d0bcb2e15e72ef532e62a31d\"\u003e\u003ccode\u003e99e7d22\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-64460 -- Corrected quadratic inner text accumulation i...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/479415ce5249bcdebeb6570c72df2a87f45a7bbf\"\u003e\u003ccode\u003e479415c\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-13372 -- Protected FilteredRelation against SQL inject...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/da1dfe64c821ba03ca7b0c936184cca1ad641316\"\u003e\u003ccode\u003eda1dfe6\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36712\"\u003e#36712\u003c/a\u003e -- Evaluated type annotations lazily in template tag reg...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/e2ddec431395330b423ef193548f374b5c2f395e\"\u003e\u003ccode\u003ee2ddec4\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/36743\"\u003e#36743\u003c/a\u003e -- Corrected docstring for DisallowedRedirect.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/b83ee616c683c5a5879a176a2bbb84cb715a92d5\"\u003e\u003ccode\u003eb83ee61\u003c/code\u003e\u003c/a\u003e [5.2.x] Closed temporary files in OverwritingStorageTests.test_save_overwrite...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/645dc99ab472b9152ccc483d7bbf4eca090da253\"\u003e\u003ccode\u003e645dc99\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35535\"\u003e#35535\u003c/a\u003e -- Used intended decorator in test_simple_block_tag_paren...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/85586052e8d1d9f160b9f1b351e61a787a8e4bed\"\u003e\u003ccode\u003e8558605\u003c/code\u003e\u003c/a\u003e [5.2.x] Added link to Python Pickle documentation in docs/topics/cache.txt.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/de1dc3a87427475590d8efe10f3f627397524fca\"\u003e\u003ccode\u003ede1dc3a\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed outdated redis-py link in cache docs.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ee92d41f562a229ae6c0e6f625d34e7e9ffdc0bb\"\u003e\u003ccode\u003eee92d41\u003c/code\u003e\u003c/a\u003e [5.2.x] Highlighted community package upgrade utilities in docs/howto/upgrade...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.2.8...5.2.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-allauth[mfa]` from 65.13.0 to 65.13.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sponsors/pennersr/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg[c]` from 3.2.12 to 3.3.1\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[c]'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\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003ePsycopg 3.3.1\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eFix iteration on server-side cursors (:ticket:\u003ccode\u003e[#1226](https://github.com/psycopg/psycopg/issues/1226)\u003c/code\u003e).\u003c/p\u003e\n\u003ch2\u003ePsycopg 3.3.0\u003c/h2\u003e\n\u003cp\u003e.. rubric:: New top-level features\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd :ref:\u003ccode\u003etemplate strings queries \\\u0026lt;template-strings\u0026gt;\u003c/code\u003e (:ticket:\u003ccode\u003e[#1054](https://github.com/psycopg/psycopg/issues/1054)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eMore flexible :ref:\u003ccode\u003ecomposite adaptation\u0026lt;adapt-composite\u0026gt;\u003c/code\u003e: it is now possible\nto adapt Python objects to PostgreSQL composites and back even if they are not\nsequences or if they take keyword arguments (:ticket:\u003ccode\u003e[#932](https://github.com/psycopg/psycopg/issues/932)\u003c/code\u003e, :ticket:\u003ccode\u003e[#1202](https://github.com/psycopg/psycopg/issues/1202)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eCursors are now iterators_, not just iterables_. This means you can call\n\u003ccode\u003enext\u003c/code\u003e\\ \u003ccode\u003e(cur)\u003c/code\u003e or \u003ccode\u003eanext\u003c/code\u003e\\ \u003ccode\u003e(cur)\u003c/code\u003e, which is useful as a :ref:\u003ccode\u003etype-safe expression \u0026lt;typing-fetchone\u0026gt;\u003c/code\u003e (:ticket:\u003ccode\u003e[#1064](https://github.com/psycopg/psycopg/issues/1064)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eCursor.set_result()\u003c/code\u003e and \u003ccode\u003eCursor.results()\u003c/code\u003e to move across the result\nsets of queries executed though \u003ccode\u003e~Cursor.executemany()\u003c/code\u003e or\n\u003ccode\u003e~Cursor.execute()\u003c/code\u003e with multiple statements (:tickets:\u003ccode\u003e[#1080](https://github.com/psycopg/psycopg/issues/1080), [#1170](https://github.com/psycopg/psycopg/issues/1170)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd :ref:\u003ccode\u003etransaction-status\u003c/code\u003e to report the status during and after a\n\u003ccode\u003e~Connection.transaction()\u003c/code\u003e block (:ticket:\u003ccode\u003e[#969](https://github.com/psycopg/psycopg/issues/969)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAllow to change loaders using \u003ccode\u003e~adapt.AdaptersMap.register_loader()\u003c/code\u003e on\n\u003ccode\u003eCursor.adapters\u003c/code\u003e after a query result has been already returned\n(:ticket:\u003ccode\u003e[#884](https://github.com/psycopg/psycopg/issues/884)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. rubric:: New libpq wrapper features\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epq.PGconn.used_gssapi\u003c/code\u003e attribute and \u003ccode\u003eCapabilities.has_used_gssapi()\u003c/code\u003e\nfunction (:ticket:\u003ccode\u003e[#1138](https://github.com/psycopg/psycopg/issues/1138)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eConnectionInfo.full_protocol_version\u003c/code\u003e attribute,\n\u003ccode\u003eCapabilities.has_full_protocol_version()\u003c/code\u003e function (:ticket:\u003ccode\u003e[#1079](https://github.com/psycopg/psycopg/issues/1079)\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. rubric:: Other changes\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDisable default GSSAPI preferential connection in the binary package\n(:ticket:\u003ccode\u003e[#1136](https://github.com/psycopg/psycopg/issues/1136)\u003c/code\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/psycopg/psycopg/commit/9bdd78cf4360b9229ab3f641c646e232fc69cc8a\"\u003e\u003ccode\u003e9bdd78c\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/4d27426bf197a1eca8ea99ab9e236e1c8e0f15fa\"\u003e\u003ccode\u003e4d27426\u003c/code\u003e\u003c/a\u003e Merge branch 'fix/server-cursor-iter'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/b9b82e86e3ce1972581a495ccbe28d5dbb15c449\"\u003e\u003ccode\u003eb9b82e8\u003c/code\u003e\u003c/a\u003e fix: fix iteration on server-side cursor\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/2a75357de22bb63ede33006cd17c99b30e360cdf\"\u003e\u003ccode\u003e2a75357\u003c/code\u003e\u003c/a\u003e fix: add test to verify iteration in server-side cursor broken\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/25ebaa3946bc0912e645dbf4d490a29865a2fc3f\"\u003e\u003ccode\u003e25ebaa3\u003c/code\u003e\u003c/a\u003e chore: bump psycopg_pool package version to 3.3.1.dev1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/754282246e04c7ea32643de763fabd7fca7169d4\"\u003e\u003ccode\u003e7542822\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.1.dev1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/380ccceb57ef44452a4c3e851e5e6dee09eb9eaf\"\u003e\u003ccode\u003e380ccce\u003c/code\u003e\u003c/a\u003e chore: bump psycopg_pool package version to 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/2322a9a9d445da6cd049683e91f2df3702357182\"\u003e\u003ccode\u003e2322a9a\u003c/code\u003e\u003c/a\u003e chore: bump psycopg package version to 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/6e3b32a7adb8d99297d4904b0ed57390bf057d51\"\u003e\u003ccode\u003e6e3b32a\u003c/code\u003e\u003c/a\u003e fix: mark new register_composite() args as keyword only\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg/commit/1accac9a7c185c2f3f84720deec41908346cc04f\"\u003e\u003ccode\u003e1accac9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg/issues/1222\"\u003e#1222\u003c/a\u003e from dvarrazzo/fix/composite-adapt-info\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg/compare/3.2.12...3.3.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.0.1 to 7.1.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.1.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdding MSETEX command support. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3823\"\u003e#3823\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding CLAIM option to XREADGROUP command + unit tests (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3825\"\u003e#3825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eApply routing and response aggregation policies in OSS Cluster mode (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3834\"\u003e#3834\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdding support for CAS/CAD commands. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3837\"\u003e#3837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding support for HYBRID search. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3813\"\u003e#3813\u003c/a\u003e \u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3843\"\u003e#3843\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔥 Breaking changes (in experimental features)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace default health check and failure detector with custom (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3822\"\u003e#3822\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd **options to parse functions for sentinel (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3831\"\u003e#3831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenerating unique command cache key (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3765\"\u003e#3765\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdding Redis 8.4 RC1 image to test matrix. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3820\"\u003e#3820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove Python 3.9 support. Add Python 3.14 support. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3814\"\u003e#3814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSync readme with 7.0.1 and update lib version to latest stable released version - 7.0.1 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3821\"\u003e#3821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump rojopolis/spellcheck-github-actions from 0.52.0 to 0.53.0 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3827\"\u003e#3827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3828\"\u003e#3828\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump github/codeql-action from 3 to 4 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing flaky tests (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3833\"\u003e#3833\u003c/a\u003e \u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate 8.4 RC image tag to 8.4-RC1-pre.2 for pipeline test matrix (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3832\"\u003e#3832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd missing f-string when returning an error. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3841\"\u003e#3841\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding latest 8.4 image to test matrix. Updating the Hybrid VSIM query format to be in sync with spec after srv issue was fixed. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3843\"\u003e#3843\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand cluster READ_COMMANDS with additional read-only commands and reorganize the list of commands by category (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3845\"\u003e#3845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Type Hints for List Command Parameters from str to KeyT (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3848\"\u003e#3848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanging log level to be debug for failed maintenance notification enablement when enabled='auto' (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3851\"\u003e#3851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded custom event handler section (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanging current version to 8.4 as it is already GA (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3854\"\u003e#3854\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/ShubhamKaudewar\"\u003e\u003ccode\u003e@​ShubhamKaudewar\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/matthewwiese\"\u003e\u003ccode\u003e@​matthewwiese\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/peperon\"\u003e\u003ccode\u003e@​peperon\u003c/code\u003e\u003c/a\u003e \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/f7c1755d732a677e0eb05e74e46520115c087153\"\u003e\u003ccode\u003ef7c1755\u003c/code\u003e\u003c/a\u003e Changing current version to 8.4 as it is already GA (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3854\"\u003e#3854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/2235cc76d59a009d546e773d959261503ec3568e\"\u003e\u003ccode\u003e2235cc7\u003c/code\u003e\u003c/a\u003e Added custom event handler section (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/8cc50a5bc9cb972354e17fd9cd8b8542a6f1e4f5\"\u003e\u003ccode\u003e8cc50a5\u003c/code\u003e\u003c/a\u003e Changing log level to be debug for failed maintenance notification enablement...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/d1769a2e2b66c7cd0067358db10db1cc26b2967a\"\u003e\u003ccode\u003ed1769a2\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3612\"\u003e#3612\u003c/a\u003e Generating unique command cache key (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3765\"\u003e#3765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/b49dce1ff0f38c38a5fb89b3f332e84eae8186cb\"\u003e\u003ccode\u003eb49dce1\u003c/code\u003e\u003c/a\u003e Update Type Hints for List Command Parameters from str to KeyT (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3848\"\u003e#3848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/46ff0426550d65e51c7686fa0e12e8954d5d1bcd\"\u003e\u003ccode\u003e46ff042\u003c/code\u003e\u003c/a\u003e Expand cluster READ_COMMANDS with additional read-only commands and reorganiz...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/dc476754600e480dd29a16a2290db5a442114b33\"\u003e\u003ccode\u003edc47675\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.1.0 and added note in README that Python 3.9 suppor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/f026c1e66be68dc18d89e60bd54c5032bd927680\"\u003e\u003ccode\u003ef026c1e\u003c/code\u003e\u003c/a\u003e Adding latest 8.4 image to test matrix. Updating the Hybrid VSIM query format...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/a5ab18fb76522cb1341c81e0032d29df87c85013\"\u003e\u003ccode\u003ea5ab18f\u003c/code\u003e\u003c/a\u003e Adding support for HYBRID search. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3813\"\u003e#3813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/e6fb50506967dbdd6e8c334190c32651ebea1506\"\u003e\u003ccode\u003ee6fb505\u003c/code\u003e\u003c/a\u003e Adding support for CAS/CAD commands. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3837\"\u003e#3837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v7.0.1...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-sdk` from 2.43.0 to 2.46.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-python/releases\"\u003esentry-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.46.0\u003c/h2\u003e\n\u003ch3\u003eVarious fixes \u0026amp; improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve metadata on wrapped coroutines (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5105\"\u003e#5105\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake imports defensive to avoid \u003ccode\u003eModuleNotFoundError\u003c/code\u003e in Pydantic AI integration (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5135\"\u003e#5135\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix OpenAI agents integration mistakenly enabling itself (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5132\"\u003e#5132\u003c/a\u003e) by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd instrumentation to embedding functions for various backends (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5120\"\u003e#5120\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove embeddings support for OpenAI (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5121\"\u003e#5121\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance input handling for embeddings in LiteLLM integration (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5127\"\u003e#5127\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpect exceptions when re-raised (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5125\"\u003e#5125\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003eMagicMock\u003c/code\u003e from mocked \u003ccode\u003eModelResponse\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5126\"\u003e#5126\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.45.0\u003c/h2\u003e\n\u003ch3\u003eVarious fixes \u0026amp; improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOTLPIntegration (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4877\"\u003e#4877\u003c/a\u003e) by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eEnable the new OTLP integration with the code snippet below, and your OpenTelemetry instrumentation will be automatically sent to Sentry's OTLP ingestion endpoint.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e  import sentry_sdk\n  from sentry_sdk.integrations.otlp import OTLPIntegration\n\u003cp\u003esentry_sdk.init(\u003cbr /\u003e\ndsn=\u0026quot;\u0026lt;your-dsn\u0026gt;\u0026quot;,\u003cbr /\u003e\n# Add data like inputs and responses;\u003cbr /\u003e\n# see \u003ca href=\"https://docs.sentry.io/platforms/python/data-management/data-collected/\"\u003ehttps://docs.sentry.io/platforms/python/data-management/data-collected/\u003c/a\u003e for more info\u003cbr /\u003e\nsend_default_pii=True,\u003cbr /\u003e\nintegrations=[\u003cbr /\u003e\nOTLPIntegration(),\u003cbr /\u003e\n],\u003cbr /\u003e\n)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eUnder the hood, this will setup:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA \u003ccode\u003eSpanExporter\u003c/code\u003e that will automatically set up the OTLP ingestion endpoint from your DSN\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003ePropagator\u003c/code\u003e that ensures Distributed Tracing works\u003c/li\u003e\n\u003cli\u003eTrace/Span linking for all other Sentry events such as Errors, Logs, Crons and Metrics\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you were using the \u003ccode\u003eSentrySpanProcessor\u003c/code\u003e before, we recommend migrating over to \u003ccode\u003eOTLPIntegration\u003c/code\u003e since it's a much simpler setup.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efeat(integrations): implement context management for invoke_agent spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5089\"\u003e#5089\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efeat(loguru): Capture extra (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5096\"\u003e#5096\u003c/a\u003e) by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efeat: Attach \u003ccode\u003eserver.address\u003c/code\u003e to metrics (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5113\"\u003e#5113\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix: Cast message and detail attributes before appending exception notes (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5114\"\u003e#5114\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix(integrations): ensure that GEN_AI_AGENT_NAME is properly set for GEN_AI spans under an invoke_agent span (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5030\"\u003e#5030\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix(logs): Update \u003ccode\u003esentry.origin\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5112\"\u003e#5112\u003c/a\u003e) by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003echore: Deprecate description truncation option for Redis spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5073\"\u003e#5073\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003echore: Deprecate \u003ccode\u003emax_spans\u003c/code\u003e LangChain parameter (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5074\"\u003e#5074\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003echore(toxgen): Check availability of pip and add detail to exceptions (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5076\"\u003e#5076\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md\"\u003esentry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.46.0\u003c/h2\u003e\n\u003ch3\u003eVarious fixes \u0026amp; improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve metadata on wrapped coroutines (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5105\"\u003e#5105\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake imports defensive to avoid \u003ccode\u003eModuleNotFoundError\u003c/code\u003e in Pydantic AI integration (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5135\"\u003e#5135\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix OpenAI agents integration mistakenly enabling itself (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5132\"\u003e#5132\u003c/a\u003e) by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd instrumentation to embedding functions for various backends (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5120\"\u003e#5120\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove embeddings support for OpenAI (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5121\"\u003e#5121\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance input handling for embeddings in LiteLLM integration (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5127\"\u003e#5127\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpect exceptions when re-raised (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5125\"\u003e#5125\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003eMagicMock\u003c/code\u003e from mocked \u003ccode\u003eModelResponse\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5126\"\u003e#5126\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.45.0\u003c/h2\u003e\n\u003ch3\u003eVarious fixes \u0026amp; improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOTLPIntegration (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4877\"\u003e#4877\u003c/a\u003e) by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eEnable the new OTLP integration with the code snippet below, and your OpenTelemetry instrumentation will be automatically sent to Sentry's OTLP ingestion endpoint.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e  import sentry_sdk\n  from sentry_sdk.integrations.otlp import OTLPIntegration\n\u003cp\u003esentry_sdk.init(\u003cbr /\u003e\ndsn=\u0026quot;\u0026lt;your-dsn\u0026gt;\u0026quot;,\u003cbr /\u003e\n# Add data like inputs and responses;\u003cbr /\u003e\n# see \u003ca href=\"https://docs.sentry.io/platforms/python/data-management/data-collected/\"\u003ehttps://docs.sentry.io/platforms/python/data-management/data-collected/\u003c/a\u003e for more info\u003cbr /\u003e\nsend_default_pii=True,\u003cbr /\u003e\nintegrations=[\u003cbr /\u003e\nOTLPIntegration(),\u003cbr /\u003e\n],\u003cbr /\u003e\n)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eUnder the hood, this will setup:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA \u003ccode\u003eSpanExporter\u003c/code\u003e that will automatically set up the OTLP ingestion endpoint from your DSN\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003ePropagator\u003c/code\u003e that ensures Distributed Tracing works\u003c/li\u003e\n\u003cli\u003eTrace/Span linking for all other Sentry events such as Errors, Logs, Crons and Metrics\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you were using the \u003ccode\u003eSentrySpanProcessor\u003c/code\u003e before, we recommend migrating over to \u003ccode\u003eOTLPIntegration\u003c/code\u003e since it's a much simpler setup.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efeat(integrations): implement context management for invoke_agent spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5089\"\u003e#5089\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efeat(loguru): Capture extra (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5096\"\u003e#5096\u003c/a\u003e) by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efeat: Attach \u003ccode\u003eserver.address\u003c/code\u003e to metrics (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5113\"\u003e#5113\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix: Cast message and detail attributes before appending exception notes (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5114\"\u003e#5114\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix(integrations): ensure that GEN_AI_AGENT_NAME is properly set for GEN_AI spans under an invoke_agent span (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5030\"\u003e#5030\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix(logs): Update \u003ccode\u003esentry.origin\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5112\"\u003e#5112\u003c/a\u003e) by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003echore: Deprecate description truncation option for Redis spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5073\"\u003e#5073\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\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/getsentry/sentry-python/commit/d3375bc37b08f0bb203689d77ea81fea6511eda4\"\u003e\u003ccode\u003ed3375bc\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/23abfe299675a32dc7354e72aee8890918659479\"\u003e\u003ccode\u003e23abfe2\u003c/code\u003e\u003c/a\u003e release: 2.46.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/ca19d6300f53178e77e77ded477a91338ad9be09\"\u003e\u003ccode\u003eca19d63\u003c/code\u003e\u003c/a\u003e feat: Preserve metadata on wrapped coroutines (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5105\"\u003e#5105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/cf165e332b765b5ce657e09388fae454c1e63e54\"\u003e\u003ccode\u003ecf165e3\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5136\"\u003e#5136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/b8d6a57d7861eb2420fc591083f70c2d0f477379\"\u003e\u003ccode\u003eb8d6a57\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/create-github-app-token from 2.1.4 to 2.2.0 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5137\"\u003e#5137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/c0c28b842d2ef3eb2e876bb40594ce8130b3bacd\"\u003e\u003ccode\u003ec0c28b8\u003c/code\u003e\u003c/a\u003e build(deps): bump supercharge/redis-github-action from 1.8.0 to 1.8.1 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5138\"\u003e#5138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/fb18c2164e054dfcf11c86b392c45a19a0630112\"\u003e\u003ccode\u003efb18c21\u003c/code\u003e\u003c/a\u003e fix(pydantic-ai): Make imports defensive to avoid \u003ccode\u003eModuleNotFoundError\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5135\"\u003e#5135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/f945e382eeef31ad68738a0b6aef80119484ffbc\"\u003e\u003ccode\u003ef945e38\u003c/code\u003e\u003c/a\u003e Fix openai-agents import (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5132\"\u003e#5132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/8596f894907c488925eb3e1b9eb07c3219eef65c\"\u003e\u003ccode\u003e8596f89\u003c/code\u003e\u003c/a\u003e fix(integrations): enhance input handling for embeddings in LiteLLM integrati...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/0e6e80888296e2c907b399b375639ec7f662a2f6\"\u003e\u003ccode\u003e0e6e808\u003c/code\u003e\u003c/a\u003e test(openai-agents): Remove \u003ccode\u003eMagicMock\u003c/code\u003e from mocked \u003ccode\u003eModelResponse\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5126\"\u003e#5126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-python/compare/2.43.0...2.46.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-import-export` from 4.1.1 to 4.3.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-import-export/django-import-export/releases\"\u003edjango-import-export's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/release_notes.html\"\u003eRelease notes\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003efix for issue in 4.3.0 when xlsx (openpyxl) dependencies are not installed.\u003c/p\u003e\n\u003ch2\u003e4.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/release_notes.html\"\u003eRelease notes\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIncludes \u003ccode\u003eimport\u003c/code\u003e / \u003ccode\u003eexport\u003c/code\u003e management commands.\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/django-import-export/django-import-export/blob/main/docs/changelog.rst\"\u003edjango-import-export's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.14 (2025-11-13)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Ukrainian translation (\u003ccode\u003e2132 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2132\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.13 (2025-10-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: file_name is None in before_import_row when \u003ccode\u003eskip_import_confirm=True\u003c/code\u003e (\u003ccode\u003e2129 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2129\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.12 (2025-10-19)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMinor documentation fix\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.11 (2025-10-19)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix for export not retaining URI query params (\u003ccode\u003e2097 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2097\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.10 (2025-09-26)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved field value extraction for dict-based querysets (\u003ccode\u003e2098 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2098\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003ePerformance improvements for membership checks (\u003ccode\u003e2090 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2090\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eFix ForeignKeyWidget export issue (\u003ccode\u003e2117 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2117\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eImproved documentation for \u003ccode\u003eclean()\u003c/code\u003e methods (\u003ccode\u003e2115 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2115\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eDocumentation updates: JSONField export with attribute syntax (\u003ccode\u003e2100 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2100\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eDocumentation updates: handling TooManyFieldsSent (\u003ccode\u003e2103 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2103\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eUpdated Turkish translation (\u003ccode\u003e2101 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2101\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eUpdated Czech translation (\u003ccode\u003e2111 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2111\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.9 (2025-07-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow specifying meta options in the :ref:\u003ccode\u003emodel_resourcefactory\u0026lt;using_modelresource_factory\u0026gt;\u003c/code\u003e (\u003ccode\u003e2078 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2078\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAllow custom fields and methods in :ref:\u003ccode\u003emodel_resourcefactory\u0026lt;using_modelresource_factory\u0026gt;\u003c/code\u003e (\u003ccode\u003e2081 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2081\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eFAQ update to describe how to customize Excel exports (\u003ccode\u003e2088 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2088\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.8 (2025-06-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eui: fix error display twice issue on export field select page  (\u003ccode\u003e2066 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2066\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eui: add 'select all' fields toggle on export page (\u003ccode\u003e2068 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2068\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdd Hebrew translation (\u003ccode\u003e2071 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2071\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eui: fix display of non field errors on import (\u003ccode\u003e2075 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2075\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.7 (2025-02-25)\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/django-import-export/django-import-export/commit/7422d0e388332adcdd965993d42621d742677f84\"\u003e\u003ccode\u003e7422d0e\u003c/code\u003e\u003c/a\u003e updated changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/060f178b91ffa9eb177f803b9ad2f74bda6fb59e\"\u003e\u003ccode\u003e060f178\u003c/code\u003e\u003c/a\u003e Add Ukrainian translation (\u003ca href=\"https://redirect.github.com/django-import-export/django-import-export/issues/2132\"\u003e#2132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/9cd201d21864e7119cab9eb1db6df61c13b550ef\"\u003e\u003ccode\u003e9cd201d\u003c/code\u003e\u003c/a\u003e Fix: file_name is None in before_import_row when skip_import_confirm=True (\u003ca href=\"https://redirect.github.com/django-import-export/django-import-export/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/80408075c7001ae8048ad05348ee37736a053fe0\"\u003e\u003ccode\u003e8040807\u003c/code\u003e\u003c/a\u003e corrected release docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/b533b7e8436e5c652ad0b9fe2df79ecc83215e41\"\u003e\u003ccode\u003eb533b7e\u003c/code\u003e\u003c/a\u003e Deprecation warning test fix (\u003ca href=\"https://redirect.github.com/django-import-export/django-import-export/issues/2126\"\u003e#2126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/3cc1be8292eb1940fec21950657455e733a0b8e5\"\u003e\u003ccode\u003e3cc1be8\u003c/code\u003e\u003c/a\u003e updated changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/3b1735315cdd1ac1dd165a8dd56575453999560a\"\u003e\u003ccode\u003e3b17353\u003c/code\u003e\u003c/a\u003e minor documentation fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/2ad9bf8807b53e7c6a62905e9b4efe883da129d4\"\u003e\u003ccode\u003e2ad9bf8\u003c/code\u003e\u003c/a\u003e corrected documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/6e89f0e16764324bda2c2c919c2a4108f3247802\"\u003e\u003ccode\u003e6e89f0e\u003c/code\u003e\u003c/a\u003e Fix retain query string params in export action (\u003ca href=\"https://redirect.github.com/django-import-export/django-import-export/issues/2121\"\u003e#2121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/15ecbb9dce07fd10d5116403e9ad45e23cf9f557\"\u003e\u003ccode\u003e15ecbb9\u003c/code\u003e\u003c/a\u003e release 4.3.10\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-import-export/django-import-export/compare/4.1.1...4.3.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-leaflet` from 0.30.1 to 0.33.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/makinacorpus/django-leaflet/blob/master/CHANGES\"\u003edjango-leaflet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.33.0 (unreleased)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.33.0 (2025-12-01)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCSP: Don't test nonce for truthiness before inclusion \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/393\"\u003e#393\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSolve broken marker image paths in the admin panel \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/392\"\u003e#392\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emap_width\u003c/code\u003e and \u003ccode\u003emap_height\u003c/code\u003e are no longer supported in LeafletWidget \u003ccode\u003eattrs\u003c/code\u003e,\nuse traditional CSS to dimension maps (you can target the class\n\u003ccode\u003e.leaflet-container-default\u003c/code\u003e for example.) \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/401\"\u003e#401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Django 6.0 and Python 3.14 (\u003ccode\u003e[#396](https://github.com/makinacorpus/django-leaflet/issues/396) \u0026lt;https://github.com/makinacorpus/django-leaflet/pull/396\u0026gt;\u003c/code\u003e__) (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/398\"\u003e#398\u003c/a\u003e) .\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ccode\u003e[#396](https://github.com/makinacorpus/django-leaflet/issues/396) \u0026lt;https://github.com/makinacorpus/django-leaflet/pull/396\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.32.0 (2025-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Django 5.2 and Python 3.13 (\u003ccode\u003e[#388](https://github.com/makinacorpus/django-leaflet/issues/388) \u0026lt;https://github.com/makinacorpus/django-leaflet/pull/388\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8 (\u003ccode\u003e[#388](https://github.com/makinacorpus/django-leaflet/issues/388) \u0026lt;https://github.com/makinacorpus/django-leaflet/pull/388\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003cli\u003eAvoid defining withForms globally \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/391\"\u003e#391\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.31.0 (2024-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix icon control.\u003c/li\u003e\n\u003cli\u003eFix JS error if with-forms does not exists \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/379\"\u003e#379\u003c/a\u003e \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/380\"\u003e#380\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Django 5.1.\u003c/li\u003e\n\u003cli\u003eDrop support for Django \u0026lt; 4.2.\u003c/li\u003e\n\u003cli\u003eAvoid defining imgPathElement globally \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/384\"\u003e#384\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove forms dependency on 'extras' \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/385\"\u003e#385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePass with_forms to leaflet_draw_i18n template \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/387\"\u003e#387\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/makinacorpus/django-leaflet/commit/7fd8cc8b97898a758ff7a54531f246e32f3b622c\"\u003e\u003ccode\u003e7fd8cc8\u003c/code\u003e\u003c/a\u003e 0.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/64dfa9f0d22314808f8e8952d02ec419b8344733\"\u003e\u003ccode\u003e64dfa9f\u003c/code\u003e\u003c/a\u003e Update supported Python and Django versions (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/8381b5c84917d99bafbdbaa17a1004c44b26a1a3\"\u003e\u003ccode\u003e8381b5c\u003c/code\u003e\u003c/a\u003e Fixed Django 6 support (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/404\"\u003e#404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/4c8ed44872ea004d44ee3729e9ff89f1046a19c0\"\u003e\u003ccode\u003e4c8ed44\u003c/code\u003e\u003c/a\u003e CustomEvent is widely available for many years (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/400\"\u003e#400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/0e9ef3d6ceb8266dda7508b722cf2e08ad018534\"\u003e\u003ccode\u003e0e9ef3d\u003c/code\u003e\u003c/a\u003e Replace setup.py by pyproject.toml (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/402\"\u003e#402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/fc89112cdef578c7126c23d06a06371533e871af\"\u003e\u003ccode\u003efc89112\u003c/code\u003e\u003c/a\u003e Remove map_height/map_width variables and inline CSS block (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/401\"\u003e#401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/d60da4498ca0fd9fcae6017744a8181b13180233\"\u003e\u003ccode\u003ed60da44\u003c/code\u003e\u003c/a\u003e window.addEventListener is available in major browsers since 2015 (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/399\"\u003e#399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/baf412b31b10ca1ccc0859d6962690cd8b5c4831\"\u003e\u003ccode\u003ebaf412b\u003c/code\u003e\u003c/a\u003e Add support for Django 6 (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/398\"\u003e#398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/32fadf5a5b629575945dba6b5eee48a5cb0ebe44\"\u003e\u003ccode\u003e32fadf5\u003c/code\u003e\u003c/a\u003e Allow running only one specific test with quicktest.py (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/397\"\u003e#397\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/7e909b0ceef943a3a858d5fd24e3cefccad7b155\"\u003e\u003ccode\u003e7e909b0\u003c/code\u003e\u003c/a\u003e Update CHANGES\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/makinacorpus/django-leaflet/compare/0.30.1...0.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djoser` 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/sunscrapers/djoser/releases\"\u003edjoser's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert change from 2.3.2 that was limiting the users to install Djoser only with Django version lower than 4. Incorrect bug ticket \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/866\"\u003esunscrapers/djoser#866\u003c/a\u003e and follow up regression \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/886\"\u003esunscrapers/djoser#886\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd Persian translations \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/pull/881\"\u003esunscrapers/djoser#881\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd Django 5.2 and Python 3.13 support \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/pull/882\"\u003esunscrapers/djoser#882\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eallow dynamic serializer configuration from settings in provider auth view \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/pull/832\"\u003esunscrapers/djoser#832\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix djoser automatically installing the latest django version, if possible \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/866\"\u003esunscrapers/djoser#866\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for Django 5.1.1 (mails serialization was failing) \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/842\"\u003esunscrapers/djoser#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove django-templated-mail from deps \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/846\"\u003esunscrapers/djoser#846\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ea potentially breaking change: fix vuln where users were given tokens if the given password was correct, but they haven't passed Django internal AUTHENTICATION_BACKENDS \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/795\"\u003esunscrapers/djoser#795\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/sunscrapers/djoser/blob/master/CHANGELOG.rst\"\u003edjoser's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e2.3.3\u003c/code\u003e_ (2025-07-13)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert change from 2.3.2 that was limiting the users to install Djoser only with Django version lower than 4. Incorrect bug ticket \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/866\"\u003esunscrapers/djoser#866\u003c/a\u003e and follow up regression \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/886\"\u003esunscrapers/djoser#886\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ccode\u003e2.3.2\u003c/code\u003e_ (2025-07-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd Persian translations \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/pull/881\"\u003esunscrapers/djoser#881\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd Django 5.2 and Python 3.13 support \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/pull/882\"\u003esunscrapers/djoser#882\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eallow dynamic serializer configuration from settings in provider auth view \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/pull/832\"\u003esunscrapers/djoser#832\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix djoser automatically installing the latest django version, if possible \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/866\"\u003esunscrapers/djoser#866\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ccode\u003e2.3.1\u003c/code\u003e_ (2024-11-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for Django 5.1.1 (mails serialization was failing) \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/842\"\u003esunscrapers/djoser#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove django-templated-mail from deps \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/846\"\u003esunscrapers/djoser#846\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ccode\u003e2.3.0\u003c/code\u003e_ (2024-11-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ea potentially breaking change: fix vuln where users were given tokens if the given password was correct, but they haven't passed Django internal AUTHENTICATION_BACKENDS \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/795\"\u003esunscrapers/djoser#795\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\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/sunscrapers/djoser/commit/62614b9830c50a2cc16781b95125b294df87fe0c\"\u003e\u003ccode\u003e62614b9\u003c/code\u003e\u003c/a\u003e bump version 2.3.3 (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/96a0a7a0b511fa07d9edb336150b8e000606a8be\"\u003e\u003ccode\u003e96a0a7a\u003c/code\u003e\u003c/a\u003e revert django pin change (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/887\"\u003e#887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/ef18f77b3fe14ef1c79bc681cb0177a8af83964e\"\u003e\u003ccode\u003eef18f77\u003c/code\u003e\u003c/a\u003e Bump version to 2.3.2 (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/884\"\u003e#884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/9aa1e8256d5183a725071c59ff823f840657f196\"\u003e\u003ccode\u003e9aa1e82\u003c/code\u003e\u003c/a\u003e Documentation updated for JWT authentication (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/861\"\u003e#861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/1e06b5b2ad1f7b34096bf5e0efb07100c9aab5c0\"\u003e\u003ccode\u003e1e06b5b\u003c/code\u003e\u003c/a\u003e Allow dynamic serializer configuration via settings (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/832\"\u003e#832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/ef680b67e6df8545fe3b960b9e42dc974860d194\"\u003e\u003ccode\u003eef680b6\u003c/code\u003e\u003c/a\u003e feat: Add Persian locale (fa, fa_IR) support (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/881\"\u003e#881\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/ce7e4f6388f692a2adffe78c603e41de40c5efbf\"\u003e\u003ccode\u003ece7e4f6\u003c/code\u003e\u003c/a\u003e feat: Add Django 5.2 and Python 3.13 support (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/882\"\u003e#882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/eeb4c719472f1582aadee28ebcccb99a37813c06\"\u003e\u003ccode\u003eeeb4c71\u003c/code\u003e\u003c/a\u003e Bump the dev-dependencies group with 3 updates (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/868\"\u003e#868\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/8c07cb1090eafc93de0093ae4db3097bd523ddef\"\u003e\u003ccode\u003e8c07cb1\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/867\"\u003e#867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/eceaa040ee077cd483dc9a599a1196bcebe1edc8\"\u003e\u003ccode\u003eeceaa04\u003c/code\u003e\u003c/a\u003e drop --upgrade from GHA to prevent auto upgrade pinned deps (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/869\"\u003e#869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sunscrapers/djoser/compare/2.2.3...2.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `social-auth-app-django` from 5.4.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/python-social-auth/social-app-django/releases\"\u003esocial-auth-app-django's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.6.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed possibly unsafe account association (\u003ca href=\"https://github.com/python-social-auth/social-app-django/security/advisories/GHSA-wv4w-6qv2-qqfg\"\u003eCVE-2025-61783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStorage now filters for active users, you might need to customize \u003ccode\u003eSOCIAL_AUTH_ACTIVE_USERS_FILTER\u003c/code\u003e if your custom model does not have the \u003ccode\u003eis_active\u003c/code\u003e field\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDjango 6.0 and Python 3.14 compatibility\u003c/li\u003e\n\u003cli\u003eType annotations\u003c/li\u003e\n\u003cli\u003eLoginRequiredMiddleware compatibility\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRAISE_EXCEPTIONS\u003c/code\u003e and \u003ccode\u003eLOGIN_ERROR_URL\u003c/code\u003e can be configured per backend\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 5.5.1\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed authentication with OpenID based services\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDonations\u003c/h3\u003e\n\u003cp\u003eThis project welcomes donations to make the development sustainable, you can fund Python Social Auth on the following platforms:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sponsors/python-social-auth/\"\u003eGitHub Sponsors\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://opencollective.com/python-social-auth\"\u003eOpen Collective\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 5.5.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for older Django versions.\u003c/li\u003e\n\u003cli\u003eAdded non-empty constraint on \u003ccode\u003euid\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdded support for session restore with stricter SameSite cookie policy.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDonations\u003c/h3\u003e\n\u003cp\u003eThis project welcomes donations to make the development sustainable, you can fund Python Social Auth on the following platforms:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sponsors/python-social-auth/\"\u003eGitHub Sponsors\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://opencollective.com/python-social-auth\"\u003eOpen Collective\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 5.4.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edeps: Update supported Python versions by \u003ca href=\"https://github.com/a-grealish\"\u003e\u003ccode\u003e@​a-grealish\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/621\"\u003epython-social-auth/social-app-django#621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed rollback of extra_data migration by \u003ca href=\"https://github.com/niklas-scholz\"\u003e\u003ccode\u003e@​niklas-scholz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/626\"\u003epython-social-auth/social-app-django#626\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eModernize the build by \u003ca href=\"https://github.com/offbyone\"\u003e\u003ccode\u003e@​offbyone\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/641\"\u003epython-social-auth/social-app-django#641\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(ci): test django main only on Python 3.12+ by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/647\"\u003epython-social-auth/social-app-django#647\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: test against Django 5.1 and 5.2 by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/656\"\u003epython-social-auth/social-app-django#656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove requirements files by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/657\"\u003epython-social-auth/social-app-django#657\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update tox envlist by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/658\"\u003epython-social-auth/social-app-django#658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Version bump 5.4.3 by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/659\"\u003epython-social-auth/social-app-django#659\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/python-social-auth/social-app-django/blob/master/CHANGELOG.md\"\u003esocial-auth-app-django's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/releases/tag/5.6.0\"\u003e5.6.0\u003c/a\u003e - 2025-10-09\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed possibly unsafe account association (\u003ca href=\"https://github.com/python-social-auth/social-app-django/security/advisories/GHSA-wv4w-6qv2-qqfg\"\u003eCVE-2025-61783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStorage now filters for active users, you might need to customize \u003ccode\u003eSOCIAL_AUTH_ACTIVE_USERS_FILTER\u003c/code\u003e if your custom model does not have the \u003ccode\u003eis_active\u003c/code\u003e field\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDjango 6.0 and Python 3.14 compatibility\u003c/li\u003e\n\u003cli\u003eType annotations\u003c/li\u003e\n\u003cli\u003eLoginRequiredMiddleware compatibility\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRAISE_EXCEPTIONS\u003c/code\u003e and \u003ccode\u003eLOGIN_ERROR_URL\u003c/code\u003e can be configured per backend\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/releases/tag/5.5.1\"\u003e5.5.1\u003c/a\u003e - 2025-06-27\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed authentication with OpenID based services\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/releases/...\n\n_Description has been truncated_","html_url":"https://github.com/solnxtech-star/Learnyx-backend/pull/39","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/solnxtech-star%2FLearnyx-backend/issues/39","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/39/packages"}},{"old_version":"8.1","new_version":"8.2","update_type":null,"path":null,"pr_created_at":"2025-11-20T12:37:45.000Z","version_change":"8.1 → 8.2","issue":{"uuid":"3647104793","node_id":"PR_kwDOQTbNN860lgbI","number":14,"state":"closed","title":"Bump the python group across 1 directory with 23 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-11-21T12:32:34.000Z","author_association":null,"state_reason":null,"created_at":"2025-11-20T12:37:45.000Z","updated_at":"2025-11-21T12:32:36.000Z","time_to_close":86089,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python","update_count":23,"packages":[{"name":"redis","old_version":"7.0.1","new_version":"7.1.0","repository_url":"https://github.com/redis/redis-py"},{"name":"sentry-sdk","old_version":"2.43.0","new_version":"2.45.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"django-import-export","old_version":"4.1.1","new_version":"4.3.14","repository_url":"https://github.com/django-import-export/django-import-export"},{"name":"django-leaflet","old_version":"0.30.1","new_version":"0.32.0","repository_url":"https://github.com/makinacorpus/django-leaflet"},{"name":"djoser","old_version":"2.2.3","new_version":"2.3.3","repository_url":"https://github.com/sunscrapers/djoser"},{"name":"social-auth-app-django","old_version":"5.4.2","new_version":"5.6.0","repository_url":"https://github.com/python-social-auth/social-app-django"},{"name":"channels","old_version":"4.1.0","new_version":"4.3.1"},{"name":"channels-redis","old_version":"4.2.0","new_version":"4.3.0","repository_url":"https://github.com/django/channels_redis"},{"name":"django-filter","old_version":"25.1","new_version":"25.2","repository_url":"https://github.com/carltongibson/django-filter"},{"name":"pycryptodome","old_version":"3.19.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"qrcode","old_version":"8.1","new_version":"8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"},{"name":"djangorestframework-gis","old_version":"1.0","new_version":"1.2.0","repository_url":"https://github.com/openwisp/django-rest-framework-gis"},{"name":"xhtml2pdf","old_version":"0.2.16","new_version":"0.2.17","repository_url":"https://github.com/xhtml2pdf/xhtml2pdf"},{"name":"exponent-server-sdk","old_version":"2.1.0","new_version":"2.2.0","repository_url":"https://github.com/expo/exponent-server-sdk-python"},{"name":"python-bidi","old_version":"0.4.2","new_version":"0.6.7","repository_url":"https://github.com/MeirKriheli/python-bidi"},{"name":"django-unfold","old_version":"0.33.0","new_version":"0.71.0","repository_url":"https://github.com/unfoldadmin/django-unfold"},{"name":"django-simple-history","old_version":"3.7.0","new_version":"3.10.1","repository_url":"https://github.com/django-commons/django-simple-history"},{"name":"reportlab","old_version":"4.0.9","new_version":"4.4.5"},{"name":"django-auto-prefetch","old_version":"1.9.0","new_version":"1.14.0","repository_url":"https://github.com/tolomea/django-auto-prefetch"},{"name":"coverage","old_version":"7.11.0","new_version":"7.12.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"factory-boy","old_version":"3.3.2","new_version":"3.3.3","repository_url":"https://github.com/FactoryBoy/factory_boy"},{"name":"pre-commit","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"ruff","old_version":"0.14.4","new_version":"0.14.5","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 23 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [redis](https://github.com/redis/redis-py) | `7.0.1` | `7.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.43.0` | `2.45.0` |\n| [django-import-export](https://github.com/django-import-export/django-import-export) | `4.1.1` | `4.3.14` |\n| [django-leaflet](https://github.com/makinacorpus/django-leaflet) | `0.30.1` | `0.32.0` |\n| [djoser](https://github.com/sunscrapers/djoser) | `2.2.3` | `2.3.3` |\n| [social-auth-app-django](https://github.com/python-social-auth/social-app-django) | `5.4.2` | `5.6.0` |\n| [channels[daphne]](https://github.com/django/channels) | `4.1.0` | `4.3.1` |\n| [channels-redis](https://github.com/django/channels_redis) | `4.2.0` | `4.3.0` |\n| [django-filter](https://github.com/carltongibson/django-filter) | `25.1` | `25.2` |\n| [pycryptodome](https://github.com/Legrandin/pycryptodome) | `3.19.0` | `3.23.0` |\n| [qrcode](https://github.com/lincolnloop/python-qrcode) | `8.1` | `8.2` |\n| [djangorestframework-gis](https://github.com/openwisp/django-rest-framework-gis) | `1.0` | `1.2.0` |\n| [xhtml2pdf](https://github.com/xhtml2pdf/xhtml2pdf) | `0.2.16` | `0.2.17` |\n| [exponent-server-sdk](https://github.com/expo/exponent-server-sdk-python) | `2.1.0` | `2.2.0` |\n| [python-bidi](https://github.com/MeirKriheli/python-bidi) | `0.4.2` | `0.6.7` |\n| [django-unfold](https://github.com/unfoldadmin/django-unfold) | `0.33.0` | `0.71.0` |\n| [django-simple-history](https://github.com/django-commons/django-simple-history) | `3.7.0` | `3.10.1` |\n| [reportlab](https://www.reportlab.com/) | `4.0.9` | `4.4.5` |\n| [django-auto-prefetch](https://github.com/tolomea/django-auto-prefetch) | `1.9.0` | `1.14.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.11.0` | `7.12.0` |\n| [factory-boy](https://github.com/FactoryBoy/factory_boy) | `3.3.2` | `3.3.3` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.3.0` | `4.4.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.4` | `0.14.5` |\n\n\nUpdates `redis` from 7.0.1 to 7.1.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.1.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdding MSETEX command support. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3823\"\u003e#3823\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding CLAIM option to XREADGROUP command + unit tests (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3825\"\u003e#3825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eApply routing and response aggregation policies in OSS Cluster mode (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3834\"\u003e#3834\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdding support for CAS/CAD commands. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3837\"\u003e#3837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding support for HYBRID search. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3813\"\u003e#3813\u003c/a\u003e \u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3843\"\u003e#3843\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🔥 Breaking changes (in experimental features)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace default health check and failure detector with custom (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3822\"\u003e#3822\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd **options to parse functions for sentinel (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3831\"\u003e#3831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenerating unique command cache key (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3765\"\u003e#3765\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdding Redis 8.4 RC1 image to test matrix. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3820\"\u003e#3820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove Python 3.9 support. Add Python 3.14 support. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3814\"\u003e#3814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSync readme with 7.0.1 and update lib version to latest stable released version - 7.0.1 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3821\"\u003e#3821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump rojopolis/spellcheck-github-actions from 0.52.0 to 0.53.0 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3827\"\u003e#3827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3828\"\u003e#3828\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump github/codeql-action from 3 to 4 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3829\"\u003e#3829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing flaky tests (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3833\"\u003e#3833\u003c/a\u003e \u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate 8.4 RC image tag to 8.4-RC1-pre.2 for pipeline test matrix (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3832\"\u003e#3832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd missing f-string when returning an error. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3841\"\u003e#3841\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdding latest 8.4 image to test matrix. Updating the Hybrid VSIM query format to be in sync with spec after srv issue was fixed. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3843\"\u003e#3843\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand cluster READ_COMMANDS with additional read-only commands and reorganize the list of commands by category (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3845\"\u003e#3845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Type Hints for List Command Parameters from str to KeyT (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3848\"\u003e#3848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanging log level to be debug for failed maintenance notification enablement when enabled='auto' (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3851\"\u003e#3851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded custom event handler section (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanging current version to 8.4 as it is already GA (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3854\"\u003e#3854\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/ShubhamKaudewar\"\u003e\u003ccode\u003e@​ShubhamKaudewar\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/matthewwiese\"\u003e\u003ccode\u003e@​matthewwiese\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/peperon\"\u003e\u003ccode\u003e@​peperon\u003c/code\u003e\u003c/a\u003e \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/f7c1755d732a677e0eb05e74e46520115c087153\"\u003e\u003ccode\u003ef7c1755\u003c/code\u003e\u003c/a\u003e Changing current version to 8.4 as it is already GA (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3854\"\u003e#3854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/2235cc76d59a009d546e773d959261503ec3568e\"\u003e\u003ccode\u003e2235cc7\u003c/code\u003e\u003c/a\u003e Added custom event handler section (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3853\"\u003e#3853\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/8cc50a5bc9cb972354e17fd9cd8b8542a6f1e4f5\"\u003e\u003ccode\u003e8cc50a5\u003c/code\u003e\u003c/a\u003e Changing log level to be debug for failed maintenance notification enablement...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/d1769a2e2b66c7cd0067358db10db1cc26b2967a\"\u003e\u003ccode\u003ed1769a2\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3612\"\u003e#3612\u003c/a\u003e Generating unique command cache key (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3765\"\u003e#3765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/b49dce1ff0f38c38a5fb89b3f332e84eae8186cb\"\u003e\u003ccode\u003eb49dce1\u003c/code\u003e\u003c/a\u003e Update Type Hints for List Command Parameters from str to KeyT (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3848\"\u003e#3848\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/46ff0426550d65e51c7686fa0e12e8954d5d1bcd\"\u003e\u003ccode\u003e46ff042\u003c/code\u003e\u003c/a\u003e Expand cluster READ_COMMANDS with additional read-only commands and reorganiz...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/dc476754600e480dd29a16a2290db5a442114b33\"\u003e\u003ccode\u003edc47675\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.1.0 and added note in README that Python 3.9 suppor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/f026c1e66be68dc18d89e60bd54c5032bd927680\"\u003e\u003ccode\u003ef026c1e\u003c/code\u003e\u003c/a\u003e Adding latest 8.4 image to test matrix. Updating the Hybrid VSIM query format...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/a5ab18fb76522cb1341c81e0032d29df87c85013\"\u003e\u003ccode\u003ea5ab18f\u003c/code\u003e\u003c/a\u003e Adding support for HYBRID search. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3813\"\u003e#3813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/e6fb50506967dbdd6e8c334190c32651ebea1506\"\u003e\u003ccode\u003ee6fb505\u003c/code\u003e\u003c/a\u003e Adding support for CAS/CAD commands. (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3837\"\u003e#3837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v7.0.1...v7.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-sdk` from 2.43.0 to 2.45.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-python/releases\"\u003esentry-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.45.0\u003c/h2\u003e\n\u003ch3\u003eVarious fixes \u0026amp; improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOTLPIntegration (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4877\"\u003e#4877\u003c/a\u003e) by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eEnable the new OTLP integration with the code snippet below, and your OpenTelemetry instrumentation will be automatically sent to Sentry's OTLP ingestion endpoint.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e  import sentry_sdk\n  from sentry_sdk.integrations.otlp import OTLPIntegration\n\u003cp\u003esentry_sdk.init(\u003cbr /\u003e\ndsn=\u0026quot;\u0026lt;your-dsn\u0026gt;\u0026quot;,\u003cbr /\u003e\n# Add data like inputs and responses;\u003cbr /\u003e\n# see \u003ca href=\"https://docs.sentry.io/platforms/python/data-management/data-collected/\"\u003ehttps://docs.sentry.io/platforms/python/data-management/data-collected/\u003c/a\u003e for more info\u003cbr /\u003e\nsend_default_pii=True,\u003cbr /\u003e\nintegrations=[\u003cbr /\u003e\nOTLPIntegration(),\u003cbr /\u003e\n],\u003cbr /\u003e\n)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eUnder the hood, this will setup:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA \u003ccode\u003eSpanExporter\u003c/code\u003e that will automatically set up the OTLP ingestion endpoint from your DSN\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003ePropagator\u003c/code\u003e that ensures Distributed Tracing works\u003c/li\u003e\n\u003cli\u003eTrace/Span linking for all other Sentry events such as Errors, Logs, Crons and Metrics\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you were using the \u003ccode\u003eSentrySpanProcessor\u003c/code\u003e before, we recommend migrating over to \u003ccode\u003eOTLPIntegration\u003c/code\u003e since it's a much simpler setup.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efeat(integrations): implement context management for invoke_agent spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5089\"\u003e#5089\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efeat(loguru): Capture extra (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5096\"\u003e#5096\u003c/a\u003e) by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efeat: Attach \u003ccode\u003eserver.address\u003c/code\u003e to metrics (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5113\"\u003e#5113\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix: Cast message and detail attributes before appending exception notes (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5114\"\u003e#5114\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix(integrations): ensure that GEN_AI_AGENT_NAME is properly set for GEN_AI spans under an invoke_agent span (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5030\"\u003e#5030\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix(logs): Update \u003ccode\u003esentry.origin\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5112\"\u003e#5112\u003c/a\u003e) by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003echore: Deprecate description truncation option for Redis spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5073\"\u003e#5073\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003echore: Deprecate \u003ccode\u003emax_spans\u003c/code\u003e LangChain parameter (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5074\"\u003e#5074\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003echore(toxgen): Check availability of pip and add detail to exceptions (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5076\"\u003e#5076\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003echore: add MCP SDK Pydantic AI and OpenAI Agents to the list of auto enabled integrations (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5111\"\u003e#5111\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003etest: add tests for either FastMCP implementation (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5075\"\u003e#5075\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix(ci): Re-enable skipped tests (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5104\"\u003e#5104\u003c/a\u003e) by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eci: 🤖 Update test matrix with new releases (11/17) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5110\"\u003e#5110\u003c/a\u003e) by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eci: Force coverage core ctrace for 3.14 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5108\"\u003e#5108\u003c/a\u003e) by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.44.0\u003c/h2\u003e\n\u003ch3\u003eVarious fixes \u0026amp; improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(openai): Check response text is present to avoid AttributeError (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5081\"\u003e#5081\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(pydantic-ai): Do not fail on new \u003ccode\u003eToolManager._call_tool()\u003c/code\u003e parameters (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5084\"\u003e#5084\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etests(huggingface): Avoid \u003ccode\u003eNone\u003c/code\u003e version (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5083\"\u003e#5083\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\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/getsentry/sentry-python/blob/master/CHANGELOG.md\"\u003esentry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.45.0\u003c/h2\u003e\n\u003ch3\u003eVarious fixes \u0026amp; improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eOTLPIntegration (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4877\"\u003e#4877\u003c/a\u003e) by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eEnable the new OTLP integration with the code snippet below, and your OpenTelemetry instrumentation will be automatically sent to Sentry's OTLP ingestion endpoint.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e  import sentry_sdk\n  from sentry_sdk.integrations.otlp import OTLPIntegration\n\u003cp\u003esentry_sdk.init(\u003cbr /\u003e\ndsn=\u0026quot;\u0026lt;your-dsn\u0026gt;\u0026quot;,\u003cbr /\u003e\n# Add data like inputs and responses;\u003cbr /\u003e\n# see \u003ca href=\"https://docs.sentry.io/platforms/python/data-management/data-collected/\"\u003ehttps://docs.sentry.io/platforms/python/data-management/data-collected/\u003c/a\u003e for more info\u003cbr /\u003e\nsend_default_pii=True,\u003cbr /\u003e\nintegrations=[\u003cbr /\u003e\nOTLPIntegration(),\u003cbr /\u003e\n],\u003cbr /\u003e\n)\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eUnder the hood, this will setup:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA \u003ccode\u003eSpanExporter\u003c/code\u003e that will automatically set up the OTLP ingestion endpoint from your DSN\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003ePropagator\u003c/code\u003e that ensures Distributed Tracing works\u003c/li\u003e\n\u003cli\u003eTrace/Span linking for all other Sentry events such as Errors, Logs, Crons and Metrics\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you were using the \u003ccode\u003eSentrySpanProcessor\u003c/code\u003e before, we recommend migrating over to \u003ccode\u003eOTLPIntegration\u003c/code\u003e since it's a much simpler setup.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efeat(integrations): implement context management for invoke_agent spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5089\"\u003e#5089\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efeat(loguru): Capture extra (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5096\"\u003e#5096\u003c/a\u003e) by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efeat: Attach \u003ccode\u003eserver.address\u003c/code\u003e to metrics (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5113\"\u003e#5113\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix: Cast message and detail attributes before appending exception notes (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5114\"\u003e#5114\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix(integrations): ensure that GEN_AI_AGENT_NAME is properly set for GEN_AI spans under an invoke_agent span (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5030\"\u003e#5030\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix(logs): Update \u003ccode\u003esentry.origin\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5112\"\u003e#5112\u003c/a\u003e) by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003echore: Deprecate description truncation option for Redis spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5073\"\u003e#5073\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003echore: Deprecate \u003ccode\u003emax_spans\u003c/code\u003e LangChain parameter (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5074\"\u003e#5074\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003echore(toxgen): Check availability of pip and add detail to exceptions (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5076\"\u003e#5076\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003echore: add MCP SDK Pydantic AI and OpenAI Agents to the list of auto enabled integrations (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5111\"\u003e#5111\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003etest: add tests for either FastMCP implementation (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5075\"\u003e#5075\u003c/a\u003e) by \u003ca href=\"https://github.com/constantinius\"\u003e\u003ccode\u003e@​constantinius\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix(ci): Re-enable skipped tests (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5104\"\u003e#5104\u003c/a\u003e) by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eci: 🤖 Update test matrix with new releases (11/17) (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5110\"\u003e#5110\u003c/a\u003e) by \u003ca href=\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eci: Force coverage core ctrace for 3.14 (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5108\"\u003e#5108\u003c/a\u003e) by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.44.0\u003c/h2\u003e\n\u003ch3\u003eVarious fixes \u0026amp; improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix(openai): Check response text is present to avoid AttributeError (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5081\"\u003e#5081\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\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/getsentry/sentry-python/commit/8adce74e8ce5edc983e01293e2e43c1e32a684fc\"\u003e\u003ccode\u003e8adce74\u003c/code\u003e\u003c/a\u003e Polish changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/a7b008e0a6a40b10717ebd81042dfd7d2325fbdd\"\u003e\u003ccode\u003ea7b008e\u003c/code\u003e\u003c/a\u003e release: 2.45.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/c68c3d6b5152b879bc107f76d9a9c78e95792235\"\u003e\u003ccode\u003ec68c3d6\u003c/code\u003e\u003c/a\u003e fix: Cast message and detail attributes before appending exception notes (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5114\"\u003e#5114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/14aff96f8a96b5ffc9003bcedab7993c2382c82a\"\u003e\u003ccode\u003e14aff96\u003c/code\u003e\u003c/a\u003e fix(integrations): ensure that GEN_AI_AGENT_NAME is properly set for GEN_AI s...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/f89d77b1e851701476cdac28e0bc0351f8ab4e0b\"\u003e\u003ccode\u003ef89d77b\u003c/code\u003e\u003c/a\u003e test: add tests for either FastMCP implementation (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5075\"\u003e#5075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/66be3d2450f1452b95c66080e3ae045b1ec79697\"\u003e\u003ccode\u003e66be3d2\u003c/code\u003e\u003c/a\u003e feat: Attach \u003ccode\u003eserver.address\u003c/code\u003e to metrics (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5113\"\u003e#5113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/c4071b3a09a9ac4cb57b8df075fa7b7c8b97a2d3\"\u003e\u003ccode\u003ec4071b3\u003c/code\u003e\u003c/a\u003e chore: Deprecate description truncation option for Redis spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5073\"\u003e#5073\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/25999b5df50329382cd1c4834e839ae2ed92c1b3\"\u003e\u003ccode\u003e25999b5\u003c/code\u003e\u003c/a\u003e chore: Deprecate \u003ccode\u003emax_spans\u003c/code\u003e LangChain parameter (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5074\"\u003e#5074\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/c4d0ba8b37dbe1b3a08f0c199b6201fd14ef6204\"\u003e\u003ccode\u003ec4d0ba8\u003c/code\u003e\u003c/a\u003e fix(logs): Update \u003ccode\u003esentry.origin\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5112\"\u003e#5112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/c6ad9ac6e5dbaf1aadc64617df1a6b1c813226d2\"\u003e\u003ccode\u003ec6ad9ac\u003c/code\u003e\u003c/a\u003e chore(toxgen): Check availability of pip and add detail to exceptions (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/5076\"\u003e#5076\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-python/compare/2.43.0...2.45.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-import-export` from 4.1.1 to 4.3.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-import-export/django-import-export/releases\"\u003edjango-import-export's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.14\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/release_notes.html\"\u003eRelease notes\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003efix for issue in 4.3.0 when xlsx (openpyxl) dependencies are not installed.\u003c/p\u003e\n\u003ch2\u003e4.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/changelog.html#id1\"\u003eChangelog\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://django-import-export.readthedocs.io/en/stable/release_notes.html\"\u003eRelease notes\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIncludes \u003ccode\u003eimport\u003c/code\u003e / \u003ccode\u003eexport\u003c/code\u003e management commands.\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/django-import-export/django-import-export/blob/main/docs/changelog.rst\"\u003edjango-import-export's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.14 (2025-11-13)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Ukrainian translation (\u003ccode\u003e2132 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2132\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.13 (2025-10-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: file_name is None in before_import_row when \u003ccode\u003eskip_import_confirm=True\u003c/code\u003e (\u003ccode\u003e2129 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2129\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.12 (2025-10-19)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMinor documentation fix\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.11 (2025-10-19)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix for export not retaining URI query params (\u003ccode\u003e2097 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2097\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.10 (2025-09-26)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved field value extraction for dict-based querysets (\u003ccode\u003e2098 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2098\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003ePerformance improvements for membership checks (\u003ccode\u003e2090 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2090\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eFix ForeignKeyWidget export issue (\u003ccode\u003e2117 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2117\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eImproved documentation for \u003ccode\u003eclean()\u003c/code\u003e methods (\u003ccode\u003e2115 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2115\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eDocumentation updates: JSONField export with attribute syntax (\u003ccode\u003e2100 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2100\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eDocumentation updates: handling TooManyFieldsSent (\u003ccode\u003e2103 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2103\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eUpdated Turkish translation (\u003ccode\u003e2101 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2101\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eUpdated Czech translation (\u003ccode\u003e2111 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2111\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.9 (2025-07-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow specifying meta options in the :ref:\u003ccode\u003emodel_resourcefactory\u0026lt;using_modelresource_factory\u0026gt;\u003c/code\u003e (\u003ccode\u003e2078 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2078\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAllow custom fields and methods in :ref:\u003ccode\u003emodel_resourcefactory\u0026lt;using_modelresource_factory\u0026gt;\u003c/code\u003e (\u003ccode\u003e2081 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2081\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eFAQ update to describe how to customize Excel exports (\u003ccode\u003e2088 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2088\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.8 (2025-06-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eui: fix error display twice issue on export field select page  (\u003ccode\u003e2066 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2066\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eui: add 'select all' fields toggle on export page (\u003ccode\u003e2068 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2068\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eAdd Hebrew translation (\u003ccode\u003e2071 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2071\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003cli\u003eui: fix display of non field errors on import (\u003ccode\u003e2075 \u0026lt;https://github.com/django-import-export/django-import-export/pull/2075\u0026gt;\u003c/code\u003e_)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.7 (2025-02-25)\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/django-import-export/django-import-export/commit/7422d0e388332adcdd965993d42621d742677f84\"\u003e\u003ccode\u003e7422d0e\u003c/code\u003e\u003c/a\u003e updated changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/060f178b91ffa9eb177f803b9ad2f74bda6fb59e\"\u003e\u003ccode\u003e060f178\u003c/code\u003e\u003c/a\u003e Add Ukrainian translation (\u003ca href=\"https://redirect.github.com/django-import-export/django-import-export/issues/2132\"\u003e#2132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/9cd201d21864e7119cab9eb1db6df61c13b550ef\"\u003e\u003ccode\u003e9cd201d\u003c/code\u003e\u003c/a\u003e Fix: file_name is None in before_import_row when skip_import_confirm=True (\u003ca href=\"https://redirect.github.com/django-import-export/django-import-export/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/80408075c7001ae8048ad05348ee37736a053fe0\"\u003e\u003ccode\u003e8040807\u003c/code\u003e\u003c/a\u003e corrected release docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/b533b7e8436e5c652ad0b9fe2df79ecc83215e41\"\u003e\u003ccode\u003eb533b7e\u003c/code\u003e\u003c/a\u003e Deprecation warning test fix (\u003ca href=\"https://redirect.github.com/django-import-export/django-import-export/issues/2126\"\u003e#2126\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/3cc1be8292eb1940fec21950657455e733a0b8e5\"\u003e\u003ccode\u003e3cc1be8\u003c/code\u003e\u003c/a\u003e updated changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/3b1735315cdd1ac1dd165a8dd56575453999560a\"\u003e\u003ccode\u003e3b17353\u003c/code\u003e\u003c/a\u003e minor documentation fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/2ad9bf8807b53e7c6a62905e9b4efe883da129d4\"\u003e\u003ccode\u003e2ad9bf8\u003c/code\u003e\u003c/a\u003e corrected documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/6e89f0e16764324bda2c2c919c2a4108f3247802\"\u003e\u003ccode\u003e6e89f0e\u003c/code\u003e\u003c/a\u003e Fix retain query string params in export action (\u003ca href=\"https://redirect.github.com/django-import-export/django-import-export/issues/2121\"\u003e#2121\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-import-export/django-import-export/commit/15ecbb9dce07fd10d5116403e9ad45e23cf9f557\"\u003e\u003ccode\u003e15ecbb9\u003c/code\u003e\u003c/a\u003e release 4.3.10\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django-import-export/django-import-export/compare/4.1.1...4.3.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-leaflet` from 0.30.1 to 0.32.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/makinacorpus/django-leaflet/blob/master/CHANGES\"\u003edjango-leaflet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.32.0 (2025-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Django 5.2 and Python 3.13 (\u003ccode\u003e[#388](https://github.com/makinacorpus/django-leaflet/issues/388) \u0026lt;https://github.com/makinacorpus/django-leaflet/pull/388\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8 (\u003ccode\u003e[#388](https://github.com/makinacorpus/django-leaflet/issues/388) \u0026lt;https://github.com/makinacorpus/django-leaflet/pull/388\u0026gt;\u003c/code\u003e__).\u003c/li\u003e\n\u003cli\u003eAvoid defining withForms globally \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/391\"\u003e#391\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.31.0 (2024-10-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix icon control.\u003c/li\u003e\n\u003cli\u003eFix JS error if with-forms does not exists \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/379\"\u003e#379\u003c/a\u003e \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/380\"\u003e#380\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Django 5.1.\u003c/li\u003e\n\u003cli\u003eDrop support for Django \u0026lt; 4.2.\u003c/li\u003e\n\u003cli\u003eAvoid defining imgPathElement globally \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/384\"\u003e#384\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove forms dependency on 'extras' \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/385\"\u003e#385\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePass with_forms to leaflet_draw_i18n template \u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/387\"\u003e#387\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/makinacorpus/django-leaflet/commit/c3a2fd266455a907b6d3b90a6c258defbeed0a50\"\u003e\u003ccode\u003ec3a2fd2\u003c/code\u003e\u003c/a\u003e 0.32.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/c89e0c5f68c5ba25bc5aa9f0259e6df1619d9fcc\"\u003e\u003ccode\u003ec89e0c5\u003c/code\u003e\u003c/a\u003e Update CHANGES\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/a3996308b1b281b3d33eb4f2417ce30be12bebd6\"\u003e\u003ccode\u003ea399630\u003c/code\u003e\u003c/a\u003e Avoid defining withForms globally (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/edbe0f887a6c7bbff17a2537a83e54837a4e3fd8\"\u003e\u003ccode\u003eedbe0f8\u003c/code\u003e\u003c/a\u003e Support Django 5.2 and Python 3.13, drop Python 3.8 (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/388\"\u003e#388\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/f51ce8e60ef61acf5675f831e07dbd900e0c4f06\"\u003e\u003ccode\u003ef51ce8e\u003c/code\u003e\u003c/a\u003e back to dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/433fc04bc054e2f4daf413c3780710787a9e5cbb\"\u003e\u003ccode\u003e433fc04\u003c/code\u003e\u003c/a\u003e 0.31.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/0c13b9d4434ea845e07acebfa197c05e334aa98a\"\u003e\u003ccode\u003e0c13b9d\u003c/code\u003e\u003c/a\u003e Pass with_forms to leaflet_draw_i18n template (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/8efe27533421dec2c0401bcce849fbbb37e39489\"\u003e\u003ccode\u003e8efe275\u003c/code\u003e\u003c/a\u003e Remove forms dependency on 'extras' (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/385\"\u003e#385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/08422bb9dbde5285dfe35b5e2fffcf7e7787207a\"\u003e\u003ccode\u003e08422bb\u003c/code\u003e\u003c/a\u003e Avoid defining imgPathElement globally (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/makinacorpus/django-leaflet/commit/347f9021ae25e071bacb2166d592a7190086ca1a\"\u003e\u003ccode\u003e347f902\u003c/code\u003e\u003c/a\u003e Drop support for Django \u0026lt; 4.2 (\u003ca href=\"https://redirect.github.com/makinacorpus/django-leaflet/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/makinacorpus/django-leaflet/compare/0.30.1...0.32.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djoser` 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/sunscrapers/djoser/releases\"\u003edjoser's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.3.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert change from 2.3.2 that was limiting the users to install Djoser only with Django version lower than 4. Incorrect bug ticket \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/866\"\u003esunscrapers/djoser#866\u003c/a\u003e and follow up regression \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/886\"\u003esunscrapers/djoser#886\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd Persian translations \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/pull/881\"\u003esunscrapers/djoser#881\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd Django 5.2 and Python 3.13 support \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/pull/882\"\u003esunscrapers/djoser#882\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eallow dynamic serializer configuration from settings in provider auth view \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/pull/832\"\u003esunscrapers/djoser#832\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix djoser automatically installing the latest django version, if possible \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/866\"\u003esunscrapers/djoser#866\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for Django 5.1.1 (mails serialization was failing) \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/842\"\u003esunscrapers/djoser#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove django-templated-mail from deps \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/846\"\u003esunscrapers/djoser#846\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ea potentially breaking change: fix vuln where users were given tokens if the given password was correct, but they haven't passed Django internal AUTHENTICATION_BACKENDS \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/795\"\u003esunscrapers/djoser#795\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/sunscrapers/djoser/blob/master/CHANGELOG.rst\"\u003edjoser's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003e2.3.3\u003c/code\u003e_ (2025-07-13)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003erevert change from 2.3.2 that was limiting the users to install Djoser only with Django version lower than 4. Incorrect bug ticket \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/866\"\u003esunscrapers/djoser#866\u003c/a\u003e and follow up regression \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/886\"\u003esunscrapers/djoser#886\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ccode\u003e2.3.2\u003c/code\u003e_ (2025-07-12)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd Persian translations \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/pull/881\"\u003esunscrapers/djoser#881\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd Django 5.2 and Python 3.13 support \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/pull/882\"\u003esunscrapers/djoser#882\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eallow dynamic serializer configuration from settings in provider auth view \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/pull/832\"\u003esunscrapers/djoser#832\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix djoser automatically installing the latest django version, if possible \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/866\"\u003esunscrapers/djoser#866\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ccode\u003e2.3.1\u003c/code\u003e_ (2024-11-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd support for Django 5.1.1 (mails serialization was failing) \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/842\"\u003esunscrapers/djoser#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove django-templated-mail from deps \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/846\"\u003esunscrapers/djoser#846\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ccode\u003e2.3.0\u003c/code\u003e_ (2024-11-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ea potentially breaking change: fix vuln where users were given tokens if the given password was correct, but they haven't passed Django internal AUTHENTICATION_BACKENDS \u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/795\"\u003esunscrapers/djoser#795\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\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/sunscrapers/djoser/commit/62614b9830c50a2cc16781b95125b294df87fe0c\"\u003e\u003ccode\u003e62614b9\u003c/code\u003e\u003c/a\u003e bump version 2.3.3 (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/96a0a7a0b511fa07d9edb336150b8e000606a8be\"\u003e\u003ccode\u003e96a0a7a\u003c/code\u003e\u003c/a\u003e revert django pin change (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/887\"\u003e#887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/ef18f77b3fe14ef1c79bc681cb0177a8af83964e\"\u003e\u003ccode\u003eef18f77\u003c/code\u003e\u003c/a\u003e Bump version to 2.3.2 (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/884\"\u003e#884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/9aa1e8256d5183a725071c59ff823f840657f196\"\u003e\u003ccode\u003e9aa1e82\u003c/code\u003e\u003c/a\u003e Documentation updated for JWT authentication (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/861\"\u003e#861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/1e06b5b2ad1f7b34096bf5e0efb07100c9aab5c0\"\u003e\u003ccode\u003e1e06b5b\u003c/code\u003e\u003c/a\u003e Allow dynamic serializer configuration via settings (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/832\"\u003e#832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/ef680b67e6df8545fe3b960b9e42dc974860d194\"\u003e\u003ccode\u003eef680b6\u003c/code\u003e\u003c/a\u003e feat: Add Persian locale (fa, fa_IR) support (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/881\"\u003e#881\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/ce7e4f6388f692a2adffe78c603e41de40c5efbf\"\u003e\u003ccode\u003ece7e4f6\u003c/code\u003e\u003c/a\u003e feat: Add Django 5.2 and Python 3.13 support (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/882\"\u003e#882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/eeb4c719472f1582aadee28ebcccb99a37813c06\"\u003e\u003ccode\u003eeeb4c71\u003c/code\u003e\u003c/a\u003e Bump the dev-dependencies group with 3 updates (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/868\"\u003e#868\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/8c07cb1090eafc93de0093ae4db3097bd523ddef\"\u003e\u003ccode\u003e8c07cb1\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/867\"\u003e#867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sunscrapers/djoser/commit/eceaa040ee077cd483dc9a599a1196bcebe1edc8\"\u003e\u003ccode\u003eeceaa04\u003c/code\u003e\u003c/a\u003e drop --upgrade from GHA to prevent auto upgrade pinned deps (\u003ca href=\"https://redirect.github.com/sunscrapers/djoser/issues/869\"\u003e#869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/sunscrapers/djoser/compare/2.2.3...2.3.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `social-auth-app-django` from 5.4.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/python-social-auth/social-app-django/releases\"\u003esocial-auth-app-django's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.6.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed possibly unsafe account association (\u003ca href=\"https://github.com/python-social-auth/social-app-django/security/advisories/GHSA-wv4w-6qv2-qqfg\"\u003eCVE-2025-61783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStorage now filters for active users, you might need to customize \u003ccode\u003eSOCIAL_AUTH_ACTIVE_USERS_FILTER\u003c/code\u003e if your custom model does not have the \u003ccode\u003eis_active\u003c/code\u003e field\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDjango 6.0 and Python 3.14 compatibility\u003c/li\u003e\n\u003cli\u003eType annotations\u003c/li\u003e\n\u003cli\u003eLoginRequiredMiddleware compatibility\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRAISE_EXCEPTIONS\u003c/code\u003e and \u003ccode\u003eLOGIN_ERROR_URL\u003c/code\u003e can be configured per backend\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 5.5.1\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed authentication with OpenID based services\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDonations\u003c/h3\u003e\n\u003cp\u003eThis project welcomes donations to make the development sustainable, you can fund Python Social Auth on the following platforms:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sponsors/python-social-auth/\"\u003eGitHub Sponsors\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://opencollective.com/python-social-auth\"\u003eOpen Collective\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 5.5.0\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for older Django versions.\u003c/li\u003e\n\u003cli\u003eAdded non-empty constraint on \u003ccode\u003euid\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdded support for session restore with stricter SameSite cookie policy.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDonations\u003c/h3\u003e\n\u003cp\u003eThis project welcomes donations to make the development sustainable, you can fund Python Social Auth on the following platforms:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sponsors/python-social-auth/\"\u003eGitHub Sponsors\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://opencollective.com/python-social-auth\"\u003eOpen Collective\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 5.4.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edeps: Update supported Python versions by \u003ca href=\"https://github.com/a-grealish\"\u003e\u003ccode\u003e@​a-grealish\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/621\"\u003epython-social-auth/social-app-django#621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed rollback of extra_data migration by \u003ca href=\"https://github.com/niklas-scholz\"\u003e\u003ccode\u003e@​niklas-scholz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/626\"\u003epython-social-auth/social-app-django#626\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eModernize the build by \u003ca href=\"https://github.com/offbyone\"\u003e\u003ccode\u003e@​offbyone\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/641\"\u003epython-social-auth/social-app-django#641\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(ci): test django main only on Python 3.12+ by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/647\"\u003epython-social-auth/social-app-django#647\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: test against Django 5.1 and 5.2 by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/656\"\u003epython-social-auth/social-app-django#656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove requirements files by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/657\"\u003epython-social-auth/social-app-django#657\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update tox envlist by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/658\"\u003epython-social-auth/social-app-django#658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: Version bump 5.4.3 by \u003ca href=\"https://github.com/nijel\"\u003e\u003ccode\u003e@​nijel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/pull/659\"\u003epython-social-auth/social-app-django#659\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/python-social-auth/social-app-django/blob/master/CHANGELOG.md\"\u003esocial-auth-app-django's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/releases/tag/5.6.0\"\u003e5.6.0\u003c/a\u003e - 2025-10-09\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed possibly unsafe account association (\u003ca href=\"https://github.com/python-social-auth/social-app-django/security/advisories/GHSA-wv4w-6qv2-qqfg\"\u003eCVE-2025-61783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStorage now filters for active users, you might need to customize \u003ccode\u003eSOCIAL_AUTH_ACTIVE_USERS_FILTER\u003c/code\u003e if your custom model does not have the \u003ccode\u003eis_active\u003c/code\u003e field\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDjango 6.0 and Python 3.14 compatibility\u003c/li\u003e\n\u003cli\u003eType annotations\u003c/li\u003e\n\u003cli\u003eLoginRequiredMiddleware compatibility\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRAISE_EXCEPTIONS\u003c/code\u003e and \u003ccode\u003eLOGIN_ERROR_URL\u003c/code\u003e can be configured per backend\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/releases/tag/5.5.1\"\u003e5.5.1\u003c/a\u003e - 2025-06-27\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed authentication with OpenID based services\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/releases/tag/5.5.0\"\u003e5.5.0\u003c/a\u003e - 2025-06-27\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for older Django versions.\u003c/li\u003e\n\u003cli\u003eAdded non-empty constraind on \u003ccode\u003euid\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdded support for session restore with stricter SameSite cookie policy.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/releases/tag/5.4.3\"\u003e5.4.3\u003c/a\u003e - 2025-02-13\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eTested with recent Django and Python\u003c/li\u003e\n\u003cli\u003eModernized build system\u003c/li\u003e\n\u003cli\u003eFixed rollback of migrations\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-social-auth/social-app-django/commit/d1256b8593b3c3c9168232ce7712ee1cb27333de\"\u003e\u003ccode\u003ed1256b8\u003c/code\u003e\u003c/a\u003e chore: release 5.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/commit/ad7154fd9fce1e79d33f3b01ad96b4779d2ea6d2\"\u003e\u003ccode\u003ead7154f\u003c/code\u003e\u003c/a\u003e feat: test with Python 3.14 and Django 6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/commit/b0cacdb5a3c29436148e2a2c90e7aa92c7c0ab60\"\u003e\u003ccode\u003eb0cacdb\u003c/code\u003e\u003c/a\u003e fix(deps): update dependency django-stubs to v5.2.7 (\u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/issues/817\"\u003e#817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/commit/b38830ba6e92934ee06498c8f162cc4011ce08a6\"\u003e\u003ccode\u003eb38830b\u003c/code\u003e\u003c/a\u003e fix(deps): update dependency django-stubs-ext to v5.2.7 (\u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/issues/818\"\u003e#818\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/commit/598056e2b46c0abe47d38bdfc7027ea6aeedb9b7\"\u003e\u003ccode\u003e598056e\u003c/code\u003e\u003c/a\u003e chore(deps): update github/codeql-action action to v4 (\u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/issues/816\"\u003e#816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/commit/6b6cf28f716f7744e998421548be29ec2e8db400\"\u003e\u003ccode\u003e6b6cf28\u003c/code\u003e\u003c/a\u003e chore(deps): update astral-sh/setup-uv action to v7 (\u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/issues/815\"\u003e#815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/commit/08285a3286b32ce00e72aff1b86c931f19b5dbb9\"\u003e\u003ccode\u003e08285a3\u003c/code\u003e\u003c/a\u003e chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.0 (\u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/issues/814\"\u003e#814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/commit/1406696761f5965ee340d5a11b458d525b750007\"\u003e\u003ccode\u003e1406696\u003c/code\u003e\u003c/a\u003e chore(deps): update github/codeql-action action to v3.30.7 (\u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/issues/813\"\u003e#813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/commit/2432af5d7d9d3bcee1498e311b6344c04f3a7664\"\u003e\u003ccode\u003e2432af5\u003c/code\u003e\u003c/a\u003e feat: allow to override RAISE_EXCEPTIONS and LOGIN_ERROR_URL per backend (\u003ca href=\"https://redirect.github.com/python-social-auth/social-app-django/issues/812\"\u003e#812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-social-auth/social-app-django/commit/47dd0a94213fc6c26a0a7a21f38af7ed26e47ebd\"\u003e\u003ccode\u003e47dd0a9\u003c/code\u003e\u003c/a\u003e Fix linting issues in storage integration tests\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-social-auth/social-app-django/compare/5.4.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 `channels[daphne]` from 4.1.0 to 4.3.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/channels/blob/main/CHANGELOG.txt\"\u003echannels[daphne]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.1 (2025-08-01)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed testing live server setup when test DB name was not set.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.3.0 (2025-07-28)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated asgiref dependency to v3.9+.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for EOL Python and Django versions. Python 3.9 is now the\nminimum supported version.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed compatibility of \u003ccode\u003eChannelsLiveServerTestCase\u003c/code\u003e with Django 5.2.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed DB setup for spawned testing subprocess, typically on Windows and macOS.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee the \u003ccode\u003eVersion 4.3.0 release notes \u0026lt;https://channels.readthedocs.io/en/latest/releases/4.3.0.html\u0026gt;\u003c/code\u003e_ for more\ndetails.\u003c/p\u003e\n\u003ch2\u003e4.2.2 (2025-03-30)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded fallbacks for old valid channel/group name checks.\u003c/p\u003e\n\u003cp\u003eThese were renamed in 4.2.1 but (as internal methods) without deprecation.\nThey are restored (and deprecated) here to allow updating channel layers\nusing them.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.1 (2025-03-29)\u003c/h2\u003e\n\u003cp\u003eChannels 4.2.1 primarily updates the metadata for supported Python and Django\nversions.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded official support for Django 5.2 LTS.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded official support for Python 3.13.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a warning for the length of the channel layer group names.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee also the \u003ccode\u003eVersion 4.2.1 release notes \u0026lt;https://channels.readthedocs.io/en/latest/releases/4.2.1.html\u0026gt;\u003c/code\u003e_ in the docs.\u003c/p\u003e\n\u003ch2\u003e4.2.0 (2024-11-15)\u003c/h2\u003e\n\u003cp\u003eChannels 4.2 introduces a couple of major but backwards-compatible\nchanges, including most notably enhanced async suppport and fixing\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/django/channels/commit/95589a7dc70f4ff295757c8e68f55015a250cd63\"\u003e\u003ccode\u003e95589a7\u003c/code\u003e\u003c/a\u003e Version 4.3.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels/commit/5038d69e8d96b1b21d096c92c398ccbe30f122a5\"\u003e\u003ccode\u003e5038d69\u003c/code\u003e\u003c/a\u003e Fix live server setup when test DB name not set.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels/commit/f17a8fe021e45415f6eca9bc286649247bf45750\"\u003e\u003ccode\u003ef17a8fe\u003c/code\u003e\u003c/a\u003e Bump browser-actions/setup-chrome from 1 to 2 (\u003ca href=\"https://redirect.github.com/django/channels/issues/2175\"\u003e#2175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels/commit/2d64b3f0665ce722dcd0fc7d68c51cdaaab3ac82\"\u003e\u003ccode\u003e2d64b3f\u003c/code\u003e\u003c/a\u003e Version 4.3.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels/commit/253a6543756e64a2067eaeb631281ed8f61c439e\"\u003e\u003ccode\u003e253a654\u003c/code\u003e\u003c/a\u003e Fixed 4.2.1 release notes file extension.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels/commit/4aaefa962d742f85a32b1fe98bdd21d0f9d4b0c1\"\u003e\u003ccode\u003e4aaefa9\u003c/code\u003e\u003c/a\u003e Fixed DB setup for spawned testing subprocess.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels/commit/cd447717a84a8800081c437fc3a1ee4b2f616ae6\"\u003e\u003ccode\u003ecd44771\u003c/code\u003e\u003c/a\u003e Made ChannelsLiveServerTestCase compatible with Django 5.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels/commit/b72da7fc75a66a66125d09e64bb9b9ed0b87de11\"\u003e\u003ccode\u003eb72da7f\u003c/code\u003e\u003c/a\u003e Updated dependencies after asgiref v3.9. (\u003ca href=\"https://redirect.github.com/django/channels/issues/2168\"\u003e#2168\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels/commit/0efba8cba0e1bcf3f7cdd7a77d1cb0a06f970ebe\"\u003e\u003ccode\u003e0efba8c\u003c/code\u003e\u003c/a\u003e Correct the place of the 'version switcher' in docs. (\u003ca href=\"https://redirect.github.com/django/channels/issues/2167\"\u003e#2167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels/commit/8bf5c7d0c0a0ecf82e1f7aeec086305fbdfcf863\"\u003e\u003ccode\u003e8bf5c7d\u003c/code\u003e\u003c/a\u003e Update websocket.py: fix typo. (\u003ca href=\"https://redirect.github.com/django/channels/issues/2158\"\u003e#2158\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/channels/compare/4.1.0...4.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `channels-redis` from 4.2.0 to 4.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/channels_redis/blob/main/CHANGELOG.txt\"\u003echannels-redis's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.0 (2025-07-22)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.13.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for EOL Python 3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated Channels dependency to at least v4.2.2.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated asgiref dependency to at least v3.9.1.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed compatibility with latest versions of pytest-asyncio.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRenamed internal methods in core channel layer for compatibility with\nChannels v4.2.1+\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped testing against legacy Channels v3 branch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated testing against latest redis-py versions.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.1 (2024-11-15)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a way to register and use custom serializer formats.\nSee README.rst.\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/django/channels_redis/commit/84986055bbaaafd46a826ab750b28e9773c6da4d\"\u003e\u003ccode\u003e8498605\u003c/code\u003e\u003c/a\u003e Updated version and changelog for v4.3.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels_redis/commit/3e03c4566472358f60ca2bdd121651594ca844b7\"\u003e\u003ccode\u003e3e03c45\u003c/code\u003e\u003c/a\u003e Update Channels and asgiref dependencies to latest versions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels_redis/commit/3f42840931527d921b39e258ac883fb9b6e353b1\"\u003e\u003ccode\u003e3f42840\u003c/code\u003e\u003c/a\u003e Update redis-py testing matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels_redis/commit/4f35ef54cf2665c56c2e33cd233badf18a558f0a\"\u003e\u003ccode\u003e4f35ef5\u003c/code\u003e\u003c/a\u003e Adjust Channels testing matrix.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels_redis/commit/26f3f8f912454c6b3946dea4723c7ead9fae506a\"\u003e\u003ccode\u003e26f3f8f\u003c/code\u003e\u003c/a\u003e Renamed internal methods in core channel layer.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels_redis/commit/b359bf7dd434bbb68d77d4de3e1e2454f751cb93\"\u003e\u003ccode\u003eb359bf7\u003c/code\u003e\u003c/a\u003e Stop using old event_loop fixture.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels_redis/commit/f439527a1d5845fc0185b69410c839a6a20da7c5\"\u003e\u003ccode\u003ef439527\u003c/code\u003e\u003c/a\u003e Dropped Python 3.8 from test matrix.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels_redis/commit/662b90dce03e7592a03b86a8c7bd36f281d2c7a3\"\u003e\u003ccode\u003e662b90d\u003c/code\u003e\u003c/a\u003e Added support for Python 3.13 (\u003ca href=\"https://redirect.github.com/django/channels_redis/issues/404\"\u003e#404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels_redis/commit/ab8fd13f7df59beef2900e2f83040213463e7469\"\u003e\u003ccode\u003eab8fd13\u003c/code\u003e\u003c/a\u003e Fixed README syntax errors.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/channels_redis/commit/20fe75d595302380971e084d47ebaea91f152825\"\u003e\u003ccode\u003e20fe75d\u003c/code\u003e\u003c/a\u003e Set date for 4.2.1 release.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/channels_redis/compare/4.2.0...4.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-filter` from 25.1 to 25.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/carltongibson/django-filter/blob/main/CHANGES.rst\"\u003edjango-filter's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 25.2 (2025-10-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded testing for Django 6.0.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for Django \u0026lt;5.2 LTS\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDropped support for Python 3.9.\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/carltongibson/django-filter/commit/17ec565554bea4119ad74d2ffccdfb9740d9845b\"\u003e\u003ccode\u003e17ec565\u003c/code\u003e\u003c/a\u003e Bumped version for 25.2 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/9b4b8fdbfe84d471b2e69b7b28faacdd0dca2661\"\u003e\u003ccode\u003e9b4b8fd\u003c/code\u003e\u003c/a\u003e Updated testing for Django 6.0. (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1730\"\u003e#1730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/1b07b3e4c22354af31f3dcbaf4337566d7803fd4\"\u003e\u003ccode\u003e1b07b3e\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/carltongibson/django-filter/issues/1726\"\u003e#1726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/27a116864880a503b869c87a61e3e3ee597dae42\"\u003e\u003ccode\u003e27a1168\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1722\"\u003e#1722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/7f59b6f092dadee749540a93c760f84fe5e08b9f\"\u003e\u003ccode\u003e7f59b6f\u003c/code\u003e\u003c/a\u003e Add drf as optional dependencies (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1724\"\u003e#1724\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/635343ec55c9928bfa297314711df77fa83ff6c7\"\u003e\u003ccode\u003e635343e\u003c/code\u003e\u003c/a\u003e Add reference anchors to filter types to facilitate intersphinx refs (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1706\"\u003e#1706\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carltongibson/django-filter/commit/7b3176e2ea05a42f2684296733004579f6dcece5\"\u003e\u003ccode\u003e7b3176e\u003c/code\u003e\u003c/a\u003e Document steps for postgres full text search (\u003ca href=\"https://redirect.github.com/carltongibson/django-filter/issues/1704\"\u003e#1704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/carltongibson/django-filter/compare/25.1...25.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pycryptodome` from 3.19.0 to 3.23.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Legrandin/pycryptodome/releases\"\u003epycryptodome's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.23.0 - Dunkerque\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded cipher modes Key Wrap (KW, RFC3394) and Key Wrap with Padding (KWP, RFC5649).\nBoth are defined also in NIST SP 800-38F.\u003c/li\u003e\n\u003cli\u003eWheels for Windows ARM.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eResolved issues\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eGH#862: For HashEdDSA and Ed448, sign() and verify() modified the state of the XOF.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.22.0 - Caen\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for HPKE (RFC 9180).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eResolved issues\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eGH#812: CCM ciphers will now fail before encrypting (or decrypting)\ndata beyond the limit imposed by the nonce length.\u003c/li\u003e\n\u003cli\u003eGH#846: fix infinite loop with RC4 for data larger than 4GB.\u003c/li\u003e\n\u003cli\u003eGH#852: handle correctly invalid PEM files with less than 3 lines.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.21.0 - Bourdeaux\u003c/h2\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBy setting the PYCRYPTODOME_DISABLE_GMP environment variable,\nthe GMP library will not be used even if detected.\u003c/li\u003e\n\u003cli\u003eAdd support for Curve25519 / X25519.\u003c/li\u003e\n\u003cli\u003eAdd support for Curve448 / X448.\u003c/li\u003e\n\u003cli\u003eAdd attribute \u003ccode\u003ecurve\u003c/code\u003e to EccPoint and EccXPoint classes,\nwith the canonical name of the curve.\u003c/li\u003e\n\u003cli\u003eGH#781: the label for the SP800_108_Counter KDF may now\ncontain zero bytes. Thanks to Julien Rische.\u003c/li\u003e\n\u003cli\u003eGH#814: RSA keys for PSS can be imported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eResolved issues\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eGH#810: fixed negation of Ed25519 points.\u003c/li\u003e\n\u003cli\u003eGH#819: accept an RFC5916 ECPrivateKey even if it doesn't\ncontain any of the optional elements\n(parameters [0] and publicKey[1]).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.5.\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/Legrandin/pycryptodome/blob/master/Changelog.rst\"\u003epycryptodome's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.23.0 (17 May 2025)\n++++++++++++++++++++++++++\u003c/p\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded cipher modes Key Wrap (KW, RFC3394) and Key Wrap with Padding (KWP, RFC5649).\nBoth are defined also in NIST SP 800-38F.\u003c/li\u003e\n\u003cli\u003eWheels for Windows ARM.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eResolved issues\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eGH#862: For HashEdDSA and Ed448, sign() and verify() modified the state of the XOF.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.22.0 (16 March 2025)\n++++++++++++++++++++++++++\u003c/p\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for HPKE (RFC 9180).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eResolved issues\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eGH#812: CCM ciphers will now fail before encrypting (or decrypting)\ndata beyond the limit imposed by the nonce length.\u003c/li\u003e\n\u003cli\u003eGH#846: fix infinite loop with RC4 for data larger than 4GB.\u003c/li\u003e\n\u003cli\u003eGH#852: handle correctly invalid PEM files with less than 3 lines.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.21.0 (30 September 2024)\n++++++++++++++++++++++++++\u003c/p\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBy setting the PYCRYPTODOME_DISABLE_GMP environment variable,\nthe GMP library will not be used even if detected.\u003c/li\u003e\n\u003cli\u003eAdd support for Curve25519 / X25519.\u003c/li\u003e\n\u003cli\u003eAdd support for Curve448 / X448.\u003c/li\u003e\n\u003cli\u003eAdd attribute \u003ccode\u003ecurve\u003c/code\u003e to EccPoint and EccXPoint classes,\nwith the canonical name of the curve.\u003c/li\u003e\n\u003cli\u003eGH#781: the label for the SP800_108_Counter KDF may now\ncontain zero bytes. Thanks to Julien Rische.\u003c/li\u003e\n\u003cli\u003eGH#814: RSA keys for PSS can be imported.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eResolved issues\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eGH#810: fixed negation of Ed25519 points.\u003c/li\u003e\n\u003cli\u003eGH#819: accept an RFC5916 ECPrivateKey even if it doesn't\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/Legrandin/pycryptodome/commit/cde63f8f9b64f1c8cd86249128cfd5986c2c43af\"\u003e\u003ccode\u003ecde63f8\u003c/code\u003e\u003c/a\u003e Undo license information in pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Legrandin/pycryptodome/commit/51ccbaccc4a37cc331a44d69e20377fbb10c0725\"\u003e\u003ccode\u003e51ccbac\u003c/code\u003e\u003c/a\u003e Add license information in pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Legrandin/pycryptodome/commit/8d4e536029914c510432de8e2924a0566b94b515\"\u003e\u003ccode\u003e8d4e536\u003c/code\u003e\u003c/a\u003e Bump version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Legrandin/pycryptodome/commit/865287411c18671b14266bbaa6a5a639cc2e199c\"\u003e\u003ccode\u003e8652874\u003c/code\u003e\u003c/a\u003e Add license information in pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Legrandin/pycryptodome/commit/1006d4ffa495e27dbd0ff9181357d661b7e1f0ba\"\u003e\u003ccode\u003e1006d4f\u003c/code\u003e\u003c/a\u003e Build cpython-freeth...\n\n_Description has been truncated_","html_url":"https://github.com/solnxtech-star/Learnyx-backend/pull/14","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/solnxtech-star%2FLearnyx-backend/issues/14","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/14/packages"}},{"old_version":"7.4.2","new_version":"8.2","update_type":null,"path":null,"pr_created_at":"2025-11-10T10:44:10.000Z","version_change":"7.4.2 → 8.2","issue":{"uuid":"3607371970","node_id":"PR_kwDOQQPBPs6yf4nF","number":18,"state":"open","title":"build(deps): bump qrcode[pil] from 7.4.2 to 8.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":5,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-11-10T10:44:10.000Z","updated_at":"2025-11-10T10:44:38.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"qrcode","old_version":"7.4.2","new_version":"8.2","repository_url":null}],"path":null,"ecosystem":"pip"},"body":"Bumps [qrcode[pil]](https://github.com/lincolnloop/python-qrcode) from 7.4.2 to 8.2.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lincolnloop/python-qrcode/blob/main/CHANGES.rst\"\u003eqrcode[pil]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2 (01 May 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize QRColorMask apply_mask method for enhanced performance\u003c/li\u003e\n\u003cli\u003eFix typos on StyledPilImage embeded_* parameters.\nThe old parameters with the typos are still accepted\nfor backward compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1 (02 April 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0 (27 September 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.11 and 3.12.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python \u0026lt;=3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange local development setup to use Poetry_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTestsuite and code quality checks are done through Github Actions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCode quality and formatting utilises ruff_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003etyping_extensions\u003c/code\u003e as a dependency, as it's no longer required\nwith having Python 3.9+ as a requirement.\nhaving Python 3.9+ as a requirement.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOnly allow high error correction rate (\u003ccode\u003eqrcode.ERROR_CORRECT_H\u003c/code\u003e)\nwhen generating\nQR codes with embedded images to ensure content is readable\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _Poetry: \u003ca href=\"https://python-poetry.org\"\u003ehttps://python-poetry.org\u003c/a\u003e\n.. _ruff: \u003ca href=\"https://astral.sh/ruff\"\u003ehttps://astral.sh/ruff\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/lincolnloop/python-qrcode/commit/3704f57a1107dbf553a50f5b531da3859abe19cf\"\u003e\u003ccode\u003e3704f57\u003c/code\u003e\u003c/a\u003e Preparing release 8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/b593a2b86d8f9cd1bc24cc5623ee47cf1aa076b5\"\u003e\u003ccode\u003eb593a2b\u003c/code\u003e\u003c/a\u003e Fix embeded_* typo on paremeters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/d2674f83092d3573e164bb83468e51f59c85bf50\"\u003e\u003ccode\u003ed2674f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/383\"\u003e#383\u003c/a\u003e from btimby/spelling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/2ced7b4b38ea3132793723bbab588d5676fc8bc7\"\u003e\u003ccode\u003e2ced7b4\u003c/code\u003e\u003c/a\u003e Ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/c5e3f0180e025d9c0fd6adf8ed3c9998073c6137\"\u003e\u003ccode\u003ec5e3f01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/372\"\u003e#372\u003c/a\u003e from smalyu/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/cd3cd7bf87fc81860481902ca22d5b7463332b4b\"\u003e\u003ccode\u003ecd3cd7b\u003c/code\u003e\u003c/a\u003e Release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/5dcf89c56417ad37de8dba953f974324ae7b9271\"\u003e\u003ccode\u003e5dcf89c\u003c/code\u003e\u003c/a\u003e Preparing release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/10da1ba2c95886312097608bd4632ba34765e0e0\"\u003e\u003ccode\u003e10da1ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/386\"\u003e#386\u003c/a\u003e from hugovk/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/7cb996d04c6536a2dbf84cccf9fc471a200f0072\"\u003e\u003ccode\u003e7cb996d\u003c/code\u003e\u003c/a\u003e Upgrade Python syntax with pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/dc4831bde0c432e5d878b75818af38e9dc80cc87\"\u003e\u003ccode\u003edc4831b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lincolnloop/python-qrcode/compare/v7.4.2...v8.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=qrcode[pil]\u0026package-manager=pip\u0026previous-version=7.4.2\u0026new-version=8.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/m9dswyptrn-web/SupersonicBuilder/pull/18","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/m9dswyptrn-web%2FSupersonicBuilder/issues/18","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/18/packages"}},{"old_version":"8.0","new_version":"8.2","update_type":null,"path":null,"pr_created_at":"2025-10-28T04:03:59.000Z","version_change":"8.0 → 8.2","issue":{"uuid":"3559680313","node_id":"PR_kwDOQFDxxc6wDE44","number":24,"state":"open","title":"chore(deps): bump the python-minor-patch group across 1 directory with 31 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-10-28T04:03:59.000Z","updated_at":"2025-10-28T04:04:00.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.115.0","new_version":"0.120.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.32.0","new_version":"0.38.0"},{"name":"pydantic","old_version":"2.9.2","new_version":"2.12.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.6.0","new_version":"2.11.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"sqlalchemy","old_version":"2.0.36","new_version":"2.0.44","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"alembic","old_version":"1.13.3","new_version":"1.17.0","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pandas","old_version":"2.2.3","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"shapely","old_version":"2.0.6","new_version":"2.1.2","repository_url":"https://github.com/shapely/shapely"},{"name":"python-multipart","old_version":"0.0.12","new_version":"0.0.20","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"reportlab","old_version":"4.2.5","new_version":"4.4.4"},{"name":"vobject","old_version":"0.9.8","new_version":"0.9.9","repository_url":"https://github.com/py-vobject/vobject"},{"name":"python-jose","old_version":"3.3.0","new_version":"3.5.0"},{"name":"bcrypt","old_version":"4.2.0","new_version":"4.3.0","repository_url":"https://github.com/pyca/bcrypt"},{"name":"qrcode","old_version":"8.0","new_version":"8.2"},{"name":"requests","old_version":"2.32.3","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"prometheus-fastapi-instrumentator","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"prometheus-client","old_version":"0.21.0","new_version":"0.23.1","repository_url":"https://github.com/prometheus/client_python"},{"name":"celery","old_version":"5.4.0","new_version":"5.5.3","repository_url":"https://github.com/celery/celery"},{"name":"redis","old_version":"5.2.0","new_version":"5.3.1","repository_url":"https://github.com/redis/redis-py"},{"name":"python-levenshtein","old_version":"0.26.0","new_version":"0.27.1","repository_url":"https://github.com/rapidfuzz/python-Levenshtein"},{"name":"pytest","old_version":"8.3.3","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"0.24.0","new_version":"0.26.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"bandit","old_version":"1.7.10","new_version":"1.8.6","repository_url":"https://github.com/PyCQA/bandit"},{"name":"minio","old_version":"7.2.7","new_version":"7.2.18","repository_url":"https://github.com/minio/minio-py"},{"name":"transformers","old_version":"4.35.2","new_version":"4.57.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"torch","old_version":"2.1.1","new_version":"2.9.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"torchvision","old_version":"0.16.1","new_version":"0.24.0","repository_url":"https://github.com/pytorch/vision"},{"name":"sentencepiece","old_version":"0.1.99","new_version":"0.2.1","repository_url":"https://github.com/google/sentencepiece"}],"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.115.0` | `0.120.1` |\n| [uvicorn[standard]](https://github.com/Kludex/uvicorn) | `0.32.0` | `0.38.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.9.2` | `2.12.3` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.6.0` | `2.11.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.36` | `2.0.44` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.13.3` | `1.17.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.2.3` | `2.3.3` |\n| [shapely](https://github.com/shapely/shapely) | `2.0.6` | `2.1.2` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.12` | `0.0.20` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [reportlab](https://www.reportlab.com/) | `4.2.5` | `4.4.4` |\n| [vobject](https://github.com/py-vobject/vobject) | `0.9.8` | `0.9.9` |\n| [python-jose[cryptography]](https://github.com/mpdavis/python-jose) | `3.3.0` | `3.5.0` |\n| [bcrypt](https://github.com/pyca/bcrypt) | `4.2.0` | `4.3.0` |\n| [qrcode[pil]](https://github.com/lincolnloop/python-qrcode) | `8.0` | `8.2` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.32.5` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `7.0.0` | `7.1.0` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.21.0` | `0.23.1` |\n| [celery](https://github.com/celery/celery) | `5.4.0` | `5.5.3` |\n| [redis](https://github.com/redis/redis-py) | `5.2.0` | `5.3.1` |\n| [python-levenshtein](https://github.com/rapidfuzz/python-Levenshtein) | `0.26.0` | `0.27.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.3` | `8.4.2` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.24.0` | `0.26.0` |\n| [bandit](https://github.com/PyCQA/bandit) | `1.7.10` | `1.8.6` |\n| [minio](https://github.com/minio/minio-py) | `7.2.7` | `7.2.18` |\n| [transformers](https://github.com/huggingface/transformers) | `4.35.2` | `4.57.1` |\n| [torch](https://github.com/pytorch/pytorch) | `2.1.1` | `2.9.0` |\n| [torchvision](https://github.com/pytorch/vision) | `0.16.1` | `0.24.0` |\n| [sentencepiece](https://github.com/google/sentencepiece) | `0.1.99` | `0.2.1` |\n\n\nUpdates `fastapi` from 0.115.0 to 0.120.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.120.1\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Bump Starlette to \u0026lt;\u003ccode\u003e0.50.0\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14234\"\u003e#14234\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\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add \u003ccode\u003elicense\u003c/code\u003e and \u003ccode\u003elicense-files\u003c/code\u003e to \u003ccode\u003epyproject.toml\u003c/code\u003e, remove \u003ccode\u003eLicense\u003c/code\u003e from \u003ccode\u003eclassifiers\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14230\"\u003e#14230\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.120.0\u003c/h2\u003e\n\u003cp\u003eThere are no major nor breaking changes in this release. ☕️\u003c/p\u003e\n\u003cp\u003eThe internal reference documentation now uses \u003ccode\u003eannotated_doc.Doc\u003c/code\u003e instead of \u003ccode\u003etyping_extensions.Doc\u003c/code\u003e, this adds a new (very small) dependency on \u003ca href=\"https://github.com/fastapi/annotated-doc\"\u003e\u003ccode\u003eannotated-doc\u003c/code\u003e\u003c/a\u003e, a package made just to provide that \u003ccode\u003eDoc\u003c/code\u003e documentation utility class.\u003c/p\u003e\n\u003cp\u003eI would expect \u003ccode\u003etyping_extensions.Doc\u003c/code\u003e to be deprecated and then removed at some point from \u003ccode\u003etyping_extensions\u003c/code\u003e, for that reason there's the new \u003ccode\u003eannotated-doc\u003c/code\u003e micro-package. If you are curious about this, you can read more in the repo for \u003ca href=\"https://github.com/fastapi/annotated-doc\"\u003e\u003ccode\u003eannotated-doc\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis new version \u003ccode\u003e0.120.0\u003c/code\u003e only contains that transition to the new home package for that utility class \u003ccode\u003eDoc\u003c/code\u003e.\u003c/p\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/14188\"\u003e#14188\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➕ Migrate internal reference documentation from \u003ccode\u003etyping_extensions.Doc\u003c/code\u003e to \u003ccode\u003eannotated_doc.Doc\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14222\"\u003e#14222\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 German LLM prompt and test file. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14189\"\u003e#14189\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⬆ [pre-commit.ci] pre-commit autoupdate. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14181\"\u003e#14181\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\u003c/ul\u003e\n\u003ch2\u003e0.119.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix internal Pydantic v1 compatibility (warnings) for Python 3.14 and Pydantic 2.12.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14186\"\u003e#14186\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📝 Replace \u003ccode\u003estarlette.io\u003c/code\u003e by \u003ccode\u003estarlette.dev\u003c/code\u003e and \u003ccode\u003euvicorn.org\u003c/code\u003e by \u003ccode\u003euvicorn.dev\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14176\"\u003e#14176\u003c/a\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\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🔧 Add sponsor Requestly. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14205\"\u003e#14205\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🔧 Configure reminder for \u003ccode\u003ewaiting\u003c/code\u003e label in \u003ccode\u003eissue-manager\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14156\"\u003e#14156\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.119.0\u003c/h2\u003e\n\u003cp\u003eFastAPI now (temporarily) supports both Pydantic v2 models and \u003ccode\u003epydantic.v1\u003c/code\u003e models at the same time in the same app, to make it easier for any FastAPI apps still using Pydantic v1 to gradually but quickly \u003cstrong\u003emigrate to Pydantic v2\u003c/strong\u003e.\u003c/p\u003e\n\u003cpre lang=\"Python\"\u003e\u003ccode\u003efrom fastapi import FastAPI\nfrom pydantic import BaseModel as BaseModelV2\nfrom pydantic.v1 import BaseModel\n\u003cp\u003e\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\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/78c94c3f565b9b992d1eecafaeb0991e2b177d7c\"\u003e\u003ccode\u003e78c94c3\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.120.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b0301b2803ff98efa638de90ebac05a76a85e20\"\u003e\u003ccode\u003e4b0301b\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/436932aef587e8120439f545ad25220114ea15ab\"\u003e\u003ccode\u003e436932a\u003c/code\u003e\u003c/a\u003e ⬆️ Bump Starlette to \u0026lt;\u003ccode\u003e0.50.0\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14234\"\u003e#14234\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3ea6a4a0b14583c690b31cbd6951d561f1b6da5c\"\u003e\u003ccode\u003e3ea6a4a\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/96dd32718b36155e221e96a3025f71d654d5031a\"\u003e\u003ccode\u003e96dd327\u003c/code\u003e\u003c/a\u003e 🔧 Add \u003ccode\u003elicense\u003c/code\u003e and \u003ccode\u003elicense-files\u003c/code\u003e to \u003ccode\u003epyproject.toml\u003c/code\u003e, remove \u003ccode\u003eLicense\u003c/code\u003e fro...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cd40c5b40ffd8ba0c6a6a6c96bbf34ec1cf9c525\"\u003e\u003ccode\u003ecd40c5b\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.120.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1c6ee57bbfeebfa21a393b7939c85d9d4d29f0b0\"\u003e\u003ccode\u003e1c6ee57\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/09f40968cb03e878aa25bc83340f891b09d1e418\"\u003e\u003ccode\u003e09f4096\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d390f2e41fb508de416071d481937bc7be486589\"\u003e\u003ccode\u003ed390f2e\u003c/code\u003e\u003c/a\u003e ➕ Migrate internal reference documentation from \u003ccode\u003etyping_extensions.Doc\u003c/code\u003e to `a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cb7018d782c88b189f11d6141c8231ffb9b403b0\"\u003e\u003ccode\u003ecb7018d\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.0...0.120.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn[standard]` from 0.32.0 to 0.38.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[standard]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.38.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 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/2723\"\u003eKludex/uvicorn#2723\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NGANAMODEIJunior\"\u003e\u003ccode\u003e@​NGANAMODEIJunior\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2713\"\u003eKludex/uvicorn#2713\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.37.0...0.38.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.37.0...0.38.0\u003c/a\u003e\u003c/p\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\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[standard]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.38.0 (October 18, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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\u003ch2\u003e0.34.2 (April 19, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFlush stdout buffer on Windows to trigger reload (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2604\"\u003e#2604\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.34.1 (April 13, 2025)\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/Kludex/uvicorn/commit/3850ad6520cafb290bd4174fa9c4ca5d33440c82\"\u003e\u003ccode\u003e3850ad6\u003c/code\u003e\u003c/a\u003e Version 0.38.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2733\"\u003e#2733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9b3f17a549ec96f57bf4d975145fc58feefdd4e8\"\u003e\u003ccode\u003e9b3f17a\u003c/code\u003e\u003c/a\u003e Support Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/ce79f95d065c053b36449f67b3b2cefee5ecf167\"\u003e\u003ccode\u003ece79f95\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Add Marcelo Trylesinski to the license (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2699\"\u003e#2699\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2730\"\u003e#2730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/dbf8797b47c79da542f530f2143b8e851e2388fd\"\u003e\u003ccode\u003edbf8797\u003c/code\u003e\u003c/a\u003e docs: add social icons (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2728\"\u003e#2728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/58f28be98eb95c8cf25905df10997b4af81c23e3\"\u003e\u003ccode\u003e58f28be\u003c/code\u003e\u003c/a\u003e Add section about event loop (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2725\"\u003e#2725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/93d95107490d5ea3693601388d7783c450058271\"\u003e\u003ccode\u003e93d9510\u003c/code\u003e\u003c/a\u003e Bump docs dependencies (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2724\"\u003e#2724\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9b1c6c45ed7fe8bd485ddad475f0feff03971af7\"\u003e\u003ccode\u003e9b1c6c4\u003c/code\u003e\u003c/a\u003e Move Marcelo Trylesinski to maintainers in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2719\"\u003e#2719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/57a61d86f2f123b1d35b9ff71e0f29d22d10806f\"\u003e\u003ccode\u003e57a61d8\u003c/code\u003e\u003c/a\u003e Add discord to README (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2718\"\u003e#2718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7ef5f9f5e7e79887b4ab4214c15ab5a9ce63e193\"\u003e\u003ccode\u003e7ef5f9f\u003c/code\u003e\u003c/a\u003e chore(deps): bump astral-sh/setup-uv from 6.7.0 to 6.8.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2717\"\u003e#2717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/6d26d88970379cbf20b4dbf4f70e27f191db4ede\"\u003e\u003ccode\u003e6d26d88\u003c/code\u003e\u003c/a\u003e Update pyproject.toml for PEP639 compliance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2713\"\u003e#2713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.32.0...0.38.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.9.2 to 2.12.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.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRaise a warning when an invalid after model validator function signature is raised 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/12414\"\u003e#12414\u003c/a\u003e.\nStarting in 2.12.0, using class methods for \u003cem\u003eafter\u003c/em\u003e model validators raised an error, but the error wasn't raised concistently. We decided to emit a deprecation warning instead.\u003c/li\u003e\n\u003cli\u003eAdd \u003ca href=\"https://docs.pydantic.dev/latest/api/fields/#pydantic.fields.FieldInfo.asdict\"\u003e\u003ccode\u003eFieldInfo.asdict()\u003c/code\u003e\u003c/a\u003e method, improve documentation around \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/12411\"\u003e#12411\u003c/a\u003e.\nThis also adds back support for mutations on \u003ccode\u003eFieldInfo\u003c/code\u003e classes, that are reused as \u003ccode\u003eAnnotated\u003c/code\u003e metadata. \u003cstrong\u003eHowever\u003c/strong\u003e, note that this is still \u003cem\u003enot\u003c/em\u003e a supported pattern. Instead, please refer to the \u003ca href=\"https://docs.pydantic.dev/latest/examples/dynamic_models/\"\u003eadded example\u003c/a\u003e in the documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-12-release#changes\"\u003eblog post\u003c/a\u003e section on changes was also updated to document the changes related to \u003ccode\u003eserialize_as_any\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.2...v2.12.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.2...v2.12.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.2 2025-10-14\u003c/h2\u003e\n\u003ch2\u003ev2.12.2 (2025-10-14)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRelease a new \u003ccode\u003epydantic-core\u003c/code\u003e version, as a corrupted CPython 3.10 \u003ccode\u003emanylinux2014_aarch64\u003c/code\u003e wheel got uploaded (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1843\"\u003epydantic-core#1843\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with recursive generic models with a parent model class 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/12398\"\u003e#12398\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.1...v2.12.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.1...v2.12.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.1 2025-10-13\u003c/h2\u003e\n\u003ch2\u003ev2.12.1 (2025-10-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the first 2.12 patch release, addressing most (but not all yet) regressions from the initial 2.12.0 release.\u003c/p\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDo not evaluate annotations when inspecting validators and serializers 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/12355\"\u003e#12355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake sure \u003ccode\u003eNone\u003c/code\u003e is converted as \u003ccode\u003eNoneType\u003c/code\u003e in Python 3.14 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/12370\"\u003e#12370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBackport V1 runtime warning when using Python 3.14 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/12367\"\u003e#12367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix error message for invalid validator signatures 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/12366\"\u003e#12366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePopulate field name in \u003ccode\u003eValidationInfo\u003c/code\u003e for validation of default value 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/1826\"\u003epydantic-core#1826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEncode credentials in \u003ccode\u003eMultiHostUrl\u003c/code\u003e builder by \u003ca href=\"https://github.com/willswire\"\u003e\u003ccode\u003e@​willswire\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1829\"\u003epydantic-core#1829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect field serializers when using \u003ccode\u003eserialize_as_any\u003c/code\u003e serialization flag 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/1829\"\u003epydantic-core#1829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix various \u003ccode\u003eRootModel\u003c/code\u003e serialization issues 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/1836\"\u003epydantic-core#1836\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\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/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.12 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported\n\u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRaise a warning when an invalid after model validator function signature is raised 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/12414\"\u003e#12414\u003c/a\u003e.\nStarting in 2.12.0, using class methods for \u003cem\u003eafter\u003c/em\u003e model validators raised an error, but the error wasn't raised concistently. We decided\nto emit a deprecation warning instead.\u003c/li\u003e\n\u003cli\u003eAdd \u003ca href=\"https://docs.pydantic.dev/latest/api/fields/#pydantic.fields.FieldInfo.asdict\"\u003e\u003ccode\u003eFieldInfo.asdict()\u003c/code\u003e\u003c/a\u003e method, improve documentation around \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/12411\"\u003e#12411\u003c/a\u003e.\nThis also add back support for mutations on \u003ccode\u003eFieldInfo\u003c/code\u003e classes, that are reused as \u003ccode\u003eAnnotated\u003c/code\u003e metadata. \u003cstrong\u003eHowever\u003c/strong\u003e, note that this is still\n\u003cem\u003enot\u003c/em\u003e a supported pattern. Instead, please refer to the \u003ca href=\"https://docs.pydantic.dev/latest/examples/dynamic_models/\"\u003eadded example\u003c/a\u003e in the documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-12-release#changes\"\u003eblog post\u003c/a\u003e section on changes was also updated to document the changes related to \u003ccode\u003eserialize_as_any\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003ev2.12.2 (2025-10-14)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.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\u003eRelease a new \u003ccode\u003epydantic-core\u003c/code\u003e version, as a corrupted CPython 3.10 \u003ccode\u003emanylinux2014_aarch64\u003c/code\u003e wheel got uploaded (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1843\"\u003epydantic-core#1843\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with recursive generic models with a parent model class 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/12398\"\u003e#12398\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.1 (2025-10-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the first 2.12 patch release, addressing most (but not all yet) regressions from the initial 2.12.0 release.\u003c/p\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDo not evaluate annotations when inspecting validators and serializers 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/12355\"\u003e#12355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake sure \u003ccode\u003eNone\u003c/code\u003e is converted as \u003ccode\u003eNoneType\u003c/code\u003e in Python 3.14 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/12370\"\u003e#12370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBackport V1 runtime warning when using Python 3.14 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/12367\"\u003e#12367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix error message for invalid validator signatures 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/12366\"\u003e#12366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePopulate field name in \u003ccode\u003eValidationInfo\u003c/code\u003e for validation of default value 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/1826\"\u003epydantic-core#1826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEncode credentials in \u003ccode\u003eMultiHostUrl\u003c/code\u003e builder by \u003ca href=\"https://github.com/willswire\"\u003e\u003ccode\u003e@​willswire\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1829\"\u003epydantic-core#1829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect field serializers when using \u003ccode\u003eserialize_as_any\u003c/code\u003e serialization flag 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/1829\"\u003epydantic-core#1829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix various \u003ccode\u003eRootModel\u003c/code\u003e serialization issues 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/1836\"\u003epydantic-core#1836\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\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/pydantic/pydantic/commit/1a8850d101e67d2744ba8c6286e1172d7cd89d0b\"\u003e\u003ccode\u003e1a8850d\u003c/code\u003e\u003c/a\u003e Prepare release 2.12.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/09dbcf29c73c3fd7fd3ef1edfebe357e807cc9ca\"\u003e\u003ccode\u003e09dbcf2\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eFieldInfo.asdict()\u003c/code\u003e method, improve documentation around \u003ccode\u003eFieldInfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5da43310ec61a7b9b3017b2b9f388e778398a1bc\"\u003e\u003ccode\u003e5da4331\u003c/code\u003e\u003c/a\u003e Improve documentation about serialize as any behavior\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/9c863245ad3799ab331f33b52e2d7441e9c1191e\"\u003e\u003ccode\u003e9c86324\u003c/code\u003e\u003c/a\u003e Raise a warning when an invalid after model validator function signature is r...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/36a73c6ed53df7f1cad3343bc811e1dd3f52d26f\"\u003e\u003ccode\u003e36a73c6\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003epydantic-extra-types\u003c/code\u003e dependency to version \u003ccode\u003e\u0026gt;=2.10.6\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1e616a3a6fa0201f840c08143cac883e56a2d9df\"\u003e\u003ccode\u003e1e616a3\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/dc302e2d09f0eed14729f69bc61a258f1f35d35c\"\u003e\u003ccode\u003edc302e2\u003c/code\u003e\u003c/a\u003e Fix issue with recursive generic models with a parent model class\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/6876485d0cffeb66c915695574344ae4b03645a7\"\u003e\u003ccode\u003e6876485\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epydantic-core\u003c/code\u003e to v2.41.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b4076c66773b514d4891f036a4cc562b8ff0ff21\"\u003e\u003ccode\u003eb4076c6\u003c/code\u003e\u003c/a\u003e Prepare release 2.12.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b67f07291167b4005a6eeee05fcad67b43a53f41\"\u003e\u003ccode\u003eb67f072\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epydantic-core\u003c/code\u003e to v2.41.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.9.2...v2.12.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.6.0 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.6.0...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.36 to 2.0.44\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.44\u003c/h1\u003e\n\u003cp\u003eReleased: October 10, 2025\u003c/p\u003e\n\u003ch2\u003eplatform\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[platform] [bug]\u003c/strong\u003e Unblocked automatic greenlet installation for Python 3.14 now that\nthere are greenlet wheels on pypi for python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [usecase]\u003c/strong\u003e The way ORM Annotated Declarative interprets Python \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e type aliases\nin \u003ccode\u003eMapped[]\u003c/code\u003e annotations has been refined to expand the lookup scheme. A\n\u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e type can now be resolved based on either its direct presence in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e or its immediate resolved\nvalue, as long as a recursive lookup across multiple \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e types is\nnot required for it to resolve. This change reverses part of the\nrestrictions introduced in 2.0.37 as part of \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/11955\"\u003e#11955\u003c/a\u003e, which\ndeprecated (and disallowed in 2.1) the ability to resolve any \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e\ntype that was not explicitly present in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e. Recursive lookups of\n\u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e types remains deprecated in 2.0 and disallowed in version 2.1,\nas do implicit lookups of \u003ccode\u003eNewType\u003c/code\u003e types without an entry in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eAdditionally, new support has been added for generic \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e aliases that\nrefer to \u003ca href=\"https://peps.python.org/pep-0593\"\u003ePEP 593\u003c/a\u003e \u003ccode\u003eAnnotated\u003c/code\u003e constructs containing\n\u003ccode\u003e_orm.mapped_column()\u003c/code\u003e configurations. See the sections below for\nexamples.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12829\"\u003e#12829\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed a caching issue where \u003ccode\u003e_orm.with_loader_criteria()\u003c/code\u003e would\nincorrectly reuse cached bound parameter values when used with\n\u003ccode\u003e_sql.CompoundSelect\u003c/code\u003e constructs such as \u003ccode\u003e_sql.union()\u003c/code\u003e. The\nissue was caused by the cache key for compound selects not including the\nexecution options that are part of the \u003ccode\u003e_sql.Executable\u003c/code\u003e base class,\nwhich \u003ccode\u003e_orm.with_loader_criteria()\u003c/code\u003e uses to apply its criteria\ndynamically. The fix ensures that compound selects and other executable\nconstructs properly include execution options in their cache key traversal.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12905\"\u003e#12905\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\u003cstrong\u003e[engine] [bug]\u003c/strong\u003e Implemented initial support for free-threaded Python by adding new tests\nand reworking the test harness to include Python 3.13t and Python 3.14t in\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 `alembic` from 1.13.3 to 1.17.0\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.17.0\u003c/h1\u003e\n\u003cp\u003eReleased: October 11, 2025\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[change] [tests]\u003c/strong\u003e The top-level test runner has been changed to use \u003ccode\u003enox\u003c/code\u003e, adding a\n\u003ccode\u003enoxfile.py\u003c/code\u003e as well as some included modules.   The \u003ccode\u003etox.ini\u003c/code\u003e file\nremains in place so that \u003ccode\u003etox\u003c/code\u003e runs will continue to function in the near\nterm, however it will be eventually removed and improvements and\nmaintenance going forward will be only towards \u003ccode\u003enoxfile.py\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[change] [general]\u003c/strong\u003e The minimum Python version is now 3.10, as Python 3.9 is EOL.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\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 `psycopg2-binary` 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-binary'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\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 `shapely` from 2.0.6 to 2.1.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/shapely/shapely/releases\"\u003eshapely's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation of certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFor a full changelog , see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions, improvements and bug fixes. Highlights include initial support for geometries with M or ZM values, functionality for coverage validation and simplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1 and are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.1.0rc1\u003c/h2\u003e\n\u003cp\u003eShapely version 2.1.0 is a major release featuring various new functions, improvements and bug fixes. This is a first release candidate.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0-unreleased\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.0.7\u003c/h2\u003e\n\u003cp\u003eShapely 2.0.7 fixes 3 bugs:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix compilation error on certain Linux platforms, such as Alpine (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/1945\"\u003e#1945\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixes crash when reading nonlinear geometry types (\u003ccode\u003eCircularString\u003c/code\u003e, \u003ccode\u003eCompoundCurve\u003c/code\u003e, \u003ccode\u003eMultiCurve\u003c/code\u003e, \u003ccode\u003eCurvePolygon\u003c/code\u003e, \u003ccode\u003eMultiSurface\u003c/code\u003e) from WKB/WKT with GEOS \u0026gt;= 3.13; these types are not yet supported in Shapely and now raise a \u003ccode\u003eNotImplementedError\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2160\"\u003e#2160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix the \u003ccode\u003eproject()\u003c/code\u003e method to return a Python float (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2093\"\u003e#2093\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWheels include GEOS 3.11.4.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see \u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-0-7\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-0-7\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/shapely/shapely/blob/main/CHANGES.txt\"\u003eshapely's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.1.2 (2025-09-24)\u003c/h2\u003e\n\u003cp\u003eWheels are available for Python 3.14 (and still include GEOS 3.13.1).\u003c/p\u003e\n\u003ch2\u003e2.1.1 (2025-05-19)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix performance degradation calling shapely functions (caused by deprecation\nof certain positional arguments) (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2283\"\u003e#2283\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix crash caused by \u003ccode\u003efrom_ragged_array()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2291\"\u003e#2291\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix compilation error building with recent LLVM toolchain (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2293\"\u003e#2293\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.1.0 (2025-04-03)\u003c/h2\u003e\n\u003cp\u003eShapely 2.1.0 is a feature release with various new functions,\nimprovements and bug fixes. Highlights include initial support for geometries\nwith M or ZM values, functionality for coverage validation and\nsimplification, and a set of new top-level functions.\u003c/p\u003e\n\u003cp\u003eShapely supports Python \u0026gt;= 3.10, and binary wheels on PyPI include GEOS 3.13.1\nand are now also provided for musllinux (Alpine) x86_64 platforms.\u003c/p\u003e\n\u003cp\u003eFor a full changelog, see\n\u003ca href=\"https://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\"\u003ehttps://shapely.readthedocs.io/en/latest/release/2.x.html#version-2-1-0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.0.7 (2025-01-30)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix compilation error on certain Linux platforms, such as Alpine (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/1945\"\u003e#1945\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixes crash when reading nonlinear geometry types (CircularString,\nCompoundCurve, MultiCurve, CurvePolygon, MultiSurface) from WKB/WKT with\nGEOS \u0026gt;= 3.13; these types are not yet supported in Shapely and now raise a\n\u003ccode\u003eNotImplementedError\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2160\"\u003e#2160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix the \u003ccode\u003eproject\u003c/code\u003e method to return a Python float (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2093\"\u003e#2093\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/shapely/shapely/commit/5fb639d1056888d135fe56bfaf750c9648addeec\"\u003e\u003ccode\u003e5fb639d\u003c/code\u003e\u003c/a\u003e RLS: 2.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/70509a1bee5ebd6637cda98b5c9d83707c341888\"\u003e\u003ccode\u003e70509a1\u003c/code\u003e\u003c/a\u003e DOC/RLS: indicate Python 3.14 support in pyproject.toml and release notes for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5c572b622027f6917c75afd728f201a144fb597d\"\u003e\u003ccode\u003e5c572b6\u003c/code\u003e\u003c/a\u003e CI: add testing with GEOS 3.14 and Python 3.14 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2330\"\u003e#2330\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/a9093336b1ea77559d44148a7f1ed92ab3bc2999\"\u003e\u003ccode\u003ea909333\u003c/code\u003e\u003c/a\u003e Bump pypa/cibuildwheel from 3.1.3 to 3.2.0 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2328\"\u003e#2328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/2086d4428e29da17bafc684acbfb04bb537ce573\"\u003e\u003ccode\u003e2086d44\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5 to 6 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2326\"\u003e#2326\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/50c1cf30be0e37081991b6d5a5dc3531cfbe35da\"\u003e\u003ccode\u003e50c1cf3\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2321\"\u003e#2321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/39490ab685a42a2c189f2ce7a45b7d07053e8e8f\"\u003e\u003ccode\u003e39490ab\u003c/code\u003e\u003c/a\u003e TST: update test_coverage_union_overlapping_inputs for upstream GEOS change (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/5ef437c898b54f723ad0e4a8b6b513b9cc5d68a2\"\u003e\u003ccode\u003e5ef437c\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2320\"\u003e#2320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/7b5ff3d24b7889d35f96ee3ae9ec26250b3d6147\"\u003e\u003ccode\u003e7b5ff3d\u003c/code\u003e\u003c/a\u003e BLD: add Python 3.14 wheels [Bump pypa/cibuildwheel from 3.0.1 to 3.1.3] (\u003ca href=\"https://redirect.github.com/shapely/shapely/issues/2316\"\u003e#2316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shapely/shapely/commit/480dbb14f47b685e95c03654983405185c15babd\"\u003e\u003ccode\u003e480dbb1\u003c/code\u003e\u003c/a\u003e TST: update frechet_distance densify test for latest GEOS main (densify\u0026gt;0.001...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/shapely/shapely/compare/2.0.6...2.1.2\"\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.12 to 0.0.20\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.20\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle messages containing only end boundary, fixes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/38\"\u003e#38\u003c/a\u003e by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect...\n\n_Description has been truncated_","html_url":"https://github.com/newwdead/CRM/pull/24","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/newwdead%2FCRM/issues/24","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/24/packages"}},{"old_version":"8.0","new_version":"8.2","update_type":null,"path":"/backend","pr_created_at":"2025-10-24T23:31:26.000Z","version_change":"8.0 → 8.2","issue":{"uuid":"3551307167","node_id":"PR_kwDOQFDxxc6vnTnP","number":20,"state":"open","title":"Bump the python-minor-patch group in /backend with 26 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2025-10-24T23:31:26.000Z","updated_at":"2025-10-26T18:01:08.109Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"python-minor-patch","update_count":26,"packages":[{"name":"fastapi","old_version":"0.115.0","new_version":"0.120.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.32.0","new_version":"0.38.0"},{"name":"pydantic","old_version":"2.9.2","new_version":"2.12.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.6.0","new_version":"2.11.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"sqlalchemy","old_version":"2.0.36","new_version":"2.0.44","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"alembic","old_version":"1.13.3","new_version":"1.17.0","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pandas","old_version":"2.2.3","new_version":"2.3.3","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"opencv-python-headless","old_version":"4.10.0.84","new_version":"4.12.0.88","repository_url":"https://github.com/opencv/opencv-python"},{"name":"python-multipart","old_version":"0.0.12","new_version":"0.0.20","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"reportlab","old_version":"4.2.5","new_version":"4.4.4"},{"name":"vobject","old_version":"0.9.8","new_version":"0.9.9","repository_url":"https://github.com/py-vobject/vobject"},{"name":"python-jose","old_version":"3.3.0","new_version":"3.5.0"},{"name":"bcrypt","old_version":"4.2.0","new_version":"4.3.0","repository_url":"https://github.com/pyca/bcrypt"},{"name":"qrcode","old_version":"8.0","new_version":"8.2"},{"name":"requests","old_version":"2.32.3","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"prometheus-fastapi-instrumentator","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/trallnag/prometheus-fastapi-instrumentator"},{"name":"prometheus-client","old_version":"0.21.0","new_version":"0.23.1","repository_url":"https://github.com/prometheus/client_python"},{"name":"celery","old_version":"5.4.0","new_version":"5.5.3","repository_url":"https://github.com/celery/celery"},{"name":"redis","old_version":"5.2.0","new_version":"5.3.1","repository_url":"https://github.com/redis/redis-py"},{"name":"python-levenshtein","old_version":"0.26.0","new_version":"0.27.1","repository_url":"https://github.com/rapidfuzz/python-Levenshtein"},{"name":"pytest","old_version":"8.3.3","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"0.24.0","new_version":"0.26.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"bandit","old_version":"1.7.10","new_version":"1.8.6","repository_url":"https://github.com/PyCQA/bandit"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps the python-minor-patch group in /backend with 26 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.115.0` | `0.120.0` |\n| [uvicorn[standard]](https://github.com/Kludex/uvicorn) | `0.32.0` | `0.38.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.9.2` | `2.12.3` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.6.0` | `2.11.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.36` | `2.0.44` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.13.3` | `1.17.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.2.3` | `2.3.3` |\n| [opencv-python-headless](https://github.com/opencv/opencv-python) | `4.10.0.84` | `4.12.0.88` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.12` | `0.0.20` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [reportlab](https://www.reportlab.com/) | `4.2.5` | `4.4.4` |\n| [vobject](https://github.com/py-vobject/vobject) | `0.9.8` | `0.9.9` |\n| [python-jose[cryptography]](https://github.com/mpdavis/python-jose) | `3.3.0` | `3.5.0` |\n| [bcrypt](https://github.com/pyca/bcrypt) | `4.2.0` | `4.3.0` |\n| [qrcode[pil]](https://github.com/lincolnloop/python-qrcode) | `8.0` | `8.2` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.32.5` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [prometheus-fastapi-instrumentator](https://github.com/trallnag/prometheus-fastapi-instrumentator) | `7.0.0` | `7.1.0` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.21.0` | `0.23.1` |\n| [celery](https://github.com/celery/celery) | `5.4.0` | `5.5.3` |\n| [redis](https://github.com/redis/redis-py) | `5.2.0` | `5.3.1` |\n| [python-levenshtein](https://github.com/rapidfuzz/python-Levenshtein) | `0.26.0` | `0.27.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.3` | `8.4.2` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.24.0` | `0.26.0` |\n| [bandit](https://github.com/PyCQA/bandit) | `1.7.10` | `1.8.6` |\n\nUpdates `fastapi` from 0.115.0 to 0.120.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.120.0\u003c/h2\u003e\n\u003cp\u003eThere are no major nor breaking changes in this release. ☕️\u003c/p\u003e\n\u003cp\u003eThe internal reference documentation now uses \u003ccode\u003eannotated_doc.Doc\u003c/code\u003e instead of \u003ccode\u003etyping_extensions.Doc\u003c/code\u003e, this adds a new (very small) dependency on \u003ca href=\"https://github.com/fastapi/annotated-doc\"\u003e\u003ccode\u003eannotated-doc\u003c/code\u003e\u003c/a\u003e, a package made just to provide that \u003ccode\u003eDoc\u003c/code\u003e documentation utility class.\u003c/p\u003e\n\u003cp\u003eI would expect \u003ccode\u003etyping_extensions.Doc\u003c/code\u003e to be deprecated and then removed at some point from \u003ccode\u003etyping_extensions\u003c/code\u003e, for that reason there's the new \u003ccode\u003eannotated-doc\u003c/code\u003e micro-package. If you are curious about this, you can read more in the repo for \u003ca href=\"https://github.com/fastapi/annotated-doc\"\u003e\u003ccode\u003eannotated-doc\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis new version \u003ccode\u003e0.120.0\u003c/code\u003e only contains that transition to the new home package for that utility class \u003ccode\u003eDoc\u003c/code\u003e.\u003c/p\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/14188\"\u003e#14188\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➕ Migrate internal reference documentation from \u003ccode\u003etyping_extensions.Doc\u003c/code\u003e to \u003ccode\u003eannotated_doc.Doc\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14222\"\u003e#14222\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 German LLM prompt and test file. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14189\"\u003e#14189\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⬆ [pre-commit.ci] pre-commit autoupdate. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14181\"\u003e#14181\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\u003c/ul\u003e\n\u003ch2\u003e0.119.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix internal Pydantic v1 compatibility (warnings) for Python 3.14 and Pydantic 2.12.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14186\"\u003e#14186\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📝 Replace \u003ccode\u003estarlette.io\u003c/code\u003e by \u003ccode\u003estarlette.dev\u003c/code\u003e and \u003ccode\u003euvicorn.org\u003c/code\u003e by \u003ccode\u003euvicorn.dev\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14176\"\u003e#14176\u003c/a\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\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🔧 Add sponsor Requestly. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14205\"\u003e#14205\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🔧 Configure reminder for \u003ccode\u003ewaiting\u003c/code\u003e label in \u003ccode\u003eissue-manager\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14156\"\u003e#14156\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.119.0\u003c/h2\u003e\n\u003cp\u003eFastAPI now (temporarily) supports both Pydantic v2 models and \u003ccode\u003epydantic.v1\u003c/code\u003e models at the same time in the same app, to make it easier for any FastAPI apps still using Pydantic v1 to gradually but quickly \u003cstrong\u003emigrate to Pydantic v2\u003c/strong\u003e.\u003c/p\u003e\n\u003cpre lang=\"Python\"\u003e\u003ccode\u003efrom fastapi import FastAPI\nfrom pydantic import BaseModel as BaseModelV2\nfrom pydantic.v1 import BaseModel\n\u003cp\u003eclass Item(BaseModel):\nname: str\ndescription: str | None = None\u003c/p\u003e\n\u003cp\u003eclass ItemV2(BaseModelV2):\ntitle: str\nsummary: str | None = None\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\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/cd40c5b40ffd8ba0c6a6a6c96bbf34ec1cf9c525\"\u003e\u003ccode\u003ecd40c5b\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.120.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1c6ee57bbfeebfa21a393b7939c85d9d4d29f0b0\"\u003e\u003ccode\u003e1c6ee57\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/09f40968cb03e878aa25bc83340f891b09d1e418\"\u003e\u003ccode\u003e09f4096\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d390f2e41fb508de416071d481937bc7be486589\"\u003e\u003ccode\u003ed390f2e\u003c/code\u003e\u003c/a\u003e ➕ Migrate internal reference documentation from \u003ccode\u003etyping_extensions.Doc\u003c/code\u003e to `a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cb7018d782c88b189f11d6141c8231ffb9b403b0\"\u003e\u003ccode\u003ecb7018d\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/a578ea1fd3f0b4918a4a530b85955f9b99db5a3d\"\u003e\u003ccode\u003ea578ea1\u003c/code\u003e\u003c/a\u003e 🛠️ Update German LLM prompt and test file (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14189\"\u003e#14189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9c912d1dd6929795c070cd00f4ee92eefce21559\"\u003e\u003ccode\u003e9c912d1\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/da011f212a27652c31de8a7fda2ce8872f845e27\"\u003e\u003ccode\u003eda011f2\u003c/code\u003e\u003c/a\u003e ⬆ [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14181\"\u003e#14181\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/046d49b5a9ab1113a1dccf6767ab7def7ec35349\"\u003e\u003ccode\u003e046d49b\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/847280450a0e2b6d82f4e912978cbc6e46535e9b\"\u003e\u003ccode\u003e8472804\u003c/code\u003e\u003c/a\u003e 🌐 Sync German docs (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14188\"\u003e#14188\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.115.0...0.120.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn[standard]` from 0.32.0 to 0.38.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[standard]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.38.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 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/2723\"\u003eKludex/uvicorn#2723\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NGANAMODEIJunior\"\u003e\u003ccode\u003e@​NGANAMODEIJunior\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2713\"\u003eKludex/uvicorn#2713\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.37.0...0.38.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.37.0...0.38.0\u003c/a\u003e\u003c/p\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\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[standard]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.38.0 (October 18, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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\u003ch2\u003e0.34.2 (April 19, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFlush stdout buffer on Windows to trigger reload (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2604\"\u003e#2604\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.34.1 (April 13, 2025)\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/Kludex/uvicorn/commit/3850ad6520cafb290bd4174fa9c4ca5d33440c82\"\u003e\u003ccode\u003e3850ad6\u003c/code\u003e\u003c/a\u003e Version 0.38.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2733\"\u003e#2733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9b3f17a549ec96f57bf4d975145fc58feefdd4e8\"\u003e\u003ccode\u003e9b3f17a\u003c/code\u003e\u003c/a\u003e Support Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/ce79f95d065c053b36449f67b3b2cefee5ecf167\"\u003e\u003ccode\u003ece79f95\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Add Marcelo Trylesinski to the license (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2699\"\u003e#2699\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2730\"\u003e#2730\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/dbf8797b47c79da542f530f2143b8e851e2388fd\"\u003e\u003ccode\u003edbf8797\u003c/code\u003e\u003c/a\u003e docs: add social icons (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2728\"\u003e#2728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/58f28be98eb95c8cf25905df10997b4af81c23e3\"\u003e\u003ccode\u003e58f28be\u003c/code\u003e\u003c/a\u003e Add section about event loop (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2725\"\u003e#2725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/93d95107490d5ea3693601388d7783c450058271\"\u003e\u003ccode\u003e93d9510\u003c/code\u003e\u003c/a\u003e Bump docs dependencies (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2724\"\u003e#2724\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9b1c6c45ed7fe8bd485ddad475f0feff03971af7\"\u003e\u003ccode\u003e9b1c6c4\u003c/code\u003e\u003c/a\u003e Move Marcelo Trylesinski to maintainers in \u003ccode\u003epyproject.toml\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2719\"\u003e#2719\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/57a61d86f2f123b1d35b9ff71e0f29d22d10806f\"\u003e\u003ccode\u003e57a61d8\u003c/code\u003e\u003c/a\u003e Add discord to README (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2718\"\u003e#2718\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7ef5f9f5e7e79887b4ab4214c15ab5a9ce63e193\"\u003e\u003ccode\u003e7ef5f9f\u003c/code\u003e\u003c/a\u003e chore(deps): bump astral-sh/setup-uv from 6.7.0 to 6.8.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2717\"\u003e#2717\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/6d26d88970379cbf20b4dbf4f70e27f191db4ede\"\u003e\u003ccode\u003e6d26d88\u003c/code\u003e\u003c/a\u003e Update pyproject.toml for PEP639 compliance (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2713\"\u003e#2713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.32.0...0.38.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.9.2 to 2.12.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.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRaise a warning when an invalid after model validator function signature is raised 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/12414\"\u003e#12414\u003c/a\u003e.\nStarting in 2.12.0, using class methods for \u003cem\u003eafter\u003c/em\u003e model validators raised an error, but the error wasn't raised concistently. We decided to emit a deprecation warning instead.\u003c/li\u003e\n\u003cli\u003eAdd \u003ca href=\"https://docs.pydantic.dev/latest/api/fields/#pydantic.fields.FieldInfo.asdict\"\u003e\u003ccode\u003eFieldInfo.asdict()\u003c/code\u003e\u003c/a\u003e method, improve documentation around \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/12411\"\u003e#12411\u003c/a\u003e.\nThis also adds back support for mutations on \u003ccode\u003eFieldInfo\u003c/code\u003e classes, that are reused as \u003ccode\u003eAnnotated\u003c/code\u003e metadata. \u003cstrong\u003eHowever\u003c/strong\u003e, note that this is still \u003cem\u003enot\u003c/em\u003e a supported pattern. Instead, please refer to the \u003ca href=\"https://docs.pydantic.dev/latest/examples/dynamic_models/\"\u003eadded example\u003c/a\u003e in the documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-12-release#changes\"\u003eblog post\u003c/a\u003e section on changes was also updated to document the changes related to \u003ccode\u003eserialize_as_any\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.2...v2.12.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.2...v2.12.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.2 2025-10-14\u003c/h2\u003e\n\u003ch2\u003ev2.12.2 (2025-10-14)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eRelease a new \u003ccode\u003epydantic-core\u003c/code\u003e version, as a corrupted CPython 3.10 \u003ccode\u003emanylinux2014_aarch64\u003c/code\u003e wheel got uploaded (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1843\"\u003epydantic-core#1843\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with recursive generic models with a parent model class 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/12398\"\u003e#12398\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.1...v2.12.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.1...v2.12.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.1 2025-10-13\u003c/h2\u003e\n\u003ch2\u003ev2.12.1 (2025-10-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the first 2.12 patch release, addressing most (but not all yet) regressions from the initial 2.12.0 release.\u003c/p\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDo not evaluate annotations when inspecting validators and serializers 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/12355\"\u003e#12355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake sure \u003ccode\u003eNone\u003c/code\u003e is converted as \u003ccode\u003eNoneType\u003c/code\u003e in Python 3.14 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/12370\"\u003e#12370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBackport V1 runtime warning when using Python 3.14 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/12367\"\u003e#12367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix error message for invalid validator signatures 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/12366\"\u003e#12366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePopulate field name in \u003ccode\u003eValidationInfo\u003c/code\u003e for validation of default value 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/1826\"\u003epydantic-core#1826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEncode credentials in \u003ccode\u003eMultiHostUrl\u003c/code\u003e builder by \u003ca href=\"https://github.com/willswire\"\u003e\u003ccode\u003e@​willswire\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1829\"\u003epydantic-core#1829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect field serializers when using \u003ccode\u003eserialize_as_any\u003c/code\u003e serialization flag 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/1829\"\u003epydantic-core#1829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix various \u003ccode\u003eRootModel\u003c/code\u003e serialization issues 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/1836\"\u003epydantic-core#1836\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\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/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.12 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported\n\u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRaise a warning when an invalid after model validator function signature is raised 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/12414\"\u003e#12414\u003c/a\u003e.\nStarting in 2.12.0, using class methods for \u003cem\u003eafter\u003c/em\u003e model validators raised an error, but the error wasn't raised concistently. We decided\nto emit a deprecation warning instead.\u003c/li\u003e\n\u003cli\u003eAdd \u003ca href=\"https://docs.pydantic.dev/latest/api/fields/#pydantic.fields.FieldInfo.asdict\"\u003e\u003ccode\u003eFieldInfo.asdict()\u003c/code\u003e\u003c/a\u003e method, improve documentation around \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/12411\"\u003e#12411\u003c/a\u003e.\nThis also add back support for mutations on \u003ccode\u003eFieldInfo\u003c/code\u003e classes, that are reused as \u003ccode\u003eAnnotated\u003c/code\u003e metadata. \u003cstrong\u003eHowever\u003c/strong\u003e, note that this is still\n\u003cem\u003enot\u003c/em\u003e a supported pattern. Instead, please refer to the \u003ca href=\"https://docs.pydantic.dev/latest/examples/dynamic_models/\"\u003eadded example\u003c/a\u003e in the documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-12-release#changes\"\u003eblog post\u003c/a\u003e section on changes was also updated to document the changes related to \u003ccode\u003eserialize_as_any\u003c/code\u003e.\u003c/p\u003e\n\u003ch2\u003ev2.12.2 (2025-10-14)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.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\u003eRelease a new \u003ccode\u003epydantic-core\u003c/code\u003e version, as a corrupted CPython 3.10 \u003ccode\u003emanylinux2014_aarch64\u003c/code\u003e wheel got uploaded (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1843\"\u003epydantic-core#1843\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix issue with recursive generic models with a parent model class 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/12398\"\u003e#12398\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.1 (2025-10-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the first 2.12 patch release, addressing most (but not all yet) regressions from the initial 2.12.0 release.\u003c/p\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDo not evaluate annotations when inspecting validators and serializers 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/12355\"\u003e#12355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake sure \u003ccode\u003eNone\u003c/code\u003e is converted as \u003ccode\u003eNoneType\u003c/code\u003e in Python 3.14 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/12370\"\u003e#12370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBackport V1 runtime warning when using Python 3.14 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/12367\"\u003e#12367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix error message for invalid validator signatures 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/12366\"\u003e#12366\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePopulate field name in \u003ccode\u003eValidationInfo\u003c/code\u003e for validation of default value 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/1826\"\u003epydantic-core#1826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEncode credentials in \u003ccode\u003eMultiHostUrl\u003c/code\u003e builder by \u003ca href=\"https://github.com/willswire\"\u003e\u003ccode\u003e@​willswire\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1829\"\u003epydantic-core#1829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRespect field serializers when using \u003ccode\u003eserialize_as_any\u003c/code\u003e serialization flag 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/1829\"\u003epydantic-core#1829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix various \u003ccode\u003eRootModel\u003c/code\u003e serialization issues 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/1836\"\u003epydantic-core#1836\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\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/pydantic/pydantic/commit/1a8850d101e67d2744ba8c6286e1172d7cd89d0b\"\u003e\u003ccode\u003e1a8850d\u003c/code\u003e\u003c/a\u003e Prepare release 2.12.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/09dbcf29c73c3fd7fd3ef1edfebe357e807cc9ca\"\u003e\u003ccode\u003e09dbcf2\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eFieldInfo.asdict()\u003c/code\u003e method, improve documentation around \u003ccode\u003eFieldInfo\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5da43310ec61a7b9b3017b2b9f388e778398a1bc\"\u003e\u003ccode\u003e5da4331\u003c/code\u003e\u003c/a\u003e Improve documentation about serialize as any behavior\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/9c863245ad3799ab331f33b52e2d7441e9c1191e\"\u003e\u003ccode\u003e9c86324\u003c/code\u003e\u003c/a\u003e Raise a warning when an invalid after model validator function signature is r...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/36a73c6ed53df7f1cad3343bc811e1dd3f52d26f\"\u003e\u003ccode\u003e36a73c6\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003epydantic-extra-types\u003c/code\u003e dependency to version \u003ccode\u003e\u0026gt;=2.10.6\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1e616a3a6fa0201f840c08143cac883e56a2d9df\"\u003e\u003ccode\u003e1e616a3\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/dc302e2d09f0eed14729f69bc61a258f1f35d35c\"\u003e\u003ccode\u003edc302e2\u003c/code\u003e\u003c/a\u003e Fix issue with recursive generic models with a parent model class\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/6876485d0cffeb66c915695574344ae4b03645a7\"\u003e\u003ccode\u003e6876485\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epydantic-core\u003c/code\u003e to v2.41.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b4076c66773b514d4891f036a4cc562b8ff0ff21\"\u003e\u003ccode\u003eb4076c6\u003c/code\u003e\u003c/a\u003e Prepare release 2.12.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b67f07291167b4005a6eeee05fcad67b43a53f41\"\u003e\u003ccode\u003eb67f072\u003c/code\u003e\u003c/a\u003e Bump \u003ccode\u003epydantic-core\u003c/code\u003e to v2.41.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.9.2...v2.12.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.6.0 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.6.0...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.36 to 2.0.44\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.44\u003c/h1\u003e\n\u003cp\u003eReleased: October 10, 2025\u003c/p\u003e\n\u003ch2\u003eplatform\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[platform] [bug]\u003c/strong\u003e Unblocked automatic greenlet installation for Python 3.14 now that\nthere are greenlet wheels on pypi for python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [usecase]\u003c/strong\u003e The way ORM Annotated Declarative interprets Python \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e type aliases\nin \u003ccode\u003eMapped[]\u003c/code\u003e annotations has been refined to expand the lookup scheme. A\n\u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e type can now be resolved based on either its direct presence in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e or its immediate resolved\nvalue, as long as a recursive lookup across multiple \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e types is\nnot required for it to resolve. This change reverses part of the\nrestrictions introduced in 2.0.37 as part of \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/11955\"\u003e#11955\u003c/a\u003e, which\ndeprecated (and disallowed in 2.1) the ability to resolve any \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e\ntype that was not explicitly present in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e. Recursive lookups of\n\u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e types remains deprecated in 2.0 and disallowed in version 2.1,\nas do implicit lookups of \u003ccode\u003eNewType\u003c/code\u003e types without an entry in\n\u003ccode\u003e_orm.registry.type_annotation_map\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eAdditionally, new support has been added for generic \u003ca href=\"https://peps.python.org/pep-0695\"\u003ePEP 695\u003c/a\u003e aliases that\nrefer to \u003ca href=\"https://peps.python.org/pep-0593\"\u003ePEP 593\u003c/a\u003e \u003ccode\u003eAnnotated\u003c/code\u003e constructs containing\n\u003ccode\u003e_orm.mapped_column()\u003c/code\u003e configurations. See the sections below for\nexamples.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12829\"\u003e#12829\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed a caching issue where \u003ccode\u003e_orm.with_loader_criteria()\u003c/code\u003e would\nincorrectly reuse cached bound parameter values when used with\n\u003ccode\u003e_sql.CompoundSelect\u003c/code\u003e constructs such as \u003ccode\u003e_sql.union()\u003c/code\u003e. The\nissue was caused by the cache key for compound selects not including the\nexecution options that are part of the \u003ccode\u003e_sql.Executable\u003c/code\u003e base class,\nwhich \u003ccode\u003e_orm.with_loader_criteria()\u003c/code\u003e uses to apply its criteria\ndynamically. The fix ensures that compound selects and other executable\nconstructs properly include execution options in their cache key traversal.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/12905\"\u003e#12905\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\u003cstrong\u003e[engine] [bug]\u003c/strong\u003e Implemented initial support for free-threaded Python by adding new tests\nand reworking the test harness to include Python 3.13t and Python 3.14t in\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 `alembic` from 1.13.3 to 1.17.0\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.17.0\u003c/h1\u003e\n\u003cp\u003eReleased: October 11, 2025\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[change] [tests]\u003c/strong\u003e The top-level test runner has been changed to use \u003ccode\u003enox\u003c/code\u003e, adding a\n\u003ccode\u003enoxfile.py\u003c/code\u003e as well as some included modules.   The \u003ccode\u003etox.ini\u003c/code\u003e file\nremains in place so that \u003ccode\u003etox\u003c/code\u003e runs will continue to function in the near\nterm, however it will be eventually removed and improvements and\nmaintenance going forward will be only towards \u003ccode\u003enoxfile.py\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[change] [general]\u003c/strong\u003e The minimum Python version is now 3.10, as Python 3.9 is EOL.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\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\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 `psycopg2-binary` 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-binary'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\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 `opencv-python-headless` from 4.10.0.84 to 4.12.0.88\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/opencv/opencv-python/releases\"\u003eopencv-python-headless's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.12.0.88\u003c/h2\u003e\n\u003cp\u003eComplete OpenCV 4.12.0 changelog: \u003ca href=\"https://github.com/opencv/opencv/wiki/OpenCV-Change-Logs#version4120\"\u003ehttps://github.com/opencv/opencv/wiki/OpenCV-Change-Logs#version4120\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePython:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded libavif to the package and corresponding image format support on Linux and Mac OS. Windows is in progress.\u003c/li\u003e\n\u003cli\u003eEnabled GIF support by default.\u003c/li\u003e\n\u003cli\u003eUpdated Numpy dependency rules. Packages for Python 3.9+ are built with Numpy 2.x. Packages for older Python version are built with Numpy 1.x.\u003c/li\u003e\n\u003cli\u003eImproved libjpeg-turbo performance in Windows builds (added NASM and assembly branches).\u003c/li\u003e\n\u003cli\u003eMade DNN, FLANN, G-API modules optional during the package build (bindings generation and typing).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.11.0.86\u003c/h2\u003e\n\u003cp\u003eComplete OpenCV 4.11.0 changelog: \u003ca href=\"https://github.com/opencv/opencv/wiki/OpenCV-Change-Logs#version4110\"\u003ehttps://github.com/opencv/opencv/wiki/OpenCV-Change-Logs#version4110\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePython:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded Python 3.13 support\u003c/li\u003e\n\u003cli\u003eFixed build with Python 3.12\u003c/li\u003e\n\u003cli\u003eFixed confg path for the case when Python Limited API is disabled\u003c/li\u003e\n\u003cli\u003eFixed build with system wide CMake, if CMake is not available with pip\u003c/li\u003e\n\u003cli\u003eEnabled all jpeg-turbo optimizations on Windows (assembler)\u003c/li\u003e\n\u003cli\u003eSplit Python type stubs per-module to allow modules list customization\u003c/li\u003e\n\u003cli\u003eMinimal Mac OS raised to 13.0.\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\u003eSee full diff in \u003ca href=\"https://github.com/opencv/opencv-python/commits\"\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.12 to 0.0.20\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.20\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle messages containing only end boundary, fixes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/38\"\u003e#38\u003c/a\u003e 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/142\"\u003eKludex/python-multipart#142\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/Mr-Sunglasses\"\u003e\u003ccode\u003e@​Mr-Sunglasses\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/185\"\u003eKludex/python-multipart#185\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.19...0.0.20\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.19...0.0.20\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.19\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDon't warn when CRLF is found after last 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/193\"\u003eKludex/python-multipart#193\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/python-multipart/compare/0.0.18...0.0.19\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.18...0.0.19\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.18\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHard break if found data after last boundary on \u003ccode\u003eMultipartParser\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/189\"\u003eKludex/python-multipart#189\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/python-multipart/compare/0.0.17...0.0.18\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.17...0.0.18\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.17\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle PermissionError in fallback code for old import name by \u003ca href=\"https://github.com/defnull\"\u003e\u003ccode\u003e@​defnull\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/182\"\u003eKludex/python-multipart#182\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/python-multipart/compare/0.0.16...0.0.17\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.16...0.0.17\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd dunder attributes to \u003ccode\u003emultipart\u003c/code\u003e package 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/177\"\u003eKludex/python-multipart#177\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/python-multipart/compare/0.0.15...0.0.16\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.15...0.0.16\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.15\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace \u003ccode\u003eFutureWarning\u003c/code\u003e to \u003ccode\u003ePendingDeprecationWarning\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/174\"\u003e#174\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd missing files to SDist \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/171\"\u003e#171\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\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/master/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.20 (2024-12-16)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle messages containing only end boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/142\"\u003e#142\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.19 (2024-11-30)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDon't warn when CRLF is found after last boundary on \u003ccode\u003eMultipartParser\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/193\"\u003e#193\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.18 (2024-11-28)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHard break if found data after last boundary on \u003ccode\u003eMultipartParser\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/189\"\u003e#189\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.17 (2024-10-31)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle PermissionError in fallback code for old import name \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/182\"\u003e#182\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.16 (2024-10-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd dunder attributes to \u003ccode\u003emultipart\u003c/code\u003e package \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/177\"\u003e#177\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.15 (2024-10-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace \u003ccode\u003eFutureWarning\u003c/code\u003e to \u003ccode\u003ePendingDeprecationWarning\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/174\"\u003e#174\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd missing files to SDist \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/171\"\u003e#171\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.14 (2024-10-24)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix import scheme for \u003ccode\u003emultipart\u003c/code\u003e module (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/168\"\u003e#168\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.13 (2024-10-20)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename import to \u003ccode\u003epython_multipart\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/166\"\u003e#166\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/b083cef4d6c68cf036bae1d9c68a986c6e1e3cc4\"\u003e\u003ccode\u003eb083cef\u003c/code\u003e\u003c/a\u003e Version 0.0.20 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/197\"\u003e#197\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/04d3cf5ef58c8ac8d28d36ea410fba131f5eff3f\"\u003e\u003ccode\u003e04d3cf5\u003c/code\u003e\u003c/a\u003e Handle messages containing only end boundary, fixes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/38\"\u003e#38\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/142\"\u003e#142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/f1c5a2821b24786f418ae535aa2fbb5ae4c60d6c\"\u003e\u003ccode\u003ef1c5a28\u003c/code\u003e\u003c/a\u003e feat: Add python 3.13 in CI matrix. (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/185\"\u003e#185\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/4bffa0c7c6c836ace85486b95c1e144e340059d8\"\u003e\u003ccode\u003e4bffa0c\u003c/code\u003e\u003c/a\u003e doc: A file parameter is not a field (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/127\"\u003e#127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6f3295bc79a1f8decdb23ce1720a6428908d8e33\"\u003e\u003ccode\u003e6f3295b\u003c/code\u003e\u003c/a\u003e Bump astral-sh/setup-uv from 3 to 4 in the github-actions group (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/194\"\u003e#194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/c4fe4d3cebc08c660e57dd709af1ffa7059b3177\"\u003e\u003ccode\u003ec4fe4d3\u003c/code\u003e\u003c/a\u003e Don't warn when CRLF is found after last boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/193\"\u003e#193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/5b1aed83adadbff1677779cd...\n\n_Description has been truncated_","html_url":"https://github.com/newwdead/CRM/pull/20","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/newwdead%2FCRM/issues/20","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/20/packages"}},{"old_version":"7.4.2","new_version":"8.2","update_type":null,"path":"/backend","pr_created_at":"2025-10-13T04:48:33.000Z","version_change":"7.4.2 → 8.2","issue":{"uuid":"3508445785","node_id":"PR_kwDOPWLP8s6tYMBm","number":87,"state":"open","title":"chore(deps): bump qrcode from 7.4.2 to 8.2 in /backend","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":"2025-10-13T04:48:33.000Z","updated_at":"2025-10-19T20:54:26.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"qrcode","old_version":"7.4.2","new_version":"8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps [qrcode](https://github.com/lincolnloop/python-qrcode) from 7.4.2 to 8.2.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lincolnloop/python-qrcode/blob/main/CHANGES.rst\"\u003eqrcode's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2 (01 May 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize QRColorMask apply_mask method for enhanced performance\u003c/li\u003e\n\u003cli\u003eFix typos on StyledPilImage embeded_* parameters.\nThe old parameters with the typos are still accepted\nfor backward compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1 (02 April 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0 (27 September 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.11 and 3.12.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python \u0026lt;=3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange local development setup to use Poetry_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTestsuite and code quality checks are done through Github Actions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCode quality and formatting utilises ruff_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003etyping_extensions\u003c/code\u003e as a dependency, as it's no longer required\nwith having Python 3.9+ as a requirement.\nhaving Python 3.9+ as a requirement.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOnly allow high error correction rate (\u003ccode\u003eqrcode.ERROR_CORRECT_H\u003c/code\u003e)\nwhen generating\nQR codes with embedded images to ensure content is readable\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _Poetry: \u003ca href=\"https://python-poetry.org\"\u003ehttps://python-poetry.org\u003c/a\u003e\n.. _ruff: \u003ca href=\"https://astral.sh/ruff\"\u003ehttps://astral.sh/ruff\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/lincolnloop/python-qrcode/commit/3704f57a1107dbf553a50f5b531da3859abe19cf\"\u003e\u003ccode\u003e3704f57\u003c/code\u003e\u003c/a\u003e Preparing release 8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/b593a2b86d8f9cd1bc24cc5623ee47cf1aa076b5\"\u003e\u003ccode\u003eb593a2b\u003c/code\u003e\u003c/a\u003e Fix embeded_* typo on paremeters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/d2674f83092d3573e164bb83468e51f59c85bf50\"\u003e\u003ccode\u003ed2674f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/383\"\u003e#383\u003c/a\u003e from btimby/spelling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/2ced7b4b38ea3132793723bbab588d5676fc8bc7\"\u003e\u003ccode\u003e2ced7b4\u003c/code\u003e\u003c/a\u003e Ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/c5e3f0180e025d9c0fd6adf8ed3c9998073c6137\"\u003e\u003ccode\u003ec5e3f01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/372\"\u003e#372\u003c/a\u003e from smalyu/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/cd3cd7bf87fc81860481902ca22d5b7463332b4b\"\u003e\u003ccode\u003ecd3cd7b\u003c/code\u003e\u003c/a\u003e Release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/5dcf89c56417ad37de8dba953f974324ae7b9271\"\u003e\u003ccode\u003e5dcf89c\u003c/code\u003e\u003c/a\u003e Preparing release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/10da1ba2c95886312097608bd4632ba34765e0e0\"\u003e\u003ccode\u003e10da1ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/386\"\u003e#386\u003c/a\u003e from hugovk/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/7cb996d04c6536a2dbf84cccf9fc471a200f0072\"\u003e\u003ccode\u003e7cb996d\u003c/code\u003e\u003c/a\u003e Upgrade Python syntax with pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/dc4831bde0c432e5d878b75818af38e9dc80cc87\"\u003e\u003ccode\u003edc4831b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lincolnloop/python-qrcode/compare/v7.4.2...v8.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=qrcode\u0026package-manager=pip\u0026previous-version=7.4.2\u0026new-version=8.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/Hanalyx/OpenWatch/pull/87","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Hanalyx%2FOpenWatch/issues/87","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/87/packages"}},{"old_version":"==7.4.*","new_version":"==8.2","update_type":null,"path":null,"pr_created_at":"2025-10-08T12:11:51.000Z","version_change":"==7.4.* → ==8.2","issue":{"uuid":"2897227159","node_id":"PR_kwDOA7w_yM6ssC2X","number":973,"state":"closed","title":"chore(deps): update qrcode requirement from ==7.4.* to ==8.2","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-10-08T12:49:48.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-10-08T12:11:51.000Z","updated_at":"2025-10-08T12:49:48.000Z","time_to_close":2277,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): update","packages":[{"name":"qrcode","old_version":"==7.4.*","new_version":"==8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [qrcode](https://github.com/lincolnloop/python-qrcode) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lincolnloop/python-qrcode/blob/main/CHANGES.rst\"\u003eqrcode's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2 (01 May 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize QRColorMask apply_mask method for enhanced performance\u003c/li\u003e\n\u003cli\u003eFix typos on StyledPilImage embeded_* parameters.\nThe old parameters with the typos are still accepted\nfor backward compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1 (02 April 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0 (27 September 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.11 and 3.12.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python \u0026lt;=3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange local development setup to use Poetry_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTestsuite and code quality checks are done through Github Actions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCode quality and formatting utilises ruff_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003etyping_extensions\u003c/code\u003e as a dependency, as it's no longer required\nwith having Python 3.9+ as a requirement.\nhaving Python 3.9+ as a requirement.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOnly allow high error correction rate (\u003ccode\u003eqrcode.ERROR_CORRECT_H\u003c/code\u003e)\nwhen generating\nQR codes with embedded images to ensure content is readable\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _Poetry: \u003ca href=\"https://python-poetry.org\"\u003ehttps://python-poetry.org\u003c/a\u003e\n.. _ruff: \u003ca href=\"https://astral.sh/ruff\"\u003ehttps://astral.sh/ruff\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.4.2 (6 February 2023)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAllow \u003ccode\u003epypng\u003c/code\u003e factory to allow for saving to a string (like\n\u003ccode\u003eqr.save(\u0026quot;some_file.png\u0026quot;)\u003c/code\u003e) in addition to file-like objects.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.4.1 (3 February 2023)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix bad over-optimization in v7.4 that broke large QR codes. Thanks to\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/lincolnloop/python-qrcode/commit/3704f57a1107dbf553a50f5b531da3859abe19cf\"\u003e\u003ccode\u003e3704f57\u003c/code\u003e\u003c/a\u003e Preparing release 8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/b593a2b86d8f9cd1bc24cc5623ee47cf1aa076b5\"\u003e\u003ccode\u003eb593a2b\u003c/code\u003e\u003c/a\u003e Fix embeded_* typo on paremeters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/d2674f83092d3573e164bb83468e51f59c85bf50\"\u003e\u003ccode\u003ed2674f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/383\"\u003e#383\u003c/a\u003e from btimby/spelling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/2ced7b4b38ea3132793723bbab588d5676fc8bc7\"\u003e\u003ccode\u003e2ced7b4\u003c/code\u003e\u003c/a\u003e Ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/c5e3f0180e025d9c0fd6adf8ed3c9998073c6137\"\u003e\u003ccode\u003ec5e3f01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/372\"\u003e#372\u003c/a\u003e from smalyu/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/cd3cd7bf87fc81860481902ca22d5b7463332b4b\"\u003e\u003ccode\u003ecd3cd7b\u003c/code\u003e\u003c/a\u003e Release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/5dcf89c56417ad37de8dba953f974324ae7b9271\"\u003e\u003ccode\u003e5dcf89c\u003c/code\u003e\u003c/a\u003e Preparing release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/10da1ba2c95886312097608bd4632ba34765e0e0\"\u003e\u003ccode\u003e10da1ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/386\"\u003e#386\u003c/a\u003e from hugovk/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/7cb996d04c6536a2dbf84cccf9fc471a200f0072\"\u003e\u003ccode\u003e7cb996d\u003c/code\u003e\u003c/a\u003e Upgrade Python syntax with pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/dc4831bde0c432e5d878b75818af38e9dc80cc87\"\u003e\u003ccode\u003edc4831b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lincolnloop/python-qrcode/compare/v7.4...v8.2\"\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 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/fossasia/eventyay-tickets/pull/973","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/fossasia%2Feventyay-tickets/issues/973","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/973/packages"}},{"old_version":"7.4.2","new_version":"8.2","update_type":null,"path":null,"pr_created_at":"2025-09-27T06:19:21.000Z","version_change":"7.4.2 → 8.2","issue":{"uuid":"3459843451","node_id":"PR_kwDOEB4avM6q1chY","number":664,"state":"open","title":"Bump the all-dependencies group across 1 directory with 14 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-27T06:19:21.000Z","updated_at":"2025-09-27T18:03:09.626Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-dependencies","update_count":14,"packages":[{"name":"botocore","old_version":"1.40.31","new_version":"1.40.40","repository_url":"https://github.com/boto/botocore"},{"name":"cython","old_version":"3.1.3","new_version":"3.1.4","repository_url":"https://github.com/cython/cython"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.0","repository_url":"https://github.com/jazzband/django-two-factor-auth"},{"name":"prometheus-client","old_version":"0.22.1","new_version":"0.23.1","repository_url":"https://github.com/prometheus/client_python"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/giampaolo/psutil"},{"name":"sentry-sdk","old_version":"2.38.0","new_version":"2.39.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"coverage","old_version":"7.10.6","new_version":"7.10.7","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"djangorestframework-stubs","old_version":"3.16.2","new_version":"3.16.3","repository_url":"https://github.com/typeddjango/djangorestframework-stubs"},{"name":"mypy","old_version":"1.18.1","new_version":"1.18.2","repository_url":"https://github.com/python/mypy"},{"name":"ruff","old_version":"0.13.0","new_version":"0.13.2","repository_url":"https://github.com/astral-sh/ruff"},{"name":"asgiref","old_version":"3.9.1","new_version":"3.9.2","repository_url":"https://github.com/django/asgiref"},{"name":"boto3","old_version":"1.40.31","new_version":"1.40.40","repository_url":"https://github.com/boto/boto3"},{"name":"pyyaml","old_version":"6.0.2","new_version":"6.0.3","repository_url":"https://github.com/yaml/pyyaml"},{"name":"qrcode","old_version":"7.4.2","new_version":"8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-dependencies group with 14 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [botocore](https://github.com/boto/botocore) | `1.40.31` | `1.40.40` |\n| [cython](https://github.com/cython/cython) | `3.1.3` | `3.1.4` |\n| [django-two-factor-auth](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.0` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.1` | `0.23.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.38.0` | `2.39.0` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.10.6` | `7.10.7` |\n| [djangorestframework-stubs](https://github.com/typeddjango/djangorestframework-stubs) | `3.16.2` | `3.16.3` |\n| [mypy](https://github.com/python/mypy) | `1.18.1` | `1.18.2` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.13.0` | `0.13.2` |\n| [asgiref](https://github.com/django/asgiref) | `3.9.1` | `3.9.2` |\n| [boto3](https://github.com/boto/boto3) | `1.40.31` | `1.40.40` |\n| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |\n| [qrcode](https://github.com/lincolnloop/python-qrcode) | `7.4.2` | `8.2` |\n\n\nUpdates `botocore` from 1.40.31 to 1.40.40\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/dc5ce63e11ad7bea6673caece94030d7be1bb65a\"\u003e\u003ccode\u003edc5ce63\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.40'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/47bf642a85b99fcccbceffe9a8176ba4e799bbfa\"\u003e\u003ccode\u003e47bf642\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.40\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/7aba801c56fd4994ae2cf101ec6ff542f6ca480d\"\u003e\u003ccode\u003e7aba801\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/c6cd61c0c49a684f720ca8f16ca87a3ed3c7a842\"\u003e\u003ccode\u003ec6cd61c\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/a50fa088011949427d58698e5407d0ac6bc336f2\"\u003e\u003ccode\u003ea50fa08\u003c/code\u003e\u003c/a\u003e Fix except block issue in s3 integ tests (\u003ca href=\"https://redirect.github.com/boto/botocore/issues/3567\"\u003e#3567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/52dfbc24ae75261706573f2953d5bb678f067164\"\u003e\u003ccode\u003e52dfbc2\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.39'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/3e17a0535d5a34b2799c9d0250881f5969725e5b\"\u003e\u003ccode\u003e3e17a05\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.39' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/ffb96fc31dc0342c4f57422b4e3afb4642b7643f\"\u003e\u003ccode\u003effb96fc\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/3c7e1aaf8f4b1c22a156d437da9d79bdc95a289e\"\u003e\u003ccode\u003e3c7e1aa\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/4ba20e8142dba092be4aac98b59a0ad17414d88a\"\u003e\u003ccode\u003e4ba20e8\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/botocore/compare/1.40.31...1.40.40\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cython` from 3.1.3 to 3.1.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/cython/cython/blob/master/CHANGES.rst\"\u003ecython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.1.4 (2025-09-16)\u003c/h1\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeclarations for the new \u003ccode\u003ePyUnstable_*()\u003c/code\u003e refcounting C-API functions in Py3.14 were added.\n(Github issue :issue:\u003ccode\u003e6836\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe monitoring code could crash on tracing.\n(Github issue :issue:\u003ccode\u003e7050\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eInitialising the monitoring code could fail with a CPython exception.\nSee \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1790#issuecomment-3257410149\"\u003enedbat/coveragepy#1790\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOptimised integer shifting triggered undefined behaviour in C.\n(Github issue :issue:\u003ccode\u003e7089\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeallocating objects that inherit from external types defined in pxd files\ncould run into an infinite loop.\n(Github issue :issue:\u003ccode\u003e7143\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eA reference to metaclasses could be leaked on instantiation.\n(Github issue :issue:\u003ccode\u003e7130\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e(Unlikely) error handling during empty builtin container tests was ineffective.\n(Github issue :issue:\u003ccode\u003e7190\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eGenerated \u003ccode\u003e*_api.h\u003c/code\u003e files used potentially unknown Cython configuration macros.\n(Github issue :issue:\u003ccode\u003e7108\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003ecythonize()\u003c/code\u003e avoids parallel compiler runs on systems using \u003ccode\u003espawn()\u003c/code\u003e in multiprocessing.\nPatch by Marcel Bargull.  (Github issue :issue:\u003ccode\u003e3262\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ccode\u003e@cython.ufunc\u003c/code\u003e  decorator was missing in type checker stubs.\nPatch by jayClean.  (Github issue :issue:\u003ccode\u003e7109\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/cython/cython/commit/236e4a3ccd24d4e24c9d7c40a8580d359663832c\"\u003e\u003ccode\u003e236e4a3\u003c/code\u003e\u003c/a\u003e Build: Update cibuildwheel version to 3.1.4.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/cb2e2a3e0ee746df3296742d4d55d0d79e0bd6f5\"\u003e\u003ccode\u003ecb2e2a3\u003c/code\u003e\u003c/a\u003e Prepare release of 3.1.4.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/4fdb99040b19270e172aba671d4a9a9ae091b872\"\u003e\u003ccode\u003e4fdb990\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/fa78291097175b9fcd32c5012bb6239bdf06e467\"\u003e\u003ccode\u003efa78291\u003c/code\u003e\u003c/a\u003e Remove confusing \u0026quot;optionally\u0026quot; from embedded docs (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7071\"\u003e#7071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/2886cd958ed0b7383ae86d59ddc74bb13e9d3336\"\u003e\u003ccode\u003e2886cd9\u003c/code\u003e\u003c/a\u003e Fix error handling in empty container test (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7096\"\u003eGH-7096\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/8993322ace48de38650efe82f6a529e72781ab19\"\u003e\u003ccode\u003e8993322\u003c/code\u003e\u003c/a\u003e Library: Add declarations for new refcounting C-API functions in Py3.14.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/dc54ef2e7aa529a9a02debb2378865475ca08ad8\"\u003e\u003ccode\u003edc54ef2\u003c/code\u003e\u003c/a\u003e Simpify some conditions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/41f985e8fbcc203f61c9b4720ee605ac582ce18b\"\u003e\u003ccode\u003e41f985e\u003c/code\u003e\u003c/a\u003e Bump OS X runner version to \u0026quot;macos-latest\u0026quot; (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7041\"\u003eGH-7041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/dd18f11f9203b68a6acba0b73c5958229c7298dc\"\u003e\u003ccode\u003edd18f11\u003c/code\u003e\u003c/a\u003e Disable parallel cythonization for \u0026quot;spawn\u0026quot; start method. (\u003ca href=\"https://redirect.github.com/cython/cython/issues/3263\"\u003eGH-3263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/be16c519e1548465836f8223ea18fb26b32df919\"\u003e\u003ccode\u003ebe16c51\u003c/code\u003e\u003c/a\u003e Fix a small typo (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7125\"\u003e#7125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/cython/cython/compare/3.1.3...3.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-two-factor-auth` from 1.17.0 to 1.18.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/django-two-factor-auth/releases\"\u003edjango-two-factor-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.18.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocumentation for setting yubikey support forgot to inform users they would\nneed to add our yubikey plugin to \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove reference to release-notes that had been missed, docs now build\nwithout warnings\u003c/li\u003e\n\u003cli\u003eWebAuthn: avoid submitting the wrong form\u003c/li\u003e\n\u003cli\u003eEmail gateway: tell user to use correct django-otp plugin\u003c/li\u003e\n\u003cli\u003eFix infinite redirect on admin site with AdminSiteOTPRequiredMixin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow qrcode 8.x.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ephonenumbers\u003c/code\u003e is no longer a hard requirement for users who don't require it.\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eEmailDevice.confirmed\u003c/code\u003e default to \u003ccode\u003eFalse\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAny \u003ccode\u003eStaticDevice\u003c/code\u003e can be used as backup tokens, not just those labelled\n\u0026quot;backup\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Django 5.2\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13\u003c/li\u003e\n\u003cli\u003eDjango check for \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e to make sure \u003ccode\u003etwo_factor\u003c/code\u003e is present and\ncomes before its plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\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/jazzband/django-two-factor-auth/blob/master/CHANGELOG.md\"\u003edjango-two-factor-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.18.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocumentation for setting yubikey support forgot to inform users they would\nneed to add our yubikey plugin to \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove reference to release-notes that had been missed, docs now build\nwithout warnings\u003c/li\u003e\n\u003cli\u003eWebAuthn: avoid submitting the wrong form\u003c/li\u003e\n\u003cli\u003eEmail gateway: tell user to use correct django-otp plugin\u003c/li\u003e\n\u003cli\u003eFix infinite redirect on admin site with AdminSiteOTPRequiredMixin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow qrcode 8.x.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ephonenumbers\u003c/code\u003e is no longer a hard requirement for users who don't require it.\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eEmailDevice.confirmed\u003c/code\u003e default to \u003ccode\u003eFalse\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAny \u003ccode\u003eStaticDevice\u003c/code\u003e can be used as backup tokens, not just those labelled\n\u0026quot;backup\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Django 5.2\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13\u003c/li\u003e\n\u003cli\u003eDjango check for \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e to make sure \u003ccode\u003etwo_factor\u003c/code\u003e is present and\ncomes before its plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\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/jazzband/django-two-factor-auth/commit/7405b6fd545ddbbd67d28292fca2c8ef6cf0de92\"\u003e\u003ccode\u003e7405b6f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/774\"\u003e#774\u003c/a\u003e from moggers87/release-1.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/b47945c8188e46ad2f64bf929c1a745682b6de15\"\u003e\u003ccode\u003eb47945c\u003c/code\u003e\u003c/a\u003e Update CHANGELOG with latest changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/b20741c609ca3fd3fe52dd3cfe1ebc3e98ce2383\"\u003e\u003ccode\u003eb20741c\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into release-1.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/966dab4c5bdf11b88e42bc820c8adea684b4e0d0\"\u003e\u003ccode\u003e966dab4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/775\"\u003e#775\u003c/a\u003e from claudep/phoneplugin2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/9c72f871f0ebd3bede20d823372b02608480c4c7\"\u003e\u003ccode\u003e9c72f87\u003c/code\u003e\u003c/a\u003e Refs \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/469\"\u003e#469\u003c/a\u003e - Only import phonenumber functions when plugin is installed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/ec0923bf400d6faf3c82acff312c1fe5add70047\"\u003e\u003ccode\u003eec0923b\u003c/code\u003e\u003c/a\u003e Pull latest translations from Transifex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/6828d0bb2ee8f5e30d2c63b552ae895b3fe313b0\"\u003e\u003ccode\u003e6828d0b\u003c/code\u003e\u003c/a\u003e Prepare 1.18.0 for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/656bf9e4471990e32f3a4ee78f610cbeb114cd16\"\u003e\u003ccode\u003e656bf9e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/773\"\u003e#773\u003c/a\u003e from jazzband/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/6ba47715c163dc82aa89c5f2f4373a361b7f9b59\"\u003e\u003ccode\u003e6ba4771\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/763\"\u003e#763\u003c/a\u003e from moggers87/647-check-installed-apps-order\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/2f50ea0fd0d73c653bb377b384dc2dd5afb387c1\"\u003e\u003ccode\u003e2f50ea0\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jazzband/django-two-factor-auth/compare/1.17.0...1.18.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-client` from 0.22.1 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prometheus/client_python/releases\"\u003eprometheus-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.23.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use tuples instead of packaging Version by \u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\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/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUTF-8 Content Negotiation by \u003ca href=\"https://github.com/ywwg\"\u003e\u003ccode\u003e@​ywwg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1102\"\u003eprometheus/client_python#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe include test data by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove parser performance by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1117\"\u003eprometheus/client_python#1117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support to \u003ccode\u003ewrite_to_textfile\u003c/code\u003e for custom tmpdir by \u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOM text exposition for NH by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1087\"\u003eprometheus/client_python#1087\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bug which caused metric publishing to not accept query string parameters in ASGI app by \u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit native histograms only when OM 2.0.0 is requested by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1128\"\u003eprometheus/client_python#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove space after comma in openmetrics exposition by \u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue parsing double spaces after # HELP/# TYPE by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1134\"\u003eprometheus/client_python#1134\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/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.22.1...v0.23.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.22.1...v0.23.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/prometheus/client_python/commit/8746c49a76a7929795fab7b593b1c44dc8c972d2\"\u003e\u003ccode\u003e8746c49\u003c/code\u003e\u003c/a\u003e Release 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/266beb2567e0040a5790836c32de5a643d5177e4\"\u003e\u003ccode\u003e266beb2\u003c/code\u003e\u003c/a\u003e fix: use tuples instead of packaging Version (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1136\"\u003e#1136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/f9471403a82de6af93feeac2d38938ca1c384b6d\"\u003e\u003ccode\u003ef947140\u003c/code\u003e\u003c/a\u003e fix: Use \u003ccode\u003easyncio.new_event_loop()\u003c/code\u003e to create event loop for tests (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1138\"\u003e#1138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/b9e78a3f701fd442f57db23701c2021a529a84c3\"\u003e\u003ccode\u003eb9e78a3\u003c/code\u003e\u003c/a\u003e Release 0.23.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/b3fbbca891a6c6d07b83a3680919956a3c3ab523\"\u003e\u003ccode\u003eb3fbbca\u003c/code\u003e\u003c/a\u003e Fix issue parsing double spaces after # HELP/# TYPE (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1134\"\u003e#1134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/47d2b416d75f5569863e2bb08a15b58218563814\"\u003e\u003ccode\u003e47d2b41\u003c/code\u003e\u003c/a\u003e Do not use global when only reading variable (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1133\"\u003e#1133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/4de31eee009a527ba7a5cda76a4aef403df7ab0d\"\u003e\u003ccode\u003e4de31ee\u003c/code\u003e\u003c/a\u003e fix: remove space after comma in openmetrics exposition (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1132\"\u003e#1132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/3586355e648f1d8a058cdb711bc2ce920ce58ca4\"\u003e\u003ccode\u003e3586355\u003c/code\u003e\u003c/a\u003e Emit native histograms only when OM 2.0.0 is requested (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1128\"\u003e#1128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/9e3eb6c7e146d8003d12e24db56f5abfcc0bbef6\"\u003e\u003ccode\u003e9e3eb6c\u003c/code\u003e\u003c/a\u003e Fix bug which caused metric publishing to not accept query string parameters ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/d358f469a7bc2480005775a9be8de30c20c88ab6\"\u003e\u003ccode\u003ed358f46\u003c/code\u003e\u003c/a\u003e Bump flake8 libraries (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1127\"\u003e#1127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.22.1...v0.23.1\"\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 `sentry-sdk` from 2.38.0 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/getsentry/sentry-python/releases\"\u003esentry-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.39.0\u003c/h2\u003e\n\u003ch3\u003eVarious fixes \u0026amp; improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix(AI): Make agents integrations set the span status in case of error (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4820\"\u003e#4820\u003c/a\u003e) by \u003ca href=\"https://github.com/antonpirker\"\u003e\u003ccode\u003e@​antonpirker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix(dedupe): Use weakref in dedupe where possible (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4834\"\u003e#4834\u003c/a\u003e) by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix(Django): Avoid evaluating complex Django object in span.data/span.attributes (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4804\"\u003e#4804\u003c/a\u003e) by \u003ca href=\"https://github.com/antonpirker\"\u003e\u003ccode\u003e@​antonpirker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix(Langchain): Don't record tool call output if not include_prompt / should_send_default_pii (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4836\"\u003e#4836\u003c/a\u003e) by \u003ca href=\"https://github.com/shellmayr\"\u003e\u003ccode\u003e@​shellmayr\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix(OpenAI): Don't swallow userland exceptions in openai (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4861\"\u003e#4861\u003c/a\u003e) by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update contributing guidelines with instructions to run tests with tox (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4857\"\u003e#4857\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest(Spark): Improve \u003ccode\u003etest_spark\u003c/code\u003e speed (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4822\"\u003e#4822\u003c/a\u003e) by \u003ca href=\"https://github.com/mgaligniana\"\u003e\u003ccode\u003e@​mgaligniana\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNote: This is my last release. So long, and thanks for all the fish! by \u003ca href=\"https://github.com/antonpirker\"\u003e\u003ccode\u003e@​antonpirker\u003c/code\u003e\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/getsentry/sentry-python/blob/master/CHANGELOG.md\"\u003esentry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.39.0\u003c/h2\u003e\n\u003ch3\u003eVarious fixes \u0026amp; improvements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix(AI): Make agents integrations set the span status in case of error (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4820\"\u003e#4820\u003c/a\u003e) by \u003ca href=\"https://github.com/antonpirker\"\u003e\u003ccode\u003e@​antonpirker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix(dedupe): Use weakref in dedupe where possible (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4834\"\u003e#4834\u003c/a\u003e) by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix(Django): Avoid evaluating complex Django object in span.data/span.attributes (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4804\"\u003e#4804\u003c/a\u003e) by \u003ca href=\"https://github.com/antonpirker\"\u003e\u003ccode\u003e@​antonpirker\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix(Langchain): Don't record tool call output if not include_prompt / should_send_default_pii (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4836\"\u003e#4836\u003c/a\u003e) by \u003ca href=\"https://github.com/shellmayr\"\u003e\u003ccode\u003e@​shellmayr\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix(OpenAI): Don't swallow userland exceptions in openai (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4861\"\u003e#4861\u003c/a\u003e) by \u003ca href=\"https://github.com/sl0thentr0py\"\u003e\u003ccode\u003e@​sl0thentr0py\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: Update contributing guidelines with instructions to run tests with tox (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4857\"\u003e#4857\u003c/a\u003e) by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest(Spark): Improve \u003ccode\u003etest_spark\u003c/code\u003e speed (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4822\"\u003e#4822\u003c/a\u003e) by \u003ca href=\"https://github.com/mgaligniana\"\u003e\u003ccode\u003e@​mgaligniana\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNote: This is my last release. So long, and thanks for all the fish! by \u003ca href=\"https://github.com/antonpirker\"\u003e\u003ccode\u003e@​antonpirker\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/getsentry/sentry-python/commit/0f99a91e7b5103382c8198a7fcae70ab2933d85d\"\u003e\u003ccode\u003e0f99a91\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/ff527644c5446674c0870cb830a122f7b8fe3ac2\"\u003e\u003ccode\u003eff52764\u003c/code\u003e\u003c/a\u003e Updated changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/01fc851b7a805816fddfd252d2cd93dfd0484b69\"\u003e\u003ccode\u003e01fc851\u003c/code\u003e\u003c/a\u003e release: 2.39.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/6325924c2b8b0e4d7facdc49dd9aa7bdade9a08c\"\u003e\u003ccode\u003e6325924\u003c/code\u003e\u003c/a\u003e Don't swallow userland exceptions in openai (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4861\"\u003e#4861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/b7780bab8e6b4e288f8782d9c8fcc9d8b9e40bad\"\u003e\u003ccode\u003eb7780ba\u003c/code\u003e\u003c/a\u003e feat(toxgen): Remove timestamp prone to merge conflicts (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4860\"\u003e#4860\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/4e1b96caa049ce3a9ec7ea0d18462337c771761a\"\u003e\u003ccode\u003e4e1b96c\u003c/code\u003e\u003c/a\u003e chore: Slim down test matrix (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4856\"\u003e#4856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/d9811feda0867beca09a4b92fc142e2ea12702bb\"\u003e\u003ccode\u003ed9811fe\u003c/code\u003e\u003c/a\u003e docs: Update contributing guidelines with instructions to run tests with tox ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/c3d367202427233757f5275271873b4f4e60a825\"\u003e\u003ccode\u003ec3d3672\u003c/code\u003e\u003c/a\u003e chore: Clean up toxgen (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4855\"\u003e#4855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/13a8ae1f6891503663a1cfc1d07e498f48bbc9f0\"\u003e\u003ccode\u003e13a8ae1\u003c/code\u003e\u003c/a\u003e feat(toxgen): Cache release data (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4835\"\u003e#4835\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/808c1805c0253fe18a21156fb57a219ef2f71acd\"\u003e\u003ccode\u003e808c180\u003c/code\u003e\u003c/a\u003e fix(AI): Make agents integrations set the span status in case of error (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/4820\"\u003e#4820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-python/compare/2.38.0...2.39.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.10.6 to 7.10.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.7 — 2025-09-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: with branch coverage in large files, generating HTML, JSON, or\nLCOV reports could take far too long due to some quadratic behavior when\ncreating the function and class index pages.  This is now fixed, closing\n\u003ccode\u003eissue 2048\u003c/code\u003e_.  Thanks to Daniel Diniz for help diagnosing the problem.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMost warnings and a few errors now have links to a page in the docs\nexplaining the specific message.  Closes \u003ccode\u003eissue 1921\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1921: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1921\"\u003enedbat/coveragepy#1921\u003c/a\u003e\n.. _issue 2048: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2048\"\u003enedbat/coveragepy#2048\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-6:\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/nedbat/coveragepy/commit/92a2af54e6bc948a9c536bd9b12bab70fb055904\"\u003e\u003ccode\u003e92a2af5\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/952afdaca658d5e1acdd533c727448a0b218caf0\"\u003e\u003ccode\u003e952afda\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a301761e69da97b27662f395974d26f78fa8b2b5\"\u003e\u003ccode\u003ea301761\u003c/code\u003e\u003c/a\u003e build: riscv64 wheels (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2055\"\u003e#2055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5daff8d38786aa540ff9bec622eb3389f117f911\"\u003e\u003ccode\u003e5daff8d\u003c/code\u003e\u003c/a\u003e docs: now source is formatted with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/04bbc3acfd914fdd99ffec9873bc03bdc7329357\"\u003e\u003ccode\u003e04bbc3a\u003c/code\u003e\u003c/a\u003e docs: discuss cog in the contributing docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/c181b9315f59a81667da47cf3d760d0253872238\"\u003e\u003ccode\u003ec181b93\u003c/code\u003e\u003c/a\u003e build: use cog --check-fail-msg to instruct devs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/33c4ba196f49e0ee86ab0ff473c0876c0bacd5fa\"\u003e\u003ccode\u003e33c4ba1\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0744b73b6b503ccf2cb75aba095c023672b921a8\"\u003e\u003ccode\u003e0744b73\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group across 1 directory with 2 updates (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0d5a112fc54c1d5a07f3f2ec451779808902c9af\"\u003e\u003ccode\u003e0d5a112\u003c/code\u003e\u003c/a\u003e perf: bulk narrowing to avoid N**2. \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2048\"\u003e#2048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a868ed9269ca474748130f5c6360cd2aae66ffc8\"\u003e\u003ccode\u003ea868ed9\u003c/code\u003e\u003c/a\u003e docs: mention Python Discord on the index page\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.10.6...7.10.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangorestframework-stubs` from 3.16.2 to 3.16.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/releases\"\u003edjangorestframework-stubs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.16.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Breaking change]\u003c/strong\u003e Remove work-around for \u003ccode\u003eModelSerializer.instance\u003c/code\u003e field for \u003ccode\u003emany=True\u003c/code\u003e by \u003ca href=\"https://github.com/JoshFerge\"\u003e\u003ccode\u003e@​JoshFerge\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/719\"\u003etypeddjango/djangorestframework-stubs#719\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe background of this change is described in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/827\"\u003etypeddjango/djangorestframework-stubs#827\u003c/a\u003e. If this change caused a regression in your use case, please comment there ➔ \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/827\"\u003etypeddjango/djangorestframework-stubs#827\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAccept lazy strings as path in \u003ccode\u003eAPIRequestFactory\u003c/code\u003e and \u003ccode\u003eAPIClient\u003c/code\u003e http methods by \u003ca href=\"https://github.com/browniebroke\"\u003e\u003ccode\u003e@​browniebroke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/825\"\u003etypeddjango/djangorestframework-stubs#825\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eHousekeeping\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove entries from allowlist to fix the stubtest CI job by \u003ca href=\"https://github.com/browniebroke\"\u003e\u003ccode\u003e@​browniebroke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/826\"\u003etypeddjango/djangorestframework-stubs#826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003e.pre-commit-config\u003c/code\u003e and \u003ccode\u003eCONTRIBUTING.MD\u003c/code\u003e to latest Python version by \u003ca href=\"https://github.com/CodingWithSaksham\"\u003e\u003ccode\u003e@​CodingWithSaksham\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/819\"\u003etypeddjango/djangorestframework-stubs#819\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion 3.16.3 release by \u003ca href=\"https://github.com/intgr\"\u003e\u003ccode\u003e@​intgr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/828\"\u003etypeddjango/djangorestframework-stubs#828\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/CodingWithSaksham\"\u003e\u003ccode\u003e@​CodingWithSaksham\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/819\"\u003etypeddjango/djangorestframework-stubs#819\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshFerge\"\u003e\u003ccode\u003e@​JoshFerge\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/719\"\u003etypeddjango/djangorestframework-stubs#719\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/compare/3.16.2...3.16.3\"\u003ehttps://github.com/typeddjango/djangorestframework-stubs/compare/3.16.2...3.16.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/typeddjango/djangorestframework-stubs/commit/fbfde22b046dcdb362c252db20339c39f03addf0\"\u003e\u003ccode\u003efbfde22\u003c/code\u003e\u003c/a\u003e Version 3.16.3 release (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/828\"\u003e#828\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/eff0fab534bdaac9b8b87199e32a5bb0ad8bcca0\"\u003e\u003ccode\u003eeff0fab\u003c/code\u003e\u003c/a\u003e [Breaking change] Remove work-around for \u003ccode\u003eModelSerializer.instance\u003c/code\u003e field for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/363c31901cac51871ae27d83186e54873181dea2\"\u003e\u003ccode\u003e363c319\u003c/code\u003e\u003c/a\u003e Bump types-pyyaml from 6.0.12.20250822 to 6.0.12.20250915 (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/824\"\u003e#824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/37b5686ed5e6a976a08a77fc6a08e4bd86dee46e\"\u003e\u003ccode\u003e37b5686\u003c/code\u003e\u003c/a\u003e Bump types-requests from 2.32.4.20250809 to 2.32.4.20250913 (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/822\"\u003e#822\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/774b0a203f43f0b23caa1c6711283e77c2452ba3\"\u003e\u003ccode\u003e774b0a2\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/823\"\u003e#823\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/4494f8253cabd2a447291a44b7462de10eea1a70\"\u003e\u003ccode\u003e4494f82\u003c/code\u003e\u003c/a\u003e Accept lazy strings as path in \u003ccode\u003eAPIRequestFactory\u003c/code\u003e and \u003ccode\u003eAPIClient\u003c/code\u003e http metho...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/56e621fd4faef40c23cfd1f9d04a936924cd5cce\"\u003e\u003ccode\u003e56e621f\u003c/code\u003e\u003c/a\u003e Remove entries from allowlist breaking the stubtest script (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/826\"\u003e#826\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/324d4cb49972198c830f2450d935f1432a0c2b73\"\u003e\u003ccode\u003e324d4cb\u003c/code\u003e\u003c/a\u003e Update mypy requirement from \u0026lt;1.18,\u0026gt;=1.13 to \u0026gt;=1.13,\u0026lt;1.19 (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/821\"\u003e#821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/48152ecf026e83e16b1c8a004466fc8e3aa27add\"\u003e\u003ccode\u003e48152ec\u003c/code\u003e\u003c/a\u003e Updated \u003ccode\u003e.pre-commit-config\u003c/code\u003e and \u003ccode\u003eCONTRIBUTING.MD\u003c/code\u003e to latest Python version (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/7cbec3a20d70a00ea03eeb3c6cff6cb3a9075bf9\"\u003e\u003ccode\u003e7cbec3a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/820\"\u003e#820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/compare/3.16.2...3.16.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.1 to 1.18.2\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\u003ch2\u003eMypy 1.18.1\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\nimprovements and bug fixes. You can install it as follows:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install -U mypy\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eYou can read the full documentation for this release on \u003ca href=\"http://mypy.readthedocs.io\"\u003eRead the Docs\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eMypy Performance Improvements\u003c/h3\u003e\n\u003cp\u003eMypy 1.18.1 includes numerous performance improvements, resulting in about 40% speedup\ncompared to 1.17 when type checking mypy itself. In extreme cases, the improvement\ncan be 10x or higher. The list below is an overview of the various mypy optimizations.\nMany mypyc improvements (discussed in a separate section below) also improve performance.\u003c/p\u003e\n\u003cp\u003eType caching optimizations have a small risk of causing regressions. When\nreporting issues with unexpected inferred types, please also check if\n\u003ccode\u003e--disable-expression-cache\u003c/code\u003e will work around the issue, as it turns off some of\nthese optimizations.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprove self check performance by 1.8% (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19768\"\u003e19768\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python/mypy/pull/19769\"\u003e19769\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python/mypy/pull/19770\"\u003e19770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize fixed-format deserialization (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19765\"\u003e19765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse macros to optimize fixed-format deserialization (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19757\"\u003e19757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTwo additional micro‑optimizations (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19627\"\u003e19627\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAnother set of micro‑optimizations (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19633\"\u003e19633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache common types (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19621\"\u003e19621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip more method bodies in third‑party libraries for speed (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19586\"\u003e19586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify the representation of callable types (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19580\"\u003e19580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd cache for types of some expressions (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19505\"\u003e19505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse cache for dictionary expressions (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19536\"\u003e19536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse cache for binary operations (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19523\"\u003e19523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache types of type objects (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19514\"\u003e19514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid duplicate work when checking boolean operations (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19515\"\u003e19515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize generic inference passes (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19501\"\u003e19501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up the default plugin (Jukka Lehtosalo, PRs \u003ca href=\"https://redirect.github.com/python/mypy/pull/19385\"\u003e19385\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python/mypy/pull/19462\"\u003e19462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove nested imports from the default plugin (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19388\"\u003e19388\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMicro‑optimize type expansion (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19461\"\u003e19461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMicro‑optimize type indirection (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19460\"\u003e19460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMicro‑optimize the plugin framework (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19464\"\u003e19464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid temporary set creation in subtype checking (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19463\"\u003e19463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSubtype checking micro‑optimization (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19384\"\u003e19384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReturn early where possible in subtype check (Stanislav Terliakov, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19400\"\u003e19400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeduplicate some types before joining (Stanislav Terliakov, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19409\"\u003e19409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up type checking by caching argument inference context (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19323\"\u003e19323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize binding method self argument type and deprecation checks (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19556\"\u003e19556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eKeep trivial instance types/aliases during expansion (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19543\"\u003e19543\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed‑Format Cache (Experimental)\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/python/mypy/commit/df05f05555ee62dbdb9960c64cad186172e92be1\"\u003e\u003ccode\u003edf05f05\u003c/code\u003e\u003c/a\u003e remove +dev from version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/01a7a1285d03cb7a330359b22cb462aacb5f9720\"\u003e\u003ccode\u003e01a7a12\u003c/code\u003e\u003c/a\u003e Update changelog for 1.18.2 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19873\"\u003e#19873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/ca5abf09f3bfc543ac9c18a364696bc5da20bc03\"\u003e\u003ccode\u003eca5abf0\u003c/code\u003e\u003c/a\u003e Typeshed cherry-pick: Make type of \u003ccode\u003eunitest.mock.Any\u003c/code\u003e a subclass of \u003ccode\u003eAny\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python/mypy/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/9d794b57d9c5b03d61caa3286756c05e0ae3021b\"\u003e\u003ccode\u003e9d794b5\u003c/code\u003e\u003c/a\u003e [mypyc] fix: inappropriate \u003ccode\u003eNone\u003c/code\u003es in f-strings (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19846\"\u003e#19846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2c0510c84868b6bb42ef0f305b701e530a85c25f\"\u003e\u003ccode\u003e2c0510c\u003c/code\u003e\u003c/a\u003e stubtest: additional guidance on errors when runtime is object.\u003cstrong\u003einit\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19733\"\u003e#19733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2f3f03c3e39e68dbfa3544c01a34f99803b3e1c2\"\u003e\u003ccode\u003e2f3f03c\u003c/code\u003e\u003c/a\u003e Bump version to 1.18.2+dev for point release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/76698412bc1f3ca99000d52649acd5a0e06aa71d\"\u003e\u003ccode\u003e7669841\u003c/code\u003e\u003c/a\u003e Fix crash on recursive alias in indirection.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19845\"\u003e#19845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.1...v1.18.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.13.0 to 0.13.2\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.13.2\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-09-25.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eblocking-path-method\u003c/code\u003e (\u003ccode\u003eASYNC240\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20264\"\u003e#20264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003emap-without-explicit-strict\u003c/code\u003e (\u003ccode\u003eB912\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20429\"\u003e#20429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bultins\u003c/code\u003e] Detect class-scope builtin shadowing in decorators, default args, and attribute initializers (\u003ccode\u003eA003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20178\"\u003e#20178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Implement \u003ccode\u003elogging-eager-conversion\u003c/code\u003e (\u003ccode\u003eRUF065\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19942\"\u003e#19942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003e.pyw\u003c/code\u003e files by default when linting and formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20458\"\u003e#20458\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeduplicate input paths (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20105\"\u003e#20105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Preserve trailing commas for single-element lists (\u003ccode\u003eC409\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19571\"\u003e#19571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Avoid syntax error from conflict with \u003ccode\u003ePIE790\u003c/code\u003e (\u003ccode\u003ePYI021\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20010\"\u003e#20010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Correct fix for positive \u003ccode\u003emaxsplit\u003c/code\u003e without separator (\u003ccode\u003eSIM905\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20056\"\u003e#20056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix \u003ccode\u003eUP008\u003c/code\u003e not to apply when \u003ccode\u003e__class__\u003c/code\u003e is a local variable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20497\"\u003e#20497\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix \u003ccode\u003eB004\u003c/code\u003e to skip invalid \u003ccode\u003ehasattr\u003c/code\u003e/\u003ccode\u003egetattr\u003c/code\u003e calls (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20486\"\u003e#20486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Replace \u003ccode\u003e-nan\u003c/code\u003e with \u003ccode\u003enan\u003c/code\u003e when using the value to construct a \u003ccode\u003eDecimal\u003c/code\u003e (\u003ccode\u003eFURB164\u003c/code\u003e ) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20391\"\u003e#20391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd 'Finding ways to help' to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20567\"\u003e#20567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate import path to \u003ccode\u003eruff-wasm-web\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20539\"\u003e#20539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Clarify the supported hashing functions (\u003ccode\u003eS324\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20534\"\u003e#20534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Allow hover quick fixes to appear for overlapping diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20527\"\u003e#20527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Fix non‑BMP code point handling in quick fixes and markers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20526\"\u003e#20526\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/BurntSushi\"\u003e\u003ccode\u003e@​BurntSushi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtshiba\"\u003e\u003ccode\u003e@​mtshiba\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/second-ed\"\u003e\u003ccode\u003e@​second-ed\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShikChen\"\u003e\u003ccode\u003e@​ShikChen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PieterCK\"\u003e\u003ccode\u003e@​PieterCK\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GDYendell\"\u003e\u003ccode\u003e@​GDYendell\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RazerM\"\u003e\u003ccode\u003e@​RazerM\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TaKO8Ki\"\u003e\u003ccode\u003e@​TaKO8Ki\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/ntBre\"\u003e\u003ccode\u003e@​ntbre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.13.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/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.13.2\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-09-25.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eblocking-path-method\u003c/code\u003e (\u003ccode\u003eASYNC240\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20264\"\u003e#20264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003emap-without-explicit-strict\u003c/code\u003e (\u003ccode\u003eB912\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20429\"\u003e#20429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bultins\u003c/code\u003e] Detect class-scope builtin shadowing in decorators, default args, and attribute initializers (\u003ccode\u003eA003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20178\"\u003e#20178\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Implement \u003ccode\u003elogging-eager-conversion\u003c/code\u003e (\u003ccode\u003eRUF065\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19942\"\u003e#19942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInclude \u003ccode\u003e.pyw\u003c/code\u003e files by default when linting and formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20458\"\u003e#20458\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeduplicate input paths (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20105\"\u003e#20105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-comprehensions\u003c/code\u003e] Preserve trailing commas for single-element lists (\u003ccode\u003eC409\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19571\"\u003e#19571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Avoid syntax error from conflict with \u003ccode\u003ePIE790\u003c/code\u003e (\u003ccode\u003ePYI021\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20010\"\u003e#20010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Correct fix for positive \u003ccode\u003emaxsplit\u003c/code\u003e without separator (\u003ccode\u003eSIM905\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20056\"\u003e#20056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix \u003ccode\u003eUP008\u003c/code\u003e not to apply when \u003ccode\u003e__class__\u003c/code\u003e is a local variable (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20497\"\u003e#20497\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix \u003ccode\u003eB004\u003c/code\u003e to skip invalid \u003ccode\u003ehasattr\u003c/code\u003e/\u003ccode\u003egetattr\u003c/code\u003e calls (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20486\"\u003e#20486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Replace \u003ccode\u003e-nan\u003c/code\u003e with \u003ccode\u003enan\u003c/code\u003e when using the value to construct a \u003ccode\u003eDecimal\u003c/code\u003e (\u003ccode\u003eFURB164\u003c/code\u003e ) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20391\"\u003e#20391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd 'Finding ways to help' to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20567\"\u003e#20567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate import path to \u003ccode\u003eruff-wasm-web\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20539\"\u003e#20539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Clarify the supported hashing functions (\u003ccode\u003eS324\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20534\"\u003e#20534\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Allow hover quick fixes to appear for overlapping diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20527\"\u003e#20527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eplayground\u003c/code\u003e] Fix non‑BMP code point handling in quick fixes and markers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20526\"\u003e#20526\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/BurntSushi\"\u003e\u003ccode\u003e@​BurntSushi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mtshiba\"\u003e\u003ccode\u003e@​mtshiba\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/second-ed\"\u003e\u003ccode\u003e@​second-ed\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShikChen\"\u003e\u003ccode\u003e@​ShikChen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PieterCK\"\u003e\u003ccode\u003e@​PieterCK\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GDYendell\"\u003e\u003ccode\u003e@​GDYendell\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RazerM\"\u003e\u003ccode\u003e@​RazerM\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TaKO8Ki\"\u003e\u003ccode\u003e@​TaKO8Ki\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/ntBre\"\u003e\u003ccode\u003e@​ntbre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.13.1\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/astral-sh/ruff/commit/b0bdf0334e38417f8617057cd0392a4b53954120\"\u003e\u003ccode\u003eb0bdf03\u003c/code\u003e\u003c/a\u003e Bump 0.13.2 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20576\"\u003e#20576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7331d393c555ece88aa69f685562163790ddf611\"\u003e\u003ccode\u003e7331d39\u003c/code\u003e\u003c/a\u003e Update rooster to 0.1.0 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20575\"\u003e#20575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/529e5fa6c24ea68501adb18245eab27c701598d2\"\u003e\u003ccode\u003e529e5fa\u003c/code\u003e\u003c/a\u003e [ty] Ecosystem analyzer: timing report (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20571\"\u003e#20571\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/efbb80f7475c63b62981444d5c429109ff12ad32\"\u003e\u003ccode\u003eefbb80f\u003c/code\u003e\u003c/a\u003e [ty] Remove hack in protocol satisfiability check (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20568\"\u003e#20568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9f3cffc65cb834661e17263245761a66f9474af0\"\u003e\u003ccode\u003e9f3cffc\u003c/code\u003e\u003c/a\u003e Add 'Finding ways to help' to CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20567\"\u003e#20567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/21be94ac33f445d8a681babec6c56ca3d1b67156\"\u003e\u003ccode\u003e21be94a\u003c/code\u003e\u003c/a\u003e [ty] Explicitly test assignability/subtyping between unions of nominal types ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b7d5dc98c193cc5cab00d557b6a392d35137d990\"\u003e\u003ccode\u003eb7d5dc9\u003c/code\u003e\u003c/a\u003e [ty] Add tests for interactions of \u003ccode\u003e@classmethod\u003c/code\u003e, \u003ccode\u003e@staticmethod\u003c/code\u003e, and proto...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e1bb74b25a0f730a5baff263d753ffe03cf857b1\"\u003e\u003ccode\u003ee1bb74b\u003c/code\u003e\u003c/a\u003e [ty] Match variadic argument to variadic parameter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20511\"\u003e#20511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/edeb45804ef9dbe348d393f3ab77288062a3c77e\"\u003e\u003ccode\u003eedeb458\u003c/code\u003e\u003c/a\u003e [ty] fallback to resolve_real_module in file_to_module (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20461\"\u003e#20461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bea92c822980b1575d58542dffa2c960393d7603\"\u003e\u003ccode\u003ebea92c8\u003c/code\u003e\u003c/a\u003e [ty] More precise type inference for dictionary literals (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20523\"\u003e#20523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.13.0...0.13.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `asgiref` from 3.9.1 to 3.9.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django/asgiref/blob/main/CHANGELOG.txt\"\u003easgiref's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.9.2 (2025-09-23)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdds support for Python 3.14.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixes wsgi.errors file descriptor in WsgiToAsgi adapter.\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/django/asgiref/commit/3471a0c09bd043d61c299308c0c8519ab6c0f774\"\u003e\u003ccode\u003e3471a0c\u003c/code\u003e\u003c/a\u003e Releasing 3.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/4f892bd261cee9afe51d67333e9bc7cd98b39a35\"\u003e\u003ccode\u003e4f892bd\u003c/code\u003e\u003c/a\u003e Remove Python 3.8 from tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/83cd6f3c6f59a66999446c2893cdb3fcae3c03c5\"\u003e\u003ccode\u003e83cd6f3\u003c/code\u003e\u003c/a\u003e Run CI against Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/796b9f14fd92d3131c7c39fab308ddd986d271eb\"\u003e\u003ccode\u003e796b9f1\u003c/code\u003e\u003c/a\u003e Fix incorrect Trailer header (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/asgiref/commit/29b108b0a9a5eddae3e282ba33915412a855e529\"\u003e\u003ccode\u003e29b108b\u003c/code\u003e\u003c/a\u003e Fixed \u003ca href=\"https://redirect.github.com/django/asgiref/issues/529\"\u003e#529\u003c/a\u003e: wsgi.errors should be a StringIO (\u003ca href=\"https://redirect.github.com/django/asgiref/issues/530\"\u003e#530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django/asgiref/compare/3.9.1...3.9.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.40.31 to 1.40.40\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/3515909e0e4fccb5f54bff1abe327f064e13bae1\"\u003e\u003ccode\u003e3515909\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.40'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/1e46da3117c01557f798750f118ab8b6fd1a0285\"\u003e\u003ccode\u003e1e46da3\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.40\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/53ccfb7584000c0ce958febbe9de0b266006368b\"\u003e\u003ccode\u003e53ccfb7\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/71cfc758534d5bb67f50ff42081fb4b37b3af69b\"\u003e\u003ccode\u003e71cfc75\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.39'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/d947110aba3b4fb3c815e67edc10b986c8dd16ff\"\u003e\u003ccode\u003ed947110\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.39' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/5653e58b19eb694241964b1dc5366ab115ee5eb6\"\u003e\u003ccode\u003e5653e58\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.39\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/eaaf3b06d41881163fae35faf7c778ac153339c5\"\u003e\u003ccode\u003eeaaf3b0\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/c106f68211653ac9acadfded00b209385ed58617\"\u003e\u003ccode\u003ec106f68\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.38'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/9b063da5ebaba6a45d57ee3ba343a1a96e6342a8\"\u003e\u003ccode\u003e9b063da\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.38' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/cc3dc1c839b0c1492b8b96f04694f4b6528a3871\"\u003e\u003ccode\u003ecc3dc1c\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.38\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.40.31...1.40.40\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyyaml` from 6.0.2 to 6.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/yaml/pyyaml/releases\"\u003epyyaml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14 and free-threading (experimental).\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ehttps://github.com/yaml/pyyaml/compare/6.0.2...6.0.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/yaml/pyyaml/blob/6.0.3/CHANGES\"\u003epyyaml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e6.0.3 (2025-09-25)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/yaml/pyyaml/pull/864\"\u003eyaml/pyyaml#864\u003c/a\u003e -- Support for Python 3.14 and free-threading (experimental)\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/yaml/pyyaml/commit/49790e73684bebad1df05ef8d828fa12f685bffb\"\u003e\u003ccode\u003e49790e7\u003c/code\u003e\u003c/a\u003e Release 6.0.3 (\u003ca href=\"https://redirect.github.com/yaml/pyyaml/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `qrcode` from 7.4.2 to 8.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lincolnloop/python-qrcode/blob/main/CHANGES.rst\"\u003eqrcode's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2 (01 May 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize QRColorMask apply_mask method for enhanced performance\u003c/li\u003e\n\u003cli\u003eFix typos on StyledPilImage embeded_* parameters.\nThe old parameters with the typos are still accepted\nfor backward compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1 (02 April 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0 (27 September 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.11 and 3.12.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python \u0026lt;=3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange local development setup to use Poetry_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTestsuite and code quality checks are done through Github Actions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCode quality and formatting utilises ruff_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003etyping_extensions\u003c/code\u003e as a dependency, as it's no longer required\nwith having Python 3.9+ as a requirement.\nhaving Python 3.9+ as a requirement.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOnly allow high error correction rate (\u003ccode\u003eqrcode.ERROR_CORRECT_H\u003c/code\u003e)\nwhen generating\nQR codes with embedded images ...\n\n_Description has been truncated_","html_url":"https://github.com/rafsaf/Tribal-Wars-Planer/pull/664","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/rafsaf%2FTribal-Wars-Planer/issues/664","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/664/packages"}},{"old_version":"7.4.2","new_version":"8.2","update_type":null,"path":null,"pr_created_at":"2025-09-22T23:17:29.000Z","version_change":"7.4.2 → 8.2","issue":{"uuid":"2851420978","node_id":"PR_kwDOEB4avM6p9Tsy","number":662,"state":"open","title":"Bump the all-dependencies group with 11 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-22T23:17:29.000Z","updated_at":"2025-09-22T23:17:30.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"all-dependencies","update_count":11,"packages":[{"name":"botocore","old_version":"1.40.31","new_version":"1.40.36","repository_url":"https://github.com/boto/botocore"},{"name":"cython","old_version":"3.1.3","new_version":"3.1.4","repository_url":"https://github.com/cython/cython"},{"name":"django-two-factor-auth","old_version":"1.17.0","new_version":"1.18.0","repository_url":"https://github.com/jazzband/django-two-factor-auth"},{"name":"prometheus-client","old_version":"0.22.1","new_version":"0.23.1","repository_url":"https://github.com/prometheus/client_python"},{"name":"psutil","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/giampaolo/psutil"},{"name":"coverage","old_version":"7.10.6","new_version":"7.10.7","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"djangorestframework-stubs","old_version":"3.16.2","new_version":"3.16.3","repository_url":"https://github.com/typeddjango/djangorestframework-stubs"},{"name":"mypy","old_version":"1.18.1","new_version":"1.18.2","repository_url":"https://github.com/python/mypy"},{"name":"ruff","old_version":"0.13.0","new_version":"0.13.1","repository_url":"https://github.com/astral-sh/ruff"},{"name":"boto3","old_version":"1.40.31","new_version":"1.40.36","repository_url":"https://github.com/boto/boto3"},{"name":"qrcode","old_version":"7.4.2","new_version":"8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-dependencies group with 11 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [botocore](https://github.com/boto/botocore) | `1.40.31` | `1.40.36` |\n| [cython](https://github.com/cython/cython) | `3.1.3` | `3.1.4` |\n| [django-two-factor-auth](https://github.com/jazzband/django-two-factor-auth) | `1.17.0` | `1.18.0` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.1` | `0.23.1` |\n| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.1.0` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.10.6` | `7.10.7` |\n| [djangorestframework-stubs](https://github.com/typeddjango/djangorestframework-stubs) | `3.16.2` | `3.16.3` |\n| [mypy](https://github.com/python/mypy) | `1.18.1` | `1.18.2` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.13.0` | `0.13.1` |\n| [boto3](https://github.com/boto/boto3) | `1.40.31` | `1.40.36` |\n| [qrcode](https://github.com/lincolnloop/python-qrcode) | `7.4.2` | `8.2` |\n\nUpdates `botocore` from 1.40.31 to 1.40.36\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/28c3ae23b564ff769ad4f4df79060af2e0b7d4ae\"\u003e\u003ccode\u003e28c3ae2\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.36'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/95bd00946f54f22447cd18a06e05704afe485d03\"\u003e\u003ccode\u003e95bd009\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.36\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/674f0d11498e07afe21261113dde681187d66fcb\"\u003e\u003ccode\u003e674f0d1\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/0b599b51c95253204dffc4ed684e73610841ef60\"\u003e\u003ccode\u003e0b599b5\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/331de65e7532d4641b797c35ca264b90987e3328\"\u003e\u003ccode\u003e331de65\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.35'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/7871b958b1ac9055ec4b993913136d96df4fbdcd\"\u003e\u003ccode\u003e7871b95\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.35' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/4451f93aa2eb401b7b8f4aef6e24f2ccc2e09fdd\"\u003e\u003ccode\u003e4451f93\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.35\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/387a2a4cfed21d8c79f60130c0edc6446e21621d\"\u003e\u003ccode\u003e387a2a4\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/fd4916f863a7b8737e121345118d68b99e2705be\"\u003e\u003ccode\u003efd4916f\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/de187f398ba981be728e3c69f23d6b634d555016\"\u003e\u003ccode\u003ede187f3\u003c/code\u003e\u003c/a\u003e Update sms-voice models and endpoint tests to latest version. (\u003ca href=\"https://redirect.github.com/boto/botocore/issues/3553\"\u003e#3553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/botocore/compare/1.40.31...1.40.36\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cython` from 3.1.3 to 3.1.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/cython/cython/blob/master/CHANGES.rst\"\u003ecython's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.1.4 (2025-09-16)\u003c/h1\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeclarations for the new \u003ccode\u003ePyUnstable_*()\u003c/code\u003e refcounting C-API functions in Py3.14 were added.\n(Github issue :issue:\u003ccode\u003e6836\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eThe monitoring code could crash on tracing.\n(Github issue :issue:\u003ccode\u003e7050\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eInitialising the monitoring code could fail with a CPython exception.\nSee \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1790#issuecomment-3257410149\"\u003enedbat/coveragepy#1790\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOptimised integer shifting triggered undefined behaviour in C.\n(Github issue :issue:\u003ccode\u003e7089\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDeallocating objects that inherit from external types defined in pxd files\ncould run into an infinite loop.\n(Github issue :issue:\u003ccode\u003e7143\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eA reference to metaclasses could be leaked on instantiation.\n(Github issue :issue:\u003ccode\u003e7130\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e(Unlikely) error handling during empty builtin container tests was ineffective.\n(Github issue :issue:\u003ccode\u003e7190\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eGenerated \u003ccode\u003e*_api.h\u003c/code\u003e files used potentially unknown Cython configuration macros.\n(Github issue :issue:\u003ccode\u003e7108\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003ecythonize()\u003c/code\u003e avoids parallel compiler runs on systems using \u003ccode\u003espawn()\u003c/code\u003e in multiprocessing.\nPatch by Marcel Bargull.  (Github issue :issue:\u003ccode\u003e3262\u003c/code\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe \u003ccode\u003e@cython.ufunc\u003c/code\u003e  decorator was missing in type checker stubs.\nPatch by jayClean.  (Github issue :issue:\u003ccode\u003e7109\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/cython/cython/commit/236e4a3ccd24d4e24c9d7c40a8580d359663832c\"\u003e\u003ccode\u003e236e4a3\u003c/code\u003e\u003c/a\u003e Build: Update cibuildwheel version to 3.1.4.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/cb2e2a3e0ee746df3296742d4d55d0d79e0bd6f5\"\u003e\u003ccode\u003ecb2e2a3\u003c/code\u003e\u003c/a\u003e Prepare release of 3.1.4.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/4fdb99040b19270e172aba671d4a9a9ae091b872\"\u003e\u003ccode\u003e4fdb990\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/fa78291097175b9fcd32c5012bb6239bdf06e467\"\u003e\u003ccode\u003efa78291\u003c/code\u003e\u003c/a\u003e Remove confusing \u0026quot;optionally\u0026quot; from embedded docs (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7071\"\u003e#7071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/2886cd958ed0b7383ae86d59ddc74bb13e9d3336\"\u003e\u003ccode\u003e2886cd9\u003c/code\u003e\u003c/a\u003e Fix error handling in empty container test (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7096\"\u003eGH-7096\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/8993322ace48de38650efe82f6a529e72781ab19\"\u003e\u003ccode\u003e8993322\u003c/code\u003e\u003c/a\u003e Library: Add declarations for new refcounting C-API functions in Py3.14.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/dc54ef2e7aa529a9a02debb2378865475ca08ad8\"\u003e\u003ccode\u003edc54ef2\u003c/code\u003e\u003c/a\u003e Simpify some conditions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/41f985e8fbcc203f61c9b4720ee605ac582ce18b\"\u003e\u003ccode\u003e41f985e\u003c/code\u003e\u003c/a\u003e Bump OS X runner version to \u0026quot;macos-latest\u0026quot; (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7041\"\u003eGH-7041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/dd18f11f9203b68a6acba0b73c5958229c7298dc\"\u003e\u003ccode\u003edd18f11\u003c/code\u003e\u003c/a\u003e Disable parallel cythonization for \u0026quot;spawn\u0026quot; start method. (\u003ca href=\"https://redirect.github.com/cython/cython/issues/3263\"\u003eGH-3263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cython/cython/commit/be16c519e1548465836f8223ea18fb26b32df919\"\u003e\u003ccode\u003ebe16c51\u003c/code\u003e\u003c/a\u003e Fix a small typo (\u003ca href=\"https://redirect.github.com/cython/cython/issues/7125\"\u003e#7125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/cython/cython/compare/3.1.3...3.1.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-two-factor-auth` from 1.17.0 to 1.18.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jazzband/django-two-factor-auth/releases\"\u003edjango-two-factor-auth's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.18.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocumentation for setting yubikey support forgot to inform users they would\nneed to add our yubikey plugin to \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove reference to release-notes that had been missed, docs now build\nwithout warnings\u003c/li\u003e\n\u003cli\u003eWebAuthn: avoid submitting the wrong form\u003c/li\u003e\n\u003cli\u003eEmail gateway: tell user to use correct django-otp plugin\u003c/li\u003e\n\u003cli\u003eFix infinite redirect on admin site with AdminSiteOTPRequiredMixin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow qrcode 8.x.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ephonenumbers\u003c/code\u003e is no longer a hard requirement for users who don't require it.\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eEmailDevice.confirmed\u003c/code\u003e default to \u003ccode\u003eFalse\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAny \u003ccode\u003eStaticDevice\u003c/code\u003e can be used as backup tokens, not just those labelled\n\u0026quot;backup\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Django 5.2\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13\u003c/li\u003e\n\u003cli\u003eDjango check for \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e to make sure \u003ccode\u003etwo_factor\u003c/code\u003e is present and\ncomes before its plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\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/jazzband/django-two-factor-auth/blob/master/CHANGELOG.md\"\u003edjango-two-factor-auth's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.18.0\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocumentation for setting yubikey support forgot to inform users they would\nneed to add our yubikey plugin to \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eRemove reference to release-notes that had been missed, docs now build\nwithout warnings\u003c/li\u003e\n\u003cli\u003eWebAuthn: avoid submitting the wrong form\u003c/li\u003e\n\u003cli\u003eEmail gateway: tell user to use correct django-otp plugin\u003c/li\u003e\n\u003cli\u003eFix infinite redirect on admin site with AdminSiteOTPRequiredMixin\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow qrcode 8.x.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ephonenumbers\u003c/code\u003e is no longer a hard requirement for users who don't require it.\u003c/li\u003e\n\u003cli\u003eChange \u003ccode\u003eEmailDevice.confirmed\u003c/code\u003e default to \u003ccode\u003eFalse\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAny \u003ccode\u003eStaticDevice\u003c/code\u003e can be used as backup tokens, not just those labelled\n\u0026quot;backup\u0026quot;\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Django 5.2\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13\u003c/li\u003e\n\u003cli\u003eDjango check for \u003ccode\u003eINSTALLED_APPS\u003c/code\u003e to make sure \u003ccode\u003etwo_factor\u003c/code\u003e is present and\ncomes before its plugins\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.8\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/jazzband/django-two-factor-auth/commit/7405b6fd545ddbbd67d28292fca2c8ef6cf0de92\"\u003e\u003ccode\u003e7405b6f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/774\"\u003e#774\u003c/a\u003e from moggers87/release-1.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/b47945c8188e46ad2f64bf929c1a745682b6de15\"\u003e\u003ccode\u003eb47945c\u003c/code\u003e\u003c/a\u003e Update CHANGELOG with latest changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/b20741c609ca3fd3fe52dd3cfe1ebc3e98ce2383\"\u003e\u003ccode\u003eb20741c\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into release-1.18.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/966dab4c5bdf11b88e42bc820c8adea684b4e0d0\"\u003e\u003ccode\u003e966dab4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/775\"\u003e#775\u003c/a\u003e from claudep/phoneplugin2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/9c72f871f0ebd3bede20d823372b02608480c4c7\"\u003e\u003ccode\u003e9c72f87\u003c/code\u003e\u003c/a\u003e Refs \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/469\"\u003e#469\u003c/a\u003e - Only import phonenumber functions when plugin is installed\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/ec0923bf400d6faf3c82acff312c1fe5add70047\"\u003e\u003ccode\u003eec0923b\u003c/code\u003e\u003c/a\u003e Pull latest translations from Transifex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/6828d0bb2ee8f5e30d2c63b552ae895b3fe313b0\"\u003e\u003ccode\u003e6828d0b\u003c/code\u003e\u003c/a\u003e Prepare 1.18.0 for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/656bf9e4471990e32f3a4ee78f610cbeb114cd16\"\u003e\u003ccode\u003e656bf9e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/773\"\u003e#773\u003c/a\u003e from jazzband/pre-commit-ci-update-config\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/6ba47715c163dc82aa89c5f2f4373a361b7f9b59\"\u003e\u003ccode\u003e6ba4771\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jazzband/django-two-factor-auth/issues/763\"\u003e#763\u003c/a\u003e from moggers87/647-check-installed-apps-order\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jazzband/django-two-factor-auth/commit/2f50ea0fd0d73c653bb377b384dc2dd5afb387c1\"\u003e\u003ccode\u003e2f50ea0\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jazzband/django-two-factor-auth/compare/1.17.0...1.18.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-client` from 0.22.1 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prometheus/client_python/releases\"\u003eprometheus-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.23.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use tuples instead of packaging Version by \u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\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/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUTF-8 Content Negotiation by \u003ca href=\"https://github.com/ywwg\"\u003e\u003ccode\u003e@​ywwg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1102\"\u003eprometheus/client_python#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe include test data by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove parser performance by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1117\"\u003eprometheus/client_python#1117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support to \u003ccode\u003ewrite_to_textfile\u003c/code\u003e for custom tmpdir by \u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOM text exposition for NH by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1087\"\u003eprometheus/client_python#1087\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bug which caused metric publishing to not accept query string parameters in ASGI app by \u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit native histograms only when OM 2.0.0 is requested by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1128\"\u003eprometheus/client_python#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove space after comma in openmetrics exposition by \u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue parsing double spaces after # HELP/# TYPE by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1134\"\u003eprometheus/client_python#1134\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/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.22.1...v0.23.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.22.1...v0.23.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/prometheus/client_python/commit/8746c49a76a7929795fab7b593b1c44dc8c972d2\"\u003e\u003ccode\u003e8746c49\u003c/code\u003e\u003c/a\u003e Release 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/266beb2567e0040a5790836c32de5a643d5177e4\"\u003e\u003ccode\u003e266beb2\u003c/code\u003e\u003c/a\u003e fix: use tuples instead of packaging Version (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1136\"\u003e#1136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/f9471403a82de6af93feeac2d38938ca1c384b6d\"\u003e\u003ccode\u003ef947140\u003c/code\u003e\u003c/a\u003e fix: Use \u003ccode\u003easyncio.new_event_loop()\u003c/code\u003e to create event loop for tests (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1138\"\u003e#1138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/b9e78a3f701fd442f57db23701c2021a529a84c3\"\u003e\u003ccode\u003eb9e78a3\u003c/code\u003e\u003c/a\u003e Release 0.23.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/b3fbbca891a6c6d07b83a3680919956a3c3ab523\"\u003e\u003ccode\u003eb3fbbca\u003c/code\u003e\u003c/a\u003e Fix issue parsing double spaces after # HELP/# TYPE (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1134\"\u003e#1134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/47d2b416d75f5569863e2bb08a15b58218563814\"\u003e\u003ccode\u003e47d2b41\u003c/code\u003e\u003c/a\u003e Do not use global when only reading variable (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1133\"\u003e#1133\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/4de31eee009a527ba7a5cda76a4aef403df7ab0d\"\u003e\u003ccode\u003e4de31ee\u003c/code\u003e\u003c/a\u003e fix: remove space after comma in openmetrics exposition (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1132\"\u003e#1132\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/3586355e648f1d8a058cdb711bc2ce920ce58ca4\"\u003e\u003ccode\u003e3586355\u003c/code\u003e\u003c/a\u003e Emit native histograms only when OM 2.0.0 is requested (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1128\"\u003e#1128\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/9e3eb6c7e146d8003d12e24db56f5abfcc0bbef6\"\u003e\u003ccode\u003e9e3eb6c\u003c/code\u003e\u003c/a\u003e Fix bug which caused metric publishing to not accept query string parameters ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/d358f469a7bc2480005775a9be8de30c20c88ab6\"\u003e\u003ccode\u003ed358f46\u003c/code\u003e\u003c/a\u003e Bump flake8 libraries (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1127\"\u003e#1127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.22.1...v0.23.1\"\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 `coverage` from 7.10.6 to 7.10.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.7 — 2025-09-21\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: with branch coverage in large files, generating HTML, JSON, or\nLCOV reports could take far too long due to some quadratic behavior when\ncreating the function and class index pages.  This is now fixed, closing\n\u003ccode\u003eissue 2048\u003c/code\u003e_.  Thanks to Daniel Diniz for help diagnosing the problem.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMost warnings and a few errors now have links to a page in the docs\nexplaining the specific message.  Closes \u003ccode\u003eissue 1921\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1921: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1921\"\u003enedbat/coveragepy#1921\u003c/a\u003e\n.. _issue 2048: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2048\"\u003enedbat/coveragepy#2048\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-6:\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/nedbat/coveragepy/commit/92a2af54e6bc948a9c536bd9b12bab70fb055904\"\u003e\u003ccode\u003e92a2af5\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/952afdaca658d5e1acdd533c727448a0b218caf0\"\u003e\u003ccode\u003e952afda\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a301761e69da97b27662f395974d26f78fa8b2b5\"\u003e\u003ccode\u003ea301761\u003c/code\u003e\u003c/a\u003e build: riscv64 wheels (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2055\"\u003e#2055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5daff8d38786aa540ff9bec622eb3389f117f911\"\u003e\u003ccode\u003e5daff8d\u003c/code\u003e\u003c/a\u003e docs: now source is formatted with ruff\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/04bbc3acfd914fdd99ffec9873bc03bdc7329357\"\u003e\u003ccode\u003e04bbc3a\u003c/code\u003e\u003c/a\u003e docs: discuss cog in the contributing docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/c181b9315f59a81667da47cf3d760d0253872238\"\u003e\u003ccode\u003ec181b93\u003c/code\u003e\u003c/a\u003e build: use cog --check-fail-msg to instruct devs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/33c4ba196f49e0ee86ab0ff473c0876c0bacd5fa\"\u003e\u003ccode\u003e33c4ba1\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0744b73b6b503ccf2cb75aba095c023672b921a8\"\u003e\u003ccode\u003e0744b73\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group across 1 directory with 2 updates (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0d5a112fc54c1d5a07f3f2ec451779808902c9af\"\u003e\u003ccode\u003e0d5a112\u003c/code\u003e\u003c/a\u003e perf: bulk narrowing to avoid N**2. \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2048\"\u003e#2048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a868ed9269ca474748130f5c6360cd2aae66ffc8\"\u003e\u003ccode\u003ea868ed9\u003c/code\u003e\u003c/a\u003e docs: mention Python Discord on the index page\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.10.6...7.10.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `djangorestframework-stubs` from 3.16.2 to 3.16.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/releases\"\u003edjangorestframework-stubs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.16.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Breaking change]\u003c/strong\u003e Remove work-around for \u003ccode\u003eModelSerializer.instance\u003c/code\u003e field for \u003ccode\u003emany=True\u003c/code\u003e by \u003ca href=\"https://github.com/JoshFerge\"\u003e\u003ccode\u003e@​JoshFerge\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/719\"\u003etypeddjango/djangorestframework-stubs#719\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe background of this change is described in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/827\"\u003etypeddjango/djangorestframework-stubs#827\u003c/a\u003e. If this change caused a regression in your use case, please comment there ➔ \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/827\"\u003etypeddjango/djangorestframework-stubs#827\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAccept lazy strings as path in \u003ccode\u003eAPIRequestFactory\u003c/code\u003e and \u003ccode\u003eAPIClient\u003c/code\u003e http methods by \u003ca href=\"https://github.com/browniebroke\"\u003e\u003ccode\u003e@​browniebroke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/825\"\u003etypeddjango/djangorestframework-stubs#825\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eHousekeeping\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove entries from allowlist to fix the stubtest CI job by \u003ca href=\"https://github.com/browniebroke\"\u003e\u003ccode\u003e@​browniebroke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/826\"\u003etypeddjango/djangorestframework-stubs#826\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003e.pre-commit-config\u003c/code\u003e and \u003ccode\u003eCONTRIBUTING.MD\u003c/code\u003e to latest Python version by \u003ca href=\"https://github.com/CodingWithSaksham\"\u003e\u003ccode\u003e@​CodingWithSaksham\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/819\"\u003etypeddjango/djangorestframework-stubs#819\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion 3.16.3 release by \u003ca href=\"https://github.com/intgr\"\u003e\u003ccode\u003e@​intgr\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/828\"\u003etypeddjango/djangorestframework-stubs#828\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/CodingWithSaksham\"\u003e\u003ccode\u003e@​CodingWithSaksham\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/819\"\u003etypeddjango/djangorestframework-stubs#819\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JoshFerge\"\u003e\u003ccode\u003e@​JoshFerge\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/pull/719\"\u003etypeddjango/djangorestframework-stubs#719\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/compare/3.16.2...3.16.3\"\u003ehttps://github.com/typeddjango/djangorestframework-stubs/compare/3.16.2...3.16.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/typeddjango/djangorestframework-stubs/commit/fbfde22b046dcdb362c252db20339c39f03addf0\"\u003e\u003ccode\u003efbfde22\u003c/code\u003e\u003c/a\u003e Version 3.16.3 release (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/828\"\u003e#828\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/eff0fab534bdaac9b8b87199e32a5bb0ad8bcca0\"\u003e\u003ccode\u003eeff0fab\u003c/code\u003e\u003c/a\u003e [Breaking change] Remove work-around for \u003ccode\u003eModelSerializer.instance\u003c/code\u003e field for...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/363c31901cac51871ae27d83186e54873181dea2\"\u003e\u003ccode\u003e363c319\u003c/code\u003e\u003c/a\u003e Bump types-pyyaml from 6.0.12.20250822 to 6.0.12.20250915 (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/824\"\u003e#824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/37b5686ed5e6a976a08a77fc6a08e4bd86dee46e\"\u003e\u003ccode\u003e37b5686\u003c/code\u003e\u003c/a\u003e Bump types-requests from 2.32.4.20250809 to 2.32.4.20250913 (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/822\"\u003e#822\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/774b0a203f43f0b23caa1c6711283e77c2452ba3\"\u003e\u003ccode\u003e774b0a2\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/823\"\u003e#823\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/4494f8253cabd2a447291a44b7462de10eea1a70\"\u003e\u003ccode\u003e4494f82\u003c/code\u003e\u003c/a\u003e Accept lazy strings as path in \u003ccode\u003eAPIRequestFactory\u003c/code\u003e and \u003ccode\u003eAPIClient\u003c/code\u003e http metho...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/56e621fd4faef40c23cfd1f9d04a936924cd5cce\"\u003e\u003ccode\u003e56e621f\u003c/code\u003e\u003c/a\u003e Remove entries from allowlist breaking the stubtest script (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/826\"\u003e#826\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/324d4cb49972198c830f2450d935f1432a0c2b73\"\u003e\u003ccode\u003e324d4cb\u003c/code\u003e\u003c/a\u003e Update mypy requirement from \u0026lt;1.18,\u0026gt;=1.13 to \u0026gt;=1.13,\u0026lt;1.19 (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/821\"\u003e#821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/48152ecf026e83e16b1c8a004466fc8e3aa27add\"\u003e\u003ccode\u003e48152ec\u003c/code\u003e\u003c/a\u003e Updated \u003ccode\u003e.pre-commit-config\u003c/code\u003e and \u003ccode\u003eCONTRIBUTING.MD\u003c/code\u003e to latest Python version (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/commit/7cbec3a20d70a00ea03eeb3c6cff6cb3a9075bf9\"\u003e\u003ccode\u003e7cbec3a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/typeddjango/djangorestframework-stubs/issues/820\"\u003e#820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/typeddjango/djangorestframework-stubs/compare/3.16.2...3.16.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.1 to 1.18.2\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\u003ch2\u003eMypy 1.18.1\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\nimprovements and bug fixes. You can install it as follows:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install -U mypy\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eYou can read the full documentation for this release on \u003ca href=\"http://mypy.readthedocs.io\"\u003eRead the Docs\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eMypy Performance Improvements\u003c/h3\u003e\n\u003cp\u003eMypy 1.18.1 includes numerous performance improvements, resulting in about 40% speedup\ncompared to 1.17 when type checking mypy itself. In extreme cases, the improvement\ncan be 10x or higher. The list below is an overview of the various mypy optimizations.\nMany mypyc improvements (discussed in a separate section below) also improve performance.\u003c/p\u003e\n\u003cp\u003eType caching optimizations have a small risk of causing regressions. When\nreporting issues with unexpected inferred types, please also check if\n\u003ccode\u003e--disable-expression-cache\u003c/code\u003e will work around the issue, as it turns off some of\nthese optimizations.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eImprove self check performance by 1.8% (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19768\"\u003e19768\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python/mypy/pull/19769\"\u003e19769\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python/mypy/pull/19770\"\u003e19770\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize fixed-format deserialization (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19765\"\u003e19765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse macros to optimize fixed-format deserialization (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19757\"\u003e19757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTwo additional micro‑optimizations (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19627\"\u003e19627\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAnother set of micro‑optimizations (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19633\"\u003e19633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache common types (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19621\"\u003e19621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSkip more method bodies in third‑party libraries for speed (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19586\"\u003e19586\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify the representation of callable types (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19580\"\u003e19580\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd cache for types of some expressions (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19505\"\u003e19505\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse cache for dictionary expressions (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19536\"\u003e19536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse cache for binary operations (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19523\"\u003e19523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache types of type objects (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19514\"\u003e19514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid duplicate work when checking boolean operations (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19515\"\u003e19515\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize generic inference passes (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19501\"\u003e19501\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up the default plugin (Jukka Lehtosalo, PRs \u003ca href=\"https://redirect.github.com/python/mypy/pull/19385\"\u003e19385\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python/mypy/pull/19462\"\u003e19462\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove nested imports from the default plugin (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19388\"\u003e19388\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMicro‑optimize type expansion (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19461\"\u003e19461\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMicro‑optimize type indirection (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19460\"\u003e19460\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMicro‑optimize the plugin framework (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19464\"\u003e19464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid temporary set creation in subtype checking (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19463\"\u003e19463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSubtype checking micro‑optimization (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19384\"\u003e19384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReturn early where possible in subtype check (Stanislav Terliakov, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19400\"\u003e19400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeduplicate some types before joining (Stanislav Terliakov, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19409\"\u003e19409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpeed up type checking by caching argument inference context (Jukka Lehtosalo, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19323\"\u003e19323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize binding method self argument type and deprecation checks (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19556\"\u003e19556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eKeep trivial instance types/aliases during expansion (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/19543\"\u003e19543\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed‑Format Cache (Experimental)\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/python/mypy/commit/df05f05555ee62dbdb9960c64cad186172e92be1\"\u003e\u003ccode\u003edf05f05\u003c/code\u003e\u003c/a\u003e remove +dev from version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/01a7a1285d03cb7a330359b22cb462aacb5f9720\"\u003e\u003ccode\u003e01a7a12\u003c/code\u003e\u003c/a\u003e Update changelog for 1.18.2 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19873\"\u003e#19873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/ca5abf09f3bfc543ac9c18a364696bc5da20bc03\"\u003e\u003ccode\u003eca5abf0\u003c/code\u003e\u003c/a\u003e Typeshed cherry-pick: Make type of \u003ccode\u003eunitest.mock.Any\u003c/code\u003e a subclass of \u003ccode\u003eAny\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python/mypy/issues/1\"\u003e#1\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/9d794b57d9c5b03d61caa3286756c05e0ae3021b\"\u003e\u003ccode\u003e9d794b5\u003c/code\u003e\u003c/a\u003e [mypyc] fix: inappropriate \u003ccode\u003eNone\u003c/code\u003es in f-strings (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19846\"\u003e#19846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2c0510c84868b6bb42ef0f305b701e530a85c25f\"\u003e\u003ccode\u003e2c0510c\u003c/code\u003e\u003c/a\u003e stubtest: additional guidance on errors when runtime is object.\u003cstrong\u003einit\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19733\"\u003e#19733\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2f3f03c3e39e68dbfa3544c01a34f99803b3e1c2\"\u003e\u003ccode\u003e2f3f03c\u003c/code\u003e\u003c/a\u003e Bump version to 1.18.2+dev for point release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/76698412bc1f3ca99000d52649acd5a0e06aa71d\"\u003e\u003ccode\u003e7669841\u003c/code\u003e\u003c/a\u003e Fix crash on recursive alias in indirection.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/19845\"\u003e#19845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.1...v1.18.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.13.0 to 0.13.1\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.13.1\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-09-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Detect unnecessary \u003ccode\u003eNone\u003c/code\u003e default for additional key expression types (\u003ccode\u003eSIM910\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20343\"\u003e#20343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Add fix for \u003ccode\u003ePTH123\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20169\"\u003e#20169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Fix \u003ccode\u003ePTH101\u003c/code\u003e, \u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH121\u003c/code\u003e fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20143\"\u003e#20143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make \u003ccode\u003ePTH111\u003c/code\u003e fix unsafe because it can change behavior (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20215\"\u003e#20215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Fix \u003ccode\u003eE301\u003c/code\u003e to only trigger for functions immediately within a class (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19768\"\u003e#19768\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Mark \u003ccode\u003esingle-item-membership-test\u003c/code\u003e fix as always unsafe (\u003ccode\u003eFURB171\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20279\"\u003e#20279\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle t-strings for token-based rules and suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20357\"\u003e#20357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix truthiness: dict-only \u003ccode\u003e**\u003c/code\u003e displays not truthy for \u003ccode\u003eshell\u003c/code\u003e (\u003ccode\u003eS602\u003c/code\u003e, \u003ccode\u003eS604\u003c/code\u003e, \u003ccode\u003eS609\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20177\"\u003e#20177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Fix diagnostic to show correct method name for \u003ccode\u003estr.rsplit\u003c/code\u003e calls (\u003ccode\u003eSIM905\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20459\"\u003e#20459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflynt\u003c/code\u003e] Use triple quotes for joined raw strings with newlines (\u003ccode\u003eFLY002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20197\"\u003e#20197\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix false positive when class name is shadowed by local variable (\u003ccode\u003eUP008\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20427\"\u003e#20427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Prevent infinite loop with \u003ccode\u003eI002\u003c/code\u003e and \u003ccode\u003eUP026\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20327\"\u003e#20327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Recognize t-strings, generators, and lambdas in \u003ccode\u003einvalid-index-type\u003c/code\u003e (\u003ccode\u003eRUF016\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20213\"\u003e#20213\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eRUF102\u003c/code\u003e] Respect rule redirects in invalid rule code detection (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20245\"\u003e#20245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Mark the fix for \u003ccode\u003eunreliable-callable-check\u003c/code\u003e as always unsafe (\u003ccode\u003eB004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Allow dataclass attribute value instantiation from nested frozen dataclass (\u003ccode\u003eRUF009\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20352\"\u003e#20352\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fixes to \u003ccode\u003eoutput-format=sarif\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20300\"\u003e#20300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat panics as fatal diagnostics, sort panics last (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20258\"\u003e#20258\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eanalyze.string-imports-min-dots\u003c/code\u003e to settings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20375\"\u003e#20375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate README.md with Albumentations new repository URL (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20415\"\u003e#20415\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump MSRV to Rust 1.88 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20470\"\u003e#20470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnable inline noqa for multiline strings in playground (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20442\"\u003e#20442\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/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IDrokin117\"\u003e\u003ccode\u003e@​IDrokin117\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/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.13.1\u003c/h2\u003e\n\u003cp\u003eReleased on 2025-09-18.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Detect unnecessary \u003ccode\u003eNone\u003c/code\u003e default for additional key expression types (\u003ccode\u003eSIM910\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20343\"\u003e#20343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Add fix for \u003ccode\u003ePTH123\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20169\"\u003e#20169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Fix \u003ccode\u003ePTH101\u003c/code\u003e, \u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH121\u003c/code\u003e fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20143\"\u003e#20143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Make \u003ccode\u003ePTH111\u003c/code\u003e fix unsafe because it can change behavior (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20215\"\u003e#20215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Fix \u003ccode\u003eE301\u003c/code\u003e to only trigger for functions immediately within a class (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19768\"\u003e#19768\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Mark \u003ccode\u003esingle-item-membership-test\u003c/code\u003e fix as always unsafe (\u003ccode\u003eFURB171\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20279\"\u003e#20279\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle t-strings for token-based rules and suppression comments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20357\"\u003e#20357\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix truthiness: dict-only \u003ccode\u003e**\u003c/code\u003e displays not truthy for \u003ccode\u003eshell\u003c/code\u003e (\u003ccode\u003eS602\u003c/code\u003e, \u003ccode\u003eS604\u003c/code\u003e, \u003ccode\u003eS609\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20177\"\u003e#20177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Fix diagnostic to show correct method name for \u003ccode\u003estr.rsplit\u003c/code\u003e calls (\u003ccode\u003eSIM905\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20459\"\u003e#20459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflynt\u003c/code\u003e] Use triple quotes for joined raw strings with newlines (\u003ccode\u003eFLY002\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20197\"\u003e#20197\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix false positive when class name is shadowed by local variable (\u003ccode\u003eUP008\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20427\"\u003e#20427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Prevent infinite loop with \u003ccode\u003eI002\u003c/code\u003e and \u003ccode\u003eUP026\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20327\"\u003e#20327\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Recognize t-strings, generators, and lambdas in \u003ccode\u003einvalid-index-type\u003c/code\u003e (\u003ccode\u003eRUF016\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20213\"\u003e#20213\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eRUF102\u003c/code\u003e] Respect rule redirects in invalid rule code detection (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20245\"\u003e#20245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Mark the fix for \u003ccode\u003eunreliable-callable-check\u003c/code\u003e as always unsafe (\u003ccode\u003eB004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20318\"\u003e#20318\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Allow dataclass attribute value instantiation from nested frozen dataclass (\u003ccode\u003eRUF009\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20352\"\u003e#20352\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd fixes to \u003ccode\u003eoutput-format=sarif\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20300\"\u003e#20300\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat panics as fatal diagnostics, sort panics last (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20258\"\u003e#20258\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eanalyze.string-imports-min-dots\u003c/code\u003e to settings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20375\"\u003e#20375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate README.md with Albumentations new repository URL (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20415\"\u003e#20415\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBump MSRV to Rust 1.88 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20470\"\u003e#20470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnable inline noqa for multiline strings in playground (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/20442\"\u003e#20442\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/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/danparizher\"\u003e\u003ccode\u003e@​danparizher\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IDrokin117\"\u003e\u003ccode\u003e@​IDrokin117\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\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/706be0a6e7e09936511198f2ff8982915520d138\"\u003e\u003ccode\u003e706be0a\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epyproject.toml\u003c/code\u003e to rooster config \u003ccode\u003eversion_files\u003c/code\u003e and bump to 0.13.1 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7b40428b6a1aaad88abb05b2fa291f0ae895d379\"\u003e\u003ccode\u003e7b40428\u003c/code\u003e\u003c/a\u003e Bump 0.13.1 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20473\"\u003e#20473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b9b57553681965e5cde1120f3f78ec50f8c7cd4a\"\u003e\u003ccode\u003eb9b5755\u003c/code\u003e\u003c/a\u003e Upgrade to the latest rooster version and include contributors in CHANGELOG (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b4b5d67a4a4cc7193b4867dcc748c8399571eaf8\"\u003e\u003ccode\u003eb4b5d67\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflynt\u003c/code\u003e] Use triple quotes for joined raw strings with newlines (\u003ccode\u003eFLY002\u003c/code\u003e) (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0b60584b7e561f7ff7120f3ff6ecb5394522d90f\"\u003e\u003ccode\u003e0b60584\u003c/code\u003e\u003c/a\u003e Bump MSRV to Rust 1.88 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20470\"\u003e#20470\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/821b2f8b2e033bfff407a908e11d71126b7bef45\"\u003e\u003ccode\u003e821b2f8\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003erefurb\u003c/code\u003e] Mark \u003ccode\u003esingle-item-membership-test\u003c/code\u003e fix as always unsafe (\u003ccode\u003eFURB171\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1758f26d941afac9ed497c5ad34253f3c5446d07\"\u003e\u003ccode\u003e1758f26\u003c/code\u003e\u003c/a\u003e Update rust toolchain to 1.90 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20469\"\u003e#20469\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2502ff7638da3d290eacd4fcef34809faaeddfd5\"\u003e\u003ccode\u003e2502ff7\u003c/code\u003e\u003c/a\u003e [ty] Make TypeIs invariant in its type argument (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20428\"\u003e#20428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/144373fb3c8690043eec30a12bd5d6c55e8e9ca6\"\u003e\u003ccode\u003e144373f\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-use-pathlib\u003c/code\u003e] Fix \u003ccode\u003ePTH101\u003c/code\u003e, \u003ccode\u003ePTH104\u003c/code\u003e, \u003ccode\u003ePTH105\u003c/code\u003e, \u003ccode\u003ePTH121\u003c/code\u003e fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/20143\"\u003e#20143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/91995aa5169175de55494bc3bb59781c7a3097fc\"\u003e\u003ccode\u003e91995aa\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epyupgrade\u003c/code\u003e] Fix false positive when class name is shadowed by local variabl...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.13.0...0.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.40.31 to 1.40.36\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/02ae095a9cce0714cee330ee7744e6adf5ed2557\"\u003e\u003ccode\u003e02ae095\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.36'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/5f59e53a3076227719131ef7a01d230df12f491a\"\u003e\u003ccode\u003e5f59e53\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.36\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/5a8e92957f7815c737fcd23f6e728c1c162a7892\"\u003e\u003ccode\u003e5a8e929\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/22fa3d5e8445bb96e085b4663e4fc2cecaf00488\"\u003e\u003ccode\u003e22fa3d5\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.35'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/22e132e418a11c1c623756dab4b4db0bef08ee8b\"\u003e\u003ccode\u003e22e132e\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.35' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/021298e47cf619b0325b9e68e648fb7278aa9f19\"\u003e\u003ccode\u003e021298e\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.35\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/02961e67cc3c95e51795c08767e828bc22d50163\"\u003e\u003ccode\u003e02961e6\u003c/code\u003e\u003c/a\u003e Add changelog entries from botocore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/1564e42c44752bac70ea2cdfbb589bdcb9321cf5\"\u003e\u003ccode\u003e1564e42\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.34'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/b5c8399b34e1fed6a72bdfffe28b7e165f19490f\"\u003e\u003ccode\u003eb5c8399\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.40.34' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/dd6d06bedacbc7022c1a186ad3168e1b60c681f4\"\u003e\u003ccode\u003edd6d06b\u003c/code\u003e\u003c/a\u003e Bumping version to 1.40.34\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.40.31...1.40.36\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `qrcode` from 7.4.2 to 8.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lincolnloop/python-qrcode/blob/main/CHANGES.rst\"\u003eqrcode's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2 (01 May 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize QRColorMask apply_mask method for enhanced performance\u003c/li\u003e\n\u003cli\u003eFix typos on StyledPilImage embeded_* parameters.\nThe old parameters with the typos are still accepted\nfor backward compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1 (02 April 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0 (27 September 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.11 and 3.12.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python \u0026lt;=3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange local development setup to use Poetry_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTestsuite and code quality checks are done through Github Actions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCode quality and formatting utilises ruff_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003etyping_extensions\u003c/code\u003e as a dependency, as it's no longer required\nwith having Python 3.9+ as a requirement.\nhaving Python 3.9+ as a requirement.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOnly allow high error correction rate (\u003ccode\u003eqrcode.ERROR_CORRECT_H\u003c/code\u003e)\nwhen generating\nQR codes with embedded images to ensure content is readable\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _Poetry: \u003ca href=\"https://python-poetry.org\"\u003ehttps://python-poetry.org\u003c/a\u003e\n.. _ruff: \u003ca href=\"https://astral.sh/ruff\"\u003ehttps://astral.sh/ruff\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/lincolnloop/python-qrcode/commit/3704f57a1107dbf553a50f5b531da3859abe19cf\"\u003e\u003ccode\u003e3704f57\u003c/code\u003e\u003c/a\u003e Preparing release 8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/b593a2b86d8f9cd1bc24cc5623ee47cf1aa076b5\"\u003e\u003ccode\u003eb593a2b\u003c/code\u003e\u003c/a\u003e Fix embeded_* typo on paremeters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/d2674f83092d3573e164bb83468e51f59c85bf50\"\u003e\u003ccode\u003ed2674f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/383\"\u003e#383\u003c/a\u003e from btimby/spelling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/2ced7b4b38ea3132793723bbab588d5676fc8bc7\"\u003e\u003ccode\u003e2ced7b4\u003c/code\u003e\u003c/a\u003e Ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/c5e3f0180e025d9c0fd6adf8ed3c9998073c6137\"\u003e\u003ccode\u003ec5e3f01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/372\"\u003e#372\u003c/a\u003e from smalyu/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/cd3cd7bf87fc81860481902ca22d5b7463332b4b\"\u003e\u003ccode\u003ecd3cd7b\u003c/code\u003e\u003c/a\u003e Release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/5dcf89c56417ad37de8dba953f974324ae7b9271\"\u003e\u003ccode\u003e5dcf89c\u003c/code\u003e\u003c/a\u003e Preparing release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/10da1ba2c95886312097608bd4632ba34765e0e0\"\u003e\u003ccode\u003e10da1ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/386\"\u003e#386\u003c/a\u003e from hugovk/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/7cb996d04c6536a2dbf84cccf9fc471a200f0072\"\u003e\u003ccode\u003e7cb996d\u003c/code\u003e\u003c/a\u003e Upgrade Python syntax with pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/dc4831bde0c432e5d878b75818af38e9dc80cc87\"\u003e\u003ccode\u003edc4831b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lincolnloop/python-qrcode/compare/v7.4.2...v8.2\"\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/rafsaf/Tribal-Wars-Planer/pull/662","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/rafsaf%2FTribal-Wars-Planer/issues/662","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/662/packages"}},{"old_version":"8.1","new_version":"8.2","update_type":null,"path":null,"pr_created_at":"2025-09-22T14:20:38.000Z","version_change":"8.1 → 8.2","issue":{"uuid":"2849750136","node_id":"PR_kwDOOJYjkM6p27x4","number":47,"state":"closed","title":"chore(deps): bump the python group across 1 directory with 28 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-10-06T14:21:52.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-22T14:20:38.000Z","updated_at":"2025-10-06T14:21:52.000Z","time_to_close":1209674,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python","update_count":28,"packages":[{"name":"pillow","old_version":"11.1.0","new_version":"11.3.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"whitenoise","old_version":"6.9.0","new_version":"6.11.0","repository_url":"https://github.com/evansd/whitenoise"},{"name":"hiredis","old_version":"3.1.0","new_version":"3.2.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"celery","old_version":"5.4.0","new_version":"5.5.3","repository_url":"https://github.com/celery/celery"},{"name":"django-celery-beat","old_version":"2.7.0","new_version":"2.8.1","repository_url":"https://github.com/celery/django-celery-beat"},{"name":"uvicorn","old_version":"0.34.0","new_version":"0.36.0"},{"name":"uvicorn-worker","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/Kludex/uvicorn-worker"},{"name":"django","old_version":"5.1.8","new_version":"5.2.6","repository_url":"https://github.com/django/django"},{"name":"django-crispy-forms","old_version":"2.3","new_version":"2.4","repository_url":"https://github.com/django-crispy-forms/django-crispy-forms"},{"name":"djangorestframework","old_version":"3.16.0","new_version":"3.16.1","repository_url":"https://github.com/encode/django-rest-framework"},{"name":"django-cors-headers","old_version":"4.7.0","new_version":"4.9.0","repository_url":"https://github.com/adamchainz/django-cors-headers"},{"name":"djangorestframework-simplejwt","old_version":"5.5.0","new_version":"5.5.1","repository_url":"https://github.com/jazzband/djangorestframework-simplejwt"},{"name":"djoser","old_version":"2.3.1","new_version":"2.3.3","repository_url":"https://github.com/sunscrapers/djoser"},{"name":"qrcode","old_version":"8.1","new_version":"8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"},{"name":"psycopg","old_version":"3.2.6","new_version":"3.2.10"},{"name":"sentry-sdk","old_version":"2.25.0","new_version":"2.38.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"watchfiles","old_version":"1.0.4","new_version":"1.1.0","repository_url":"https://github.com/samuelcolvin/watchfiles"},{"name":"mypy","old_version":"1.15.0","new_version":"1.18.2","repository_url":"https://github.com/python/mypy"},{"name":"django-stubs","old_version":"5.1.3","new_version":"5.2.5"},{"name":"pytest","old_version":"8.3.5","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-sugar","old_version":"1.0.0","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"djangorestframework-stubs","old_version":"3.15.3","new_version":"3.16.3","repository_url":"https://github.com/typeddjango/djangorestframework-stubs"},{"name":"ruff","old_version":"0.11.2","new_version":"0.13.1","repository_url":"https://github.com/astral-sh/ruff"},{"name":"coverage","old_version":"7.8.0","new_version":"7.10.7","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"pre-commit","old_version":"4.2.0","new_version":"4.3.0","repository_url":"https://github.com/pre-commit/pre-commit"},{"name":"model-bakery","old_version":"1.20.4","new_version":"1.20.5","repository_url":"https://github.com/model-bakers/model_bakery"},{"name":"django-coverage-plugin","old_version":"3.1.0","new_version":"3.1.1","repository_url":"https://github.com/nedbat/django_coverage_plugin"},{"name":"pytest-django","old_version":"4.11.0","new_version":"4.11.1","repository_url":"https://github.com/pytest-dev/pytest-django"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python group with 28 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.1.0` | `11.3.0` |\n| [whitenoise](https://github.com/evansd/whitenoise) | `6.9.0` | `6.11.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.1.0` | `3.2.1` |\n| [celery](https://github.com/celery/celery) | `5.4.0` | `5.5.3` |\n| [django-celery-beat](https://github.com/celery/django-celery-beat) | `2.7.0` | `2.8.1` |\n| [uvicorn[standard]](https://github.com/Kludex/uvicorn) | `0.34.0` | `0.36.0` |\n| [uvicorn-worker](https://github.com/Kludex/uvicorn-worker) | `0.3.0` | `0.4.0` |\n| [django](https://github.com/django/django) | `5.1.8` | `5.2.6` |\n| [django-crispy-forms](https://github.com/django-crispy-forms/django-crispy-forms) | `2.3` | `2.4` |\n| [djangorestframework](https://github.com/encode/django-rest-framework) | `3.16.0` | `3.16.1` |\n| [django-cors-headers](https://github.com/adamchainz/django-cors-headers) | `4.7.0` | `4.9.0` |\n| [djangorestframework-simplejwt](https://github.com/jazzband/djangorestframework-simplejwt) | `5.5.0` | `5.5.1` |\n| [djoser](https://github.com/sunscrapers/djoser) | `2.3.1` | `2.3.3` |\n| [qrcode](https://github.com/lincolnloop/python-qrcode) | `8.1` | `8.2` |\n| [psycopg[c]](https://github.com/psycopg/psycopg) | `3.2.6` | `3.2.10` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.25.0` | `2.38.0` |\n| [watchfiles](https://github.com/samuelcolvin/watchfiles) | `1.0.4` | `1.1.0` |\n| [mypy](https://github.com/python/mypy) | `1.15.0` | `1.18.2` |\n| [django-stubs[compatible-mypy]](https://github.com/sponsors/typeddjango) | `5.1.3` | `5.2.5` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `8.4.2` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `1.0.0` | `1.1.1` |\n| [djangorestframework-stubs](https://github.com/typeddjango/djangorestframework-stubs) | `3.15.3` | `3.16.3` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.11.2` | `0.13.1` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.8.0` | `7.10.7` |\n| [pre-commit](https://github.com/pre-commit/pre-commit) | `4.2.0` | `4.3.0` |\n| [model-bakery](https://github.com/model-bakers/model_bakery) | `1.20.4` | `1.20.5` |\n| [django-coverage-plugin](https://github.com/nedbat/django_coverage_plugin) | `3.1.0` | `3.1.1` |\n| [pytest-django](https://github.com/pytest-dev/pytest-django) | `4.11.0` | `4.11.1` |\n\n\nUpdates `pillow` from 11.1.0 to 11.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e11.3.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/11.3.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/11.3.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDeprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate fromarray mode argument \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9018\"\u003e#9018\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eDeprecate saving I mode images as PNG \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9023\"\u003e#9023\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9041\"\u003e#9041\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9042\"\u003e#9042\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8912\"\u003e#8912\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8969\"\u003e#8969\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9019\"\u003e#9019\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eImageFont does not handle multiline text \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9000\"\u003e#9000\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated Ubuntu CI targets \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8988\"\u003e#8988\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate MinGW package names \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8987\"\u003e#8987\u003c/a\u003e [\u003ca href=\"https://github.com/H4M5TER\"\u003e\u003ccode\u003e@​H4M5TER\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated docstring \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8943\"\u003e#8943\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMention that tobytes() with the raw encoder uses Pack.c \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8878\"\u003e#8878\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRefactor docs \u003ccode\u003eMakefile\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8933\"\u003e#8933\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd template for quarterly release issue \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8932\"\u003e#8932\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd list of third party plugins \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8910\"\u003e#8910\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate redirected URL \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8919\"\u003e#8919\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eDocs: use sentence case for headers \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8914\"\u003e#8914\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eDocs: remove unused Makefile targets \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8917\"\u003e#8917\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRemove indentation from lists \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8915\"\u003e#8915\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003ePython 3.13 is tested on Arch \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8894\"\u003e#8894\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove XV Thumbnails to read only section \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8893\"\u003e#8893\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8890\"\u003e#8890\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd AVIF to wheels using only aomenc and dav1d AVIF codecs for reduced size \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8858\"\u003e#8858\u003c/a\u003e [\u003ca href=\"https://github.com/fdintino\"\u003e\u003ccode\u003e@​fdintino\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUse same AVIF URL when fetching dependency \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8871\"\u003e#8871\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency mypy to v1.16.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9026\"\u003e#9026\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.49 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9014\"\u003e#9014\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency cibuildwheel to v3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9010\"\u003e#9010\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libjpeg-turbo to 3.1.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9009\"\u003e#9009\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency mypy to v1.16.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8991\"\u003e#8991\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.48 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8940\"\u003e#8940\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated Ghostscript to 10.5.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8939\"\u003e#8939\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 11.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8937\"\u003e#8937\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.3.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8949\"\u003e#8949\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency cibuildwheel to v2.23.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8931\"\u003e#8931\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 11.1.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8904\"\u003e#8904\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003ematch\u003c/code\u003e parameter to \u003ccode\u003epytest.warns()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9038\"\u003e#9038\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eIncrease pytest verbosity \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9040\"\u003e#9040\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eImprove SgiImagePlugin test coverage \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8896\"\u003e#8896\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate ruff pre-commit ID \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8994\"\u003e#8994\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\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/python-pillow/Pillow/blob/main/CHANGES.rst\"\u003epillow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog (Pillow)\u003c/h1\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-pillow/Pillow/commit/89f1f4626a2aaf5f3d5ca6437f41def2998fbe09\"\u003e\u003ccode\u003e89f1f46\u003c/code\u003e\u003c/a\u003e 11.3.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/f2de251c769ed76acfe94b54cc87c2aee77bdadf\"\u003e\u003ccode\u003ef2de251\u003c/code\u003e\u003c/a\u003e Updated check script paths (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9052\"\u003e#9052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/84855d11c8fd790d89507ac1c51a5e393178477a\"\u003e\u003ccode\u003e84855d1\u003c/code\u003e\u003c/a\u003e Raise FileNotFoundError when opening an empty path (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9048\"\u003e#9048\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/204d11d4da15879946c1120c43e6f75b2a338d5b\"\u003e\u003ccode\u003e204d11d\u003c/code\u003e\u003c/a\u003e Raise FileNotFoundError when opening an empty path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/2b39f7581e9637a7262c070d5cebb12fa70f2c86\"\u003e\u003ccode\u003e2b39f75\u003c/code\u003e\u003c/a\u003e Handle IPTC TIFF tags with incorrect type (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8925\"\u003e#8925\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/e7a53ba19b477cc30d35ef9e7aab4b79e5bba172\"\u003e\u003ccode\u003ee7a53ba\u003c/code\u003e\u003c/a\u003e Do not update palette for L mode GIF frame (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8924\"\u003e#8924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c22230b761254f3abf4af774d02b18b4b5eb6c71\"\u003e\u003ccode\u003ec22230b\u003c/code\u003e\u003c/a\u003e Use save parameters as encoderinfo defaults (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9001\"\u003e#9001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/da10ed1cf3c4123a98a2f765d3beaf830d47d113\"\u003e\u003ccode\u003eda10ed1\u003c/code\u003e\u003c/a\u003e Add support for iOS (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9030\"\u003e#9030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/be2b4e78644fdc85e63f08a22514e4d32072439f\"\u003e\u003ccode\u003ebe2b4e7\u003c/code\u003e\u003c/a\u003e Fix qtables and quality scaling (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/8879\"\u003e#8879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/d4162f85056223098fef0ba3f87e58519ba2955f\"\u003e\u003ccode\u003ed4162f8\u003c/code\u003e\u003c/a\u003e Updated return type\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/11.1.0...11.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `whitenoise` from 6.9.0 to 6.11.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/evansd/whitenoise/blob/main/docs/changelog.rst\"\u003ewhitenoise's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.11.0 (2025-09-18)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Django 6.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.10.0 (2025-09-09)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14.\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/evansd/whitenoise/commit/c9c06e9382b92fc959ffdfc3e2ec63057de82561\"\u003e\u003ccode\u003ec9c06e9\u003c/code\u003e\u003c/a\u003e Version 6.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/051c4e997a07fd3ae5e9f3ec092080102ab89d93\"\u003e\u003ccode\u003e051c4e9\u003c/code\u003e\u003c/a\u003e Support Django 6.0 (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/665\"\u003e#665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/c903cc13394895cbb3926e48c7acecf364efcd26\"\u003e\u003ccode\u003ec903cc1\u003c/code\u003e\u003c/a\u003e Version 6.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/a81bcb0ae2dd0c5884ebadb762f46827ecb54d0f\"\u003e\u003ccode\u003ea81bcb0\u003c/code\u003e\u003c/a\u003e docs(django): use the stable version in URLs (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/626\"\u003e#626\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/67b4f32b12a9700b6dcc30ced8e9ad23bf39baa1\"\u003e\u003ccode\u003e67b4f32\u003c/code\u003e\u003c/a\u003e Support Python 3.14 (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/664\"\u003e#664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/da8d333d165be1bdd9e7decbb3a293b5e55ff608\"\u003e\u003ccode\u003eda8d333\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/663\"\u003e#663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/800072482c0652f81864ae78c26539d3dfc765b2\"\u003e\u003ccode\u003e8000724\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/662\"\u003e#662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/8fb339f0eaee9219b1e02a840b5fd2227cf2fbbf\"\u003e\u003ccode\u003e8fb339f\u003c/code\u003e\u003c/a\u003e Upgrade dependencies (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/661\"\u003e#661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/adf64ddfa5329d622cbc4740aec49b7baf0df792\"\u003e\u003ccode\u003eadf64dd\u003c/code\u003e\u003c/a\u003e Use uvx to run tox on GitHub Actions (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/660\"\u003e#660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/evansd/whitenoise/commit/ad6eb204640ff69498f8fc60bd9eb876ee5771b8\"\u003e\u003ccode\u003ead6eb20\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/evansd/whitenoise/issues/659\"\u003e#659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/evansd/whitenoise/compare/6.9.0...6.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `hiredis` from 3.1.0 to 3.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/hiredis-py/releases\"\u003ehiredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.2.1\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/uglide\"\u003e\u003ccode\u003e@​uglide\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.2.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce new type for RESP3 PUSH notifications (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/208\"\u003e#208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRun integration workflow on version branches (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/210\"\u003e#210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate hiredis to 1.3.0 (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/203\"\u003e#203\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/uglide\"\u003e\u003ccode\u003e@​uglide\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.1.1\u003c/h2\u003e\n\u003ch2\u003eSummary\u003c/h2\u003e\n\u003cp\u003eThis is a maintenance release that addresses issues in RESP3 parsing.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix memory leaks and segfaults in RESP3 map parsing (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/204\"\u003e#204\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/205\"\u003e#205\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/206\"\u003e#206\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/redis/hiredis-py/commit/c6febde98009b005ad35702c40aba5f926807754\"\u003e\u003ccode\u003ec6febde\u003c/code\u003e\u003c/a\u003e Version 3.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/bbfc3a6133c5e03152172d7f77415a0e1f0266f2\"\u003e\u003ccode\u003ebbfc3a6\u003c/code\u003e\u003c/a\u003e Fix assertion in reader.c (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/212\"\u003e#212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/f715de2e7c636fd1649e9e038aaba80b05379df2\"\u003e\u003ccode\u003ef715de2\u003c/code\u003e\u003c/a\u003e Version 3.2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/d5548270b6f2ac00be36d6c68403f1d94f81d086\"\u003e\u003ccode\u003ed554827\u003c/code\u003e\u003c/a\u003e Introduce new type for RESP3 PUSH notifications (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/208\"\u003e#208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/58fe9603cd7bcb921de7ba3f43e1556f1df81e02\"\u003e\u003ccode\u003e58fe960\u003c/code\u003e\u003c/a\u003e Run integration workflow on version branches (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/210\"\u003e#210\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/86089654830a9c5f11d157173e84d7b5ba30eda4\"\u003e\u003ccode\u003e8608965\u003c/code\u003e\u003c/a\u003e Update hiredis to 1.3.0 (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/203\"\u003e#203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/ac31d58c5f78090fdfb165f6ecef4e1a539c20a4\"\u003e\u003ccode\u003eac31d58\u003c/code\u003e\u003c/a\u003e Bump version to 3.2.0-dev (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/207\"\u003e#207\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/7e77f22963e8889dea6165bd6ac26203645cfb04\"\u003e\u003ccode\u003e7e77f22\u003c/code\u003e\u003c/a\u003e Fix memory leak in RESP3 map parsing (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/204\"\u003e#204\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/hiredis-py/commit/5b34a0e2aade3f5669e92e06b843858aaea12c30\"\u003e\u003ccode\u003e5b34a0e\u003c/code\u003e\u003c/a\u003e Use GitHub Releases to track changelogs (\u003ca href=\"https://redirect.github.com/redis/hiredis-py/issues/202\"\u003e#202\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/hiredis-py/compare/v3.1.0...v3.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.4.0 to 5.5.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.5.3\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003emake the tests run on python 3.13 for gcs backend by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9677\"\u003ecelery/celery#9677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded DeepWiki to README by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9683\"\u003ecelery/celery#9683\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLimit redis to \u0026lt;=v5.2.1 to match Kombu by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9693\"\u003ecelery/celery#9693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse EX_OK instead of literal zero by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9684\"\u003ecelery/celery#9684\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake wheel metadata reproducible by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9687\"\u003ecelery/celery#9687\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003elet celery install from kombu dependencies for better align by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9696\"\u003ecelery/celery#9696\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix stamping documentation to clarify stamped_headers key is optional in visitor methods by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9697\"\u003ecelery/celery#9697\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport apply_async without queue argument on quorum queues by \u003ca href=\"https://github.com/bityob\"\u003e\u003ccode\u003e@​bityob\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9686\"\u003ecelery/celery#9686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdated rabbitmq doc about using quorum queues with task routes by \u003ca href=\"https://github.com/bityob\"\u003e\u003ccode\u003e@​bityob\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9707\"\u003ecelery/celery#9707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd: Dumper Unit Test by \u003ca href=\"https://github.com/yiyu0x\"\u003e\u003ccode\u003e@​yiyu0x\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9711\"\u003ecelery/celery#9711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd unit test for event.group_from by \u003ca href=\"https://github.com/rogerforlife\"\u003e\u003ccode\u003e@​rogerforlife\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9709\"\u003ecelery/celery#9709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: add beat_cron_starting_deadline documentation warning by \u003ca href=\"https://github.com/alirafiei75\"\u003e\u003ccode\u003e@​alirafiei75\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9712\"\u003ecelery/celery#9712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: resolve issue \u003ca href=\"https://redirect.github.com/celery/celery/issues/9569\"\u003e#9569\u003c/a\u003e by supporting distinct broker transport options for workers by \u003ca href=\"https://github.com/yiyu0x\"\u003e\u003ccode\u003e@​yiyu0x\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9695\"\u003ecelery/celery#9695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes issue with retry callback arguments in DelayedDelivery by \u003ca href=\"https://github.com/maccinza\"\u003e\u003ccode\u003e@​maccinza\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9708\"\u003ecelery/celery#9708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eget_exchange-unit-test by \u003ca href=\"https://github.com/rogerforlife\"\u003e\u003ccode\u003e@​rogerforlife\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9710\"\u003ecelery/celery#9710\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eISSUE-9704: Update documentation of result_expires, filesystem backend is supported by \u003ca href=\"https://github.com/MattiasDC\"\u003e\u003ccode\u003e@​MattiasDC\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9716\"\u003ecelery/celery#9716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eupdate to blacksmith ubuntu 24.04 by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9717\"\u003ecelery/celery#9717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded unit tests for celery.utils.iso8601 by \u003ca href=\"https://github.com/jaiganeshs21\"\u003e\u003ccode\u003e@​jaiganeshs21\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9725\"\u003ecelery/celery#9725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate introduction.rst docs by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9728\"\u003ecelery/celery#9728\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.5.3 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9732\"\u003ecelery/celery#9732\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/bityob\"\u003e\u003ccode\u003e@​bityob\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9686\"\u003ecelery/celery#9686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yiyu0x\"\u003e\u003ccode\u003e@​yiyu0x\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9711\"\u003ecelery/celery#9711\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rogerforlife\"\u003e\u003ccode\u003e@​rogerforlife\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9709\"\u003ecelery/celery#9709\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alirafiei75\"\u003e\u003ccode\u003e@​alirafiei75\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9712\"\u003ecelery/celery#9712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/maccinza\"\u003e\u003ccode\u003e@​maccinza\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9708\"\u003ecelery/celery#9708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MattiasDC\"\u003e\u003ccode\u003e@​MattiasDC\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9716\"\u003ecelery/celery#9716\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaiganeshs21\"\u003e\u003ccode\u003e@​jaiganeshs21\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9725\"\u003ecelery/celery#9725\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.5.2...v5.5.3\"\u003ehttps://github.com/celery/celery/compare/v5.5.2...v5.5.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.5.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix calculating remaining time across DST changes by \u003ca href=\"https://github.com/imrivera\"\u003e\u003ccode\u003e@​imrivera\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9669\"\u003ecelery/celery#9669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003esetup_logger\u003c/code\u003e from COMPAT_MODULES by \u003ca href=\"https://github.com/rconradharris\"\u003e\u003ccode\u003e@​rconradharris\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9668\"\u003ecelery/celery#9668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix mongodb bullet and fix github links in contributions section by \u003ca href=\"https://github.com/jabberwock404\"\u003e\u003ccode\u003e@​jabberwock404\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9672\"\u003ecelery/celery#9672\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.5.2 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9675\"\u003ecelery/celery#9675\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/imrivera\"\u003e\u003ccode\u003e@​imrivera\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9669\"\u003ecelery/celery#9669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/rconradharris\"\u003e\u003ccode\u003e@​rconradharris\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9668\"\u003ecelery/celery#9668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jabberwock404\"\u003e\u003ccode\u003e@​jabberwock404\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9672\"\u003ecelery/celery#9672\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.5.1...v5.5.2\"\u003ehttps://github.com/celery/celery/compare/v5.5.1...v5.5.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.5.1\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\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.5.3\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-06-01\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- make the tests run on python 3.13 for gcs backend ([#9677](https://github.com/celery/celery/issues/9677))\n- Added DeepWiki to README ([#9683](https://github.com/celery/celery/issues/9683))\n- Limit redis to \u0026lt;=v5.2.1 to match Kombu ([#9693](https://github.com/celery/celery/issues/9693))\n- Use EX_OK instead of literal zero ([#9684](https://github.com/celery/celery/issues/9684))\n- Make wheel metadata reproducible ([#9687](https://github.com/celery/celery/issues/9687))\n- let celery install from kombu dependencies for better align ([#9696](https://github.com/celery/celery/issues/9696))\n- Fix stamping documentation to clarify stamped_headers key is optional in visitor methods ([#9697](https://github.com/celery/celery/issues/9697))\n- Support apply_async without queue argument on quorum queues ([#9686](https://github.com/celery/celery/issues/9686))\n- Updated rabbitmq doc about using quorum queues with task routes ([#9707](https://github.com/celery/celery/issues/9707))\n- Add: Dumper Unit Test ([#9711](https://github.com/celery/celery/issues/9711))\n- Add unit test for event.group_from ([#9709](https://github.com/celery/celery/issues/9709))\n- refactor: add beat_cron_starting_deadline documentation warning ([#9712](https://github.com/celery/celery/issues/9712))\n- fix: resolve issue [#9569](https://github.com/celery/celery/issues/9569) by supporting distinct broker transport options for workers ([#9695](https://github.com/celery/celery/issues/9695))\n- Fixes issue with retry callback arguments in DelayedDelivery ([#9708](https://github.com/celery/celery/issues/9708))\n- get_exchange-unit-test ([#9710](https://github.com/celery/celery/issues/9710))\n- ISSUE-9704: Update documentation of result_expires, filesystem backend is supported ([#9716](https://github.com/celery/celery/issues/9716))\n- update to blacksmith ubuntu 24.04 ([#9717](https://github.com/celery/celery/issues/9717))\n- Added unit tests for celery.utils.iso8601 ([#9725](https://github.com/celery/celery/issues/9725))\n- Update introduction.rst docs ([#9728](https://github.com/celery/celery/issues/9728))\n- Prepare for release: v5.5.3 ([#9732](https://github.com/celery/celery/issues/9732))\n\u003cp\u003e.. _version-5.5.2:\u003c/p\u003e\n\u003ch1\u003e5.5.2\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-04-25\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix calculating remaining time across DST changes (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9669\"\u003e#9669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003esetup_logger\u003c/code\u003e from COMPAT_MODULES (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9668\"\u003e#9668\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mongodb bullet and fix github links in contributions section (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9672\"\u003e#9672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.5.2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9675\"\u003e#9675\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _version-5.5.1:\u003c/p\u003e\n\u003ch1\u003e5.5.1\u003c/h1\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/celery/celery/commit/088c39c0f78b23a9cdf8d1c9e265ea64d02cfd86\"\u003e\u003ccode\u003e088c39c\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.5.3 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9732\"\u003e#9732\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0c1c52b7c361b65c286b30b13973df741799f4ea\"\u003e\u003ccode\u003e0c1c52b\u003c/code\u003e\u003c/a\u003e Update introduction.rst docs (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9728\"\u003e#9728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/778b009ffbad7c7d8061a4e7cc4c4445ec541da3\"\u003e\u003ccode\u003e778b009\u003c/code\u003e\u003c/a\u003e Added unit tests for celery.utils.iso8601 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9725\"\u003e#9725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/b00c1446d809b8909c4932674c49a7659838aaa6\"\u003e\u003ccode\u003eb00c144\u003c/code\u003e\u003c/a\u003e update to blacksmith ubuntu 24.04\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/5aae2ca5f455e148cd59de89907459265c5b81fc\"\u003e\u003ccode\u003e5aae2ca\u003c/code\u003e\u003c/a\u003e ISSUE-9704: Update documentation of , filesystem backend is supported if cele...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/7cf9d8987017ee6414644ff7bf32756860255d2a\"\u003e\u003ccode\u003e7cf9d89\u003c/code\u003e\u003c/a\u003e get_exchange-unit-test (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9710\"\u003e#9710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/b06e53f324f0cfe2b1c98b99d7a8a158d7034dea\"\u003e\u003ccode\u003eb06e53f\u003c/code\u003e\u003c/a\u003e Fixes issue with retry callback argument types in DelayedDelivery (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9708\"\u003e#9708\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/b6cab29e6932f100c9f30706ce2600ccff5e14e3\"\u003e\u003ccode\u003eb6cab29\u003c/code\u003e\u003c/a\u003e fix: resolve issue \u003ca href=\"https://redirect.github.com/celery/celery/issues/9569\"\u003e#9569\u003c/a\u003e by supporting distinct broker transport options for ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/5fc068cd4561ddddebaa5abdde947a90105fa59e\"\u003e\u003ccode\u003e5fc068c\u003c/code\u003e\u003c/a\u003e refactor: add beat_cron_starting_deadline documentation warning (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9712\"\u003e#9712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/c7bb67f7412c61477473299ae2f251d5731be3c1\"\u003e\u003ccode\u003ec7bb67f\u003c/code\u003e\u003c/a\u003e Add unit test for event.group_from (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9709\"\u003e#9709\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.4.0...v5.5.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-celery-beat` from 2.7.0 to 2.8.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/django-celery-beat/releases\"\u003edjango-celery-beat's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.8.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/876\"\u003ecelery/django-celery-beat#876\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/880\"\u003ecelery/django-celery-beat#880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor / all_as_schedule crontab query optimization by \u003ca href=\"https://github.com/alirafiei75\"\u003e\u003ccode\u003e@​alirafiei75\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/879\"\u003ecelery/django-celery-beat#879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/884\"\u003ecelery/django-celery-beat#884\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConsider server timezone on _get_timezone_offset instead of django's settings by \u003ca href=\"https://github.com/iwalucas\"\u003e\u003ccode\u003e@​iwalucas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/886\"\u003ecelery/django-celery-beat#886\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePeriodic task querying is a separate method by \u003ca href=\"https://github.com/maciej-gol\"\u003e\u003ccode\u003e@​maciej-gol\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/883\"\u003ecelery/django-celery-beat#883\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/889\"\u003ecelery/django-celery-beat#889\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/iwalucas\"\u003e\u003ccode\u003e@​iwalucas\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/886\"\u003ecelery/django-celery-beat#886\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/maciej-gol\"\u003e\u003ccode\u003e@​maciej-gol\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/883\"\u003ecelery/django-celery-beat#883\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/django-celery-beat/compare/v2.8.0...v2.8.1\"\u003ehttps://github.com/celery/django-celery-beat/compare/v2.8.0...v2.8.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.8.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a new step to upload code coverage report to codecov by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/793\"\u003ecelery/django-celery-beat#793\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged codecov branch from master to main in README.rst by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/794\"\u003ecelery/django-celery-beat#794\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003erequirements/runtime.txt: Django\u0026gt;=2.2,\u0026lt;6.0 by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/792\"\u003ecelery/django-celery-beat#792\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/795\"\u003ecelery/django-celery-beat#795\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIssue 796: remove days of the week from human readable description when the whole week is specified by \u003ca href=\"https://github.com/vkhudiakova\"\u003e\u003ccode\u003e@​vkhudiakova\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/797\"\u003ecelery/django-celery-beat#797\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eblacksmith.sh: Migrate workflows to Blacksmith by \u003ca href=\"https://github.com/blacksmith-sh\"\u003e\u003ccode\u003e@​blacksmith-sh\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/804\"\u003ecelery/django-celery-beat#804\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Farsi translation by \u003ca href=\"https://github.com/hamidfzm\"\u003e\u003ccode\u003e@​hamidfzm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/688\"\u003ecelery/django-celery-beat#688\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd Python 3.13 to the testing by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/813\"\u003ecelery/django-celery-beat#813\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix 'exipres', 'expire_seconds' not working normal as expected by \u003ca href=\"https://github.com/x-7\"\u003e\u003ccode\u003e@​x-7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/816\"\u003ecelery/django-celery-beat#816\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/820\"\u003ecelery/django-celery-beat#820\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix long period task will never be triggered by \u003ca href=\"https://github.com/daydaychen\"\u003e\u003ccode\u003e@​daydaychen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/717\"\u003ecelery/django-celery-beat#717\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/823\"\u003ecelery/django-celery-beat#823\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\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 in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/825\"\u003ecelery/django-celery-beat#825\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix for missing periodic task name in results by \u003ca href=\"https://github.com/ntindicator\"\u003e\u003ccode\u003e@​ntindicator\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/812\"\u003ecelery/django-celery-beat#812\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/837\"\u003ecelery/django-celery-beat#837\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/839\"\u003ecelery/django-celery-beat#839\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/840\"\u003ecelery/django-celery-beat#840\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003erefactor(db-scheduler): optimize all_as_schedule query by \u003ca href=\"https://github.com/alirafiei75\"\u003e\u003ccode\u003e@​alirafiei75\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/835\"\u003ecelery/django-celery-beat#835\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efix(tests): correct assertion in excluded hours test by \u003ca href=\"https://github.com/kyonlee\"\u003e\u003ccode\u003e@​kyonlee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/858\"\u003ecelery/django-celery-beat#858\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efeat(admin): add task field to search_fields by \u003ca href=\"https://github.com/kyonlee\"\u003e\u003ccode\u003e@​kyonlee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/857\"\u003ecelery/django-celery-beat#857\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003epre-commit: Upgrade to ruff v0.11.2 by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/859\"\u003ecelery/django-celery-beat#859\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/860\"\u003ecelery/django-celery-beat#860\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd django 5.2rc1 to test matrix by \u003ca href=\"https://github.com/jrobichaud\"\u003e\u003ccode\u003e@​jrobichaud\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/862\"\u003ecelery/django-celery-beat#862\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eadded django 5.2rc1 lts and trim down django versions by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/865\"\u003ecelery/django-celery-beat#865\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eupdate python version for docker and copy rights by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/866\"\u003ecelery/django-celery-beat#866\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ereintroduce python 3.8 in the CI by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/867\"\u003ecelery/django-celery-beat#867\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix the time calculation problem caused by start_time by \u003ca href=\"https://github.com/JinRiYao2001\"\u003e\u003ccode\u003e@​JinRiYao2001\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/844\"\u003ecelery/django-celery-beat#844\u003c/a\u003e\u003c/p\u003e\n\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/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/793\"\u003ecelery/django-celery-beat#793\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vkhudiakova\"\u003e\u003ccode\u003e@​vkhudiakova\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/django-celery-beat/pull/797\"\u003ecelery/django-celery-beat#797\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/celery/django-celery-beat/blob/main/Changelog\"\u003edjango-celery-beat's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.8.1\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-05-13\n:release-by: Asif Saif Uddin (\u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed regression by big code refactoring.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _version-2.8.0:\u003c/p\u003e\n\u003ch1\u003e2.8.0\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-04-16\n:release-by: Asif Saif Uddin (\u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd official support for Django 5.2.\u003c/li\u003e\n\u003cli\u003eIssue 796: remove days of the week from human readable description when the whole week is specified.\u003c/li\u003e\n\u003cli\u003efix 'exipres', 'expire_seconds' not working normal as expected.\u003c/li\u003e\n\u003cli\u003efix long period task will never be triggered (\u003ca href=\"https://redirect.github.com/celery/django-celery-beat/issues/717\"\u003e#717\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix for missing periodic task name in results (\u003ca href=\"https://redirect.github.com/celery/django-celery-beat/issues/812\"\u003e#812\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003erefactor(db-scheduler): optimize all_as_schedule query (\u003ca href=\"https://redirect.github.com/celery/django-celery-beat/issues/835\"\u003e#835\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003efeat(admin): add task field to search_fields.\u003c/li\u003e\n\u003cli\u003eFix the time calculation problem caused by start_time (\u003ca href=\"https://redirect.github.com/celery/django-celery-beat/issues/844\"\u003e#844\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdded Python 3.13 support.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _version-2.7.0:\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/celery/django-celery-beat/commit/2a20e5a9d2233236af73a4058cb140a733bbf5d3\"\u003e\u003ccode\u003e2a20e5a\u003c/code\u003e\u003c/a\u003e Bump version: 2.8.0 → 2.8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/django-celery-beat/commit/1466580e6afe15c5cda8feaeaf9be22a988d3b9b\"\u003e\u003ccode\u003e1466580\u003c/code\u003e\u003c/a\u003e added changelog entry for v2.8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/django-celery-beat/commit/3728f7a23c0dbb9d18556f90830466dd02544073\"\u003e\u003ccode\u003e3728f7a\u003c/code\u003e\u003c/a\u003e improve copyright\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/django-celery-beat/commit/5bebe6b89d197c19a4a0eca3a68a550a3d34fb1c\"\u003e\u003ccode\u003e5bebe6b\u003c/code\u003e\u003c/a\u003e remove flake8plus from make file as not needed anymore\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/django-celery-beat/commit/62ba138b78d79295625cb340d8bcc19f37808022\"\u003e\u003ccode\u003e62ba138\u003c/code\u003e\u003c/a\u003e use django 5.2 stable version in ci\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/django-celery-beat/commit/942154f335599a166e7702a34117a296810bdefc\"\u003e\u003ccode\u003e942154f\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/celery/django-celery-beat/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/django-celery-beat/commit/d78ba7a908a62d48108e16b51c70a2e0dace17dd\"\u003e\u003ccode\u003ed78ba7a\u003c/code\u003e\u003c/a\u003e Make list (\u003ca href=\"https://redirect.github.com/celery/django-celery-beat/issues/883\"\u003e#883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/django-celery-beat/commit/e64526219f52270e1ed464467ce8a6336eea2380\"\u003e\u003ccode\u003ee645262\u003c/code\u003e\u003c/a\u003e Consider server timezone on _get_timezone_offset instead of django's settings...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/django-celery-beat/commit/0c5b652ffa318818d6aebf45e18ef9f3b37e29dd\"\u003e\u003ccode\u003e0c5b652\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/celery/django-celery-beat/issues/884\"\u003e#884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/django-celery-beat/commit/87c059706506994f677e82426c80028ad9894af1\"\u003e\u003ccode\u003e87c0597\u003c/code\u003e\u003c/a\u003e Refactor / all_as_schedule crontab query optimization (\u003ca href=\"https://redirect.github.com/celery/django-celery-beat/issues/879\"\u003e#879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/django-celery-beat/compare/v2.7.0...v2.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn[standard]` from 0.34.0 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[standard]'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\u003ch2\u003eVersion 0.34.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFlush the stdout buffer on Windows to trigger reload by \u003ca href=\"https://github.com/jamesh1999\"\u003e\u003ccode\u003e@​jamesh1999\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2604\"\u003eencode/uvicorn#2604\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/jamesh1999\"\u003e\u003ccode\u003e@​jamesh1999\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/encode/uvicorn/pull/2604\"\u003eencode/uvicorn#2604\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[standard]'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\u003ch2\u003e0.34.2 (April 19, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFlush stdout buffer on Windows to trigger reload (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2604\"\u003e#2604\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.34.1 (April 13, 2025)\u003c/h2\u003e\n\u003ch3\u003eDeprecated\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate \u003ccode\u003eServerState\u003c/code\u003e in the main module (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2581\"\u003e#2581\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.0...0.36.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn-worker` from 0.3.0 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn-worker/releases\"\u003euvicorn-worker's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd official support for Python 3.13 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-worker/pull/36\"\u003eKludex/uvicorn-worker#36\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport uvicorn \u0026gt;= 0.36.0 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-worker/pull/37\"\u003eKludex/uvicorn-worker#37\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion 0.4.0 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-worker/pull/38\"\u003eKludex/uvicorn-worker#38\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-worker/compare/0.3.0...0.4.0\"\u003ehttps://github.com/Kludex/uvicorn-worker/compare/0.3.0...0.4.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/Kludex/uvicorn-worker/commit/cd29cc6447cff3abc968e930023dc97e5e5080f9\"\u003e\u003ccode\u003ecd29cc6\u003c/code\u003e\u003c/a\u003e Version 0.4.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn-worker/issues/38\"\u003e#38\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn-worker/commit/c6019eb3448768f67d8f7541be656d17bed2fcbb\"\u003e\u003ccode\u003ec6019eb\u003c/code\u003e\u003c/a\u003e Support uvicorn \u0026gt;= 0.36.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn-worker/issues/37\"\u003e#37\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn-worker/commit/b96ea287e4ad3ee393cbbaf9d8ddcdae6cb46819\"\u003e\u003ccode\u003eb96ea28\u003c/code\u003e\u003c/a\u003e Bump the python-packages group across 1 directory with 9 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn-worker/issues/33\"\u003e#33\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn-worker/commit/0b796fd2724c38ef2d971c37fbfceaa331ec5aab\"\u003e\u003ccode\u003e0b796fd\u003c/code\u003e\u003c/a\u003e Add official support for Python 3.13 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn-worker/issues/36\"\u003e#36\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Kludex/uvicorn-worker/compare/0.3.0...0.4.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.1.8 to 5.2.6\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/75c4403f07b8ad25893f7832dbe8fc6814b53b2d\"\u003e\u003ccode\u003e75c4403\u003c/code\u003e\u003c/a\u003e [5.2.x] Bumped version for 5.2.6 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/4c044fcc866ec226f612c475950b690b0139d243\"\u003e\u003ccode\u003e4c044fc\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed CVE-2025-57833 -- Protected FilteredRelation against SQL inject...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/e87ca3d6fa6fb12e06f9c755ecd3ebc3a528e02b\"\u003e\u003ccode\u003ee87ca3d\u003c/code\u003e\u003c/a\u003e [5.2.x] Made cosmetic edits to 5.2.6 release notes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ebec2c93230216f128184f5563215ad7760a7fc5\"\u003e\u003ccode\u003eebec2c9\u003c/code\u003e\u003c/a\u003e [5.2.x] Removed unused import in docs/ref/models/expressions.txt example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/ace59cb83b87a4fdeab29424ea134e78de24fb27\"\u003e\u003ccode\u003eace59cb\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/36431\"\u003e#36431\u003c/a\u003e -- Returned tuples for multi-column ForeignObject in val...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/16a12a979989565f471ef1a2011bab59f8226f05\"\u003e\u003ccode\u003e16a12a9\u003c/code\u003e\u003c/a\u003e [5.2.x] Fixed \u003ca href=\"https://redirect.github.com/django/django/issues/35831\"\u003e#35831\u003c/a\u003e -- Documented the model form meta API in model form refe...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/51753bc80925ecbe07d944dd22449d5ca867b9d4\"\u003e\u003ccode\u003e51753bc\u003c/code\u003e\u003c/a\u003e [5.2.x] Added stub release notes and release date for 5.2.6, 5.1.12, and 4.2.24.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/a4864551259f70e044043cf64b6925b816352156\"\u003e\u003ccode\u003ea486455\u003c/code\u003e\u003c/a\u003e [5.2.x] Corrected definition of \u0026quot;needsinfo\u0026quot; triage stage in contributing guide.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/f8e572e843b037dea9c79bcecd7b9626b2b4ceba\"\u003e\u003ccode\u003ef8e572e\u003c/code\u003e\u003c/a\u003e [5.2.x] Removed reference to flake8 file exclusions.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django/django/commit/9c9ed6fd7a8399113a18b979c8cd6f04cfbfa30b\"\u003e\u003ccode\u003e9c9ed6f\u003c/code\u003e\u003c/a\u003e [5.2.x] Refs \u003ca href=\"https://redirect.github.com/django/django/issues/35530\"\u003e#35530\u003c/a\u003e -- Corrected deprecation message in auth.alogin().\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/django/django/compare/5.1.8...5.2.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `django-crispy-forms` from 2.3 to 2.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/releases\"\u003edjango-crispy-forms's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eConfirmed support for Django 5.2.\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/django-crispy-forms/django-crispy-forms/blob/main/CHANGELOG.md\"\u003edjango-crispy-forms's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4 (2025-04-13)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eConfirmed support for Django 5.2.\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/django-crispy-forms/django-crispy-forms/commit/b3f1d2255be531bba4acb67311a5d3c00dbd9973\"\u003e\u003ccode\u003eb3f1d22\u003c/code\u003e\u003c/a\u003e 2.4 Release. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1412\"\u003e#1412\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/ac2479e16f48c265897acd2ce2455af6ad9840ef\"\u003e\u003ccode\u003eac2479e\u003c/code\u003e\u003c/a\u003e Update GitHub action versions in workflows. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1411\"\u003e#1411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/bb7030a9a07f327bc725a62341ae0e14526f82e6\"\u003e\u003ccode\u003ebb7030a\u003c/code\u003e\u003c/a\u003e Confirmed Django 5.2 support. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1407\"\u003e#1407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/a4fb3c7be1129cbd0de7895413cdb926fbb83d80\"\u003e\u003ccode\u003ea4fb3c7\u003c/code\u003e\u003c/a\u003e Pre-commit autoupdate. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1404\"\u003e#1404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/commit/e7cc89a1a298515b3e934312f8aa1b21617c63a8\"\u003e\u003ccode\u003ee7cc89a\u003c/code\u003e\u003c/a\u003e Added Python 3.13 support. (\u003ca href=\"https://redirect.github.com/django-crispy-forms/django-crispy-forms/issues/1403\"\u003e#1403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/django-crispy-forms/django-crispy-forms/compare/2.3...2.4\"\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.0 to 3.16.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\u003ev3.16.1\u003c/h2\u003e\n\u003cp\u003eThis release fixes a few bugs, clean-up some old code paths for unsupported Python versions and improve translations.\u003c/p\u003e\n\u003ch2\u003eMinor changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup optional \u003ccode\u003ebackports.zoneinfo\u003c/code\u003e dependency and conditions on unsupported Python 3.8 and lower in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9681\"\u003e#9681\u003c/a\u003e. Python versions prior to 3.9 were already unsupported so this isn't considered as a breaking change.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression in \u003ccode\u003eunique_together\u003c/code\u003e validation with \u003ccode\u003eSerializerMethodField\u003c/code\u003e in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9712\"\u003e#9712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eUniqueTogetherValidator\u003c/code\u003e to handle fields with \u003ccode\u003esource\u003c/code\u003e attribute in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9688\"\u003e#9688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop HTML line breaks on long headers in browsable API in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9438\"\u003e#9438\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTranslations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Kazakh locale support in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9713\"\u003e#9713\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate translations for Korean translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9571\"\u003e#9571\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate German translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9676\"\u003e#9676\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Chinese translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9675\"\u003e#9675\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Arabic translations-sal in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9595\"\u003e#9595\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Persian translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9576\"\u003e#9576\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Spanish translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9701\"\u003e#9701\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Turkish Translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9749\"\u003e#9749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some typos in Brazilian Portuguese translations in \u003ca href=\"https://redirect.github.com/encode/django-rest-framework/pull/9673\"\u003e#9673\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumen...\n\n_Description has been truncated_","html_url":"https://github.com/shrestic/rod/pull/47","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/shrestic%2Frod/issues/47","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/47/packages"}},{"old_version":"7.4.2","new_version":"8.2","update_type":null,"path":null,"pr_created_at":"2025-09-22T06:48:13.000Z","version_change":"7.4.2 → 8.2","issue":{"uuid":"3439442005","node_id":"PR_kwDOPc3bps6pwxh7","number":28,"state":"closed","title":"chore(deps): bump qrcode from 7.4.2 to 8.2","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2025-09-23T15:07:46.000Z","author_association":"NONE","state_reason":null,"created_at":"2025-09-22T06:48:13.000Z","updated_at":"2025-09-23T15:07:46.000Z","time_to_close":116373,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"qrcode","old_version":"7.4.2","new_version":"8.2","repository_url":"https://github.com/lincolnloop/python-qrcode"}],"path":null,"ecosystem":"pip"},"body":"Bumps [qrcode](https://github.com/lincolnloop/python-qrcode) from 7.4.2 to 8.2.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lincolnloop/python-qrcode/blob/main/CHANGES.rst\"\u003eqrcode's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.2 (01 May 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize QRColorMask apply_mask method for enhanced performance\u003c/li\u003e\n\u003cli\u003eFix typos on StyledPilImage embeded_* parameters.\nThe old parameters with the typos are still accepted\nfor backward compatibility.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.1 (02 April 2025)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.0 (27 September 2024)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded support for Python 3.11 and 3.12.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop support for Python \u0026lt;=3.8.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChange local development setup to use Poetry_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTestsuite and code quality checks are done through Github Actions.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCode quality and formatting utilises ruff_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003etyping_extensions\u003c/code\u003e as a dependency, as it's no longer required\nwith having Python 3.9+ as a requirement.\nhaving Python 3.9+ as a requirement.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOnly allow high error correction rate (\u003ccode\u003eqrcode.ERROR_CORRECT_H\u003c/code\u003e)\nwhen generating\nQR codes with embedded images to ensure content is readable\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _Poetry: \u003ca href=\"https://python-poetry.org\"\u003ehttps://python-poetry.org\u003c/a\u003e\n.. _ruff: \u003ca href=\"https://astral.sh/ruff\"\u003ehttps://astral.sh/ruff\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/lincolnloop/python-qrcode/commit/3704f57a1107dbf553a50f5b531da3859abe19cf\"\u003e\u003ccode\u003e3704f57\u003c/code\u003e\u003c/a\u003e Preparing release 8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/b593a2b86d8f9cd1bc24cc5623ee47cf1aa076b5\"\u003e\u003ccode\u003eb593a2b\u003c/code\u003e\u003c/a\u003e Fix embeded_* typo on paremeters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/d2674f83092d3573e164bb83468e51f59c85bf50\"\u003e\u003ccode\u003ed2674f8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/383\"\u003e#383\u003c/a\u003e from btimby/spelling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/2ced7b4b38ea3132793723bbab588d5676fc8bc7\"\u003e\u003ccode\u003e2ced7b4\u003c/code\u003e\u003c/a\u003e Ruff formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/c5e3f0180e025d9c0fd6adf8ed3c9998073c6137\"\u003e\u003ccode\u003ec5e3f01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/372\"\u003e#372\u003c/a\u003e from smalyu/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/cd3cd7bf87fc81860481902ca22d5b7463332b4b\"\u003e\u003ccode\u003ecd3cd7b\u003c/code\u003e\u003c/a\u003e Release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/5dcf89c56417ad37de8dba953f974324ae7b9271\"\u003e\u003ccode\u003e5dcf89c\u003c/code\u003e\u003c/a\u003e Preparing release 8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/10da1ba2c95886312097608bd4632ba34765e0e0\"\u003e\u003ccode\u003e10da1ba\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/lincolnloop/python-qrcode/issues/386\"\u003e#386\u003c/a\u003e from hugovk/main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/7cb996d04c6536a2dbf84cccf9fc471a200f0072\"\u003e\u003ccode\u003e7cb996d\u003c/code\u003e\u003c/a\u003e Upgrade Python syntax with pyupgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lincolnloop/python-qrcode/commit/dc4831bde0c432e5d878b75818af38e9dc80cc87\"\u003e\u003ccode\u003edc4831b\u003c/code\u003e\u003c/a\u003e Add support for Python 3.13\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lincolnloop/python-qrcode/compare/v7.4.2...v8.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=qrcode\u0026package-manager=pip\u0026previous-version=7.4.2\u0026new-version=8.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/gaus-1/ExamFlow/pull/28","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/gaus-1%2FExamFlow/issues/28","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/28/packages"}}]}