{"id":3040,"name":"phonenumbers","ecosystem":"pip","repository_url":"https://github.com/daviddrysdale/python-phonenumbers","issues_count":409,"created_at":"2025-06-06T15:56:07.573Z","updated_at":"2025-06-06T15:56:07.573Z","purl":"pkg:pypi/phonenumbers","metadata":{"id":2850852,"name":"phonenumbers","ecosystem":"pypi","description":"Python version of Google's common library for parsing, formatting, storing and validating international phone numbers.","homepage":"https://github.com/daviddrysdale/python-phonenumbers","licenses":"Apache License 2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/daviddrysdale/python-phonenumbers","keywords_array":[],"namespace":null,"versions_count":260,"first_release_published_at":"2011-05-04T20:27:49.000Z","latest_release_published_at":"2024-12-13T06:53:07.000Z","latest_release_number":"8.13.52","last_synced_at":"2025-01-14T14:56:11.472Z","created_at":"2022-04-10T12:02:26.874Z","updated_at":"2025-01-14T15:17:34.539Z","registry_url":"https://pypi.org/project/phonenumbers/","install_command":"pip install phonenumbers --index-url https://pypi.org/simple","documentation_url":"https://phonenumbers.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 5 - Production/Stable","Intended Audience :: Developers","License :: OSI Approved :: Apache Software License","Operating System :: OS Independent","Programming Language :: Python :: 2","Programming Language :: Python :: 2.5","Programming Language :: Python :: 2.6","Programming Language :: Python :: 2.7","Programming Language :: Python :: 3","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.3","Programming Language :: Python :: 3.4","Programming Language :: Python :: 3.5","Programming Language :: Python :: 3.6","Programming Language :: Python :: 3.7","Programming Language :: Python :: 3.8","Programming Language :: Python :: 3.9","Programming Language :: Python :: Implementation :: CPython","Programming Language :: Python :: Implementation :: PyPy","Topic :: Communications :: Telephony"],"normalized_name":"phonenumbers"},"repo_metadata":{"id":40643494,"uuid":"1643611","full_name":"daviddrysdale/python-phonenumbers","owner":"daviddrysdale","description":"Python port of Google's libphonenumber","archived":false,"fork":false,"pushed_at":"2024-10-22T13:35:51.000Z","size":80434,"stargazers_count":3507,"open_issues_count":10,"forks_count":413,"subscribers_count":88,"default_branch":"dev","last_synced_at":"2024-10-30T05:28:44.092Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/daviddrysdale.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","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-04-21T03:06:38.000Z","updated_at":"2024-10-28T14:53:30.000Z","dependencies_parsed_at":"2022-07-20T13:48:08.080Z","dependency_job_id":"af14ada3-d84e-4b85-9719-e2ffed327238","html_url":"https://github.com/daviddrysdale/python-phonenumbers","commit_stats":{"total_commits":1500,"total_committers":28,"mean_commits":53.57142857142857,"dds":0.4766666666666667,"last_synced_commit":"a7a9796ff097d1193377f3e28f33439d6296add0"},"previous_names":[],"tags_count":300,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/daviddrysdale","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":233787190,"owners_count":18730124,"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":"daviddrysdale","name":"David Drysdale","uuid":"457208","kind":"user","description":"","email":"","website":"http://lurklurk.org","location":"London, UK","twitter":null,"company":"@google ","icon_url":"https://avatars.githubusercontent.com/u/457208?v=4","repositories_count":69,"last_synced_at":"2024-12-06T21:43:50.548Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/daviddrysdale","funding_links":[],"total_stars":3642,"followers":268,"following":4,"created_at":"2022-11-02T16:35:22.907Z","updated_at":"2024-12-06T21:43:50.548Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/daviddrysdale","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/daviddrysdale/repositories"},"tags":[{"name":"v8.13.50","sha":"fbe9b8a80ad351053ed4e729d1491705ff521eb6","kind":"commit","published_at":"2024-11-16T07:39:48.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.50","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.50","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.50","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.50/manifests"},{"name":"v8.13.49","sha":"59d879de1568cc011b224dbf5938dc62cc98f19d","kind":"commit","published_at":"2024-11-04T06:57:24.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.49","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.49","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.49","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.49/manifests"},{"name":"v8.13.48","sha":"4920fee9ffce2733141b1d2b962020f47494ef93","kind":"commit","published_at":"2024-10-22T13:25:32.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.48","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.48","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.48","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.48/manifests"},{"name":"v8.13.47","sha":"bf826b5534bde2013c4f577476e506540c73dd89","kind":"commit","published_at":"2024-10-04T05:49:13.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.47","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.47","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.47","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.47/manifests"},{"name":"v8.13.46","sha":"bd75c586f159e1a8194973979083774bf22ad077","kind":"commit","published_at":"2024-09-25T14:18:25.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.46","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.46","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.46","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.46/manifests"},{"name":"v8.13.45","sha":"6cc0e8cdcc29342ab1050ad0dda087a4a6fa0123","kind":"commit","published_at":"2024-09-06T05:25:57.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.45","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.45","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.45","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.45/manifests"},{"name":"v8.13.44","sha":"310f63ba98852cdfb7044b2a1249e5dbdf3a17db","kind":"commit","published_at":"2024-08-26T05:39:18.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.44","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.44","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.44","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.44/manifests"},{"name":"v8.13.43","sha":"7b47d7684998b7f958d601fc7065727a6746a135","kind":"commit","published_at":"2024-08-09T13:43:49.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.43","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.43","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.43","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.43/manifests"},{"name":"v8.13.42","sha":"3b0f1943c753624775f31eb0b5fe10eccebe893a","kind":"commit","published_at":"2024-07-30T17:26:19.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.42","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.42","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.42","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.42/manifests"},{"name":"v8.13.40","sha":"7f60158f325ed2ee14212b71ef7e7dc2ce5f01bb","kind":"commit","published_at":"2024-07-01T11:38:59.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.40","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.40","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.40","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.40/manifests"},{"name":"v8.13.39","sha":"877efef5ef25a0224599843298fd979eada7137b","kind":"commit","published_at":"2024-06-15T05:00:51.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.39","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.39","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.39","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.39/manifests"},{"name":"v8.13.38","sha":"65c7e848b0d661383604e2fd10b0bb1eeb672f68","kind":"commit","published_at":"2024-06-04T20:13:24.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.38","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.38","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.38","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.38/manifests"},{"name":"v8.13.37","sha":"a0ccc0a522b40ab4e2d546f1cc227d22fa1f5019","kind":"commit","published_at":"2024-05-17T10:59:44.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.37","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.37","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.37","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.37/manifests"},{"name":"v8.13.36","sha":"7f2273cf13312242b5dc86e6a4df2d1dd3985d66","kind":"commit","published_at":"2024-05-03T05:31:04.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.36","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.36","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.36","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.36/manifests"},{"name":"v8.13.35","sha":"9369ff4607226aee1dab38e731bd020b537ee636","kind":"commit","published_at":"2024-04-19T05:32:44.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.35","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.35","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.35","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.35/manifests"},{"name":"v8.13.34","sha":"710529234b9a04495f2d26d877fea8b9f092a813","kind":"commit","published_at":"2024-04-05T06:13:45.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.34","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.34","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.34","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.34/manifests"},{"name":"v8.13.33","sha":"29dab756aceb18e0142c9c37e736a67de01e3b33","kind":"commit","published_at":"2024-03-25T06:16:26.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.33","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.33","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.33","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.33/manifests"},{"name":"v8.13.32","sha":"92c242c2b40bbd944a73d72b517c27eed524068f","kind":"commit","published_at":"2024-03-13T06:34:09.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.32","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.32","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.32","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.32/manifests"},{"name":"v8.13.31","sha":"95d5229972a294f0f6c7dd022cbd14bc65101026","kind":"commit","published_at":"2024-02-26T07:08:19.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.31","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.31","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.31","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.31/manifests"},{"name":"v8.13.30","sha":"0eaa2db8f62c722bcfb7ca9bffd7bb95a6afe33b","kind":"commit","published_at":"2024-02-09T10:28:47.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.30","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.30","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.30","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.30/manifests"},{"name":"v8.13.29","sha":"364dae870a85ba2e4b5ea1c0b2a11ed5ce2cfabf","kind":"commit","published_at":"2024-01-26T06:50:31.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.29","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.29","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.29","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.29/manifests"},{"name":"v8.13.28","sha":"c74a72d3156d85b8f50c205008e155fb44d71c78","kind":"commit","published_at":"2024-01-17T06:35:47.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.28","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.28","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.28","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.28/manifests"},{"name":"v8.13.27","sha":"253657915796ddf75021526dd8abc9aa907df546","kind":"commit","published_at":"2023-12-20T06:29:44.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.27","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.27","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.27","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.27/manifests"},{"name":"v8.13.26","sha":"1df6d7d3f735e39ff552f477869f0d810939f6b7","kind":"commit","published_at":"2023-11-23T06:53:52.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.26","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.26","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.26","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.26/manifests"},{"name":"v8.13.25","sha":"75b0de5e25aa0e14388e35d724f0b975bb398e52","kind":"commit","published_at":"2023-11-14T05:30:19.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.25","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.25","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.25","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.25/manifests"},{"name":"v8.13.24","sha":"5d19ef976e7ed47bd165d0418936230837b27bab","kind":"commit","published_at":"2023-10-31T06:51:32.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.24","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.24","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.24","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.24/manifests"},{"name":"v8.13.23","sha":"255da01fc701d672058daaa8cd6854814d5013b2","kind":"commit","published_at":"2023-10-17T05:52:33.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.23","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.23","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.23","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.23/manifests"},{"name":"v8.13.22","sha":"0ef8128af412504cc7c12af0a3d12c9ca15c5930","kind":"commit","published_at":"2023-09-29T15:40:42.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.22","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.22","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.22","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.22/manifests"},{"name":"v8.13.21","sha":"edb942c30d299d2d89679f9a60e459aeab703ff0","kind":"commit","published_at":"2023-09-20T19:22:52.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.21","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.21","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.21","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.21/manifests"},{"name":"v8.13.20","sha":"01bcacd1a55198d47226eaac4cbc08cd1e87e31d","kind":"commit","published_at":"2023-09-07T05:24:03.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.20","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.20","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.20","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.20/manifests"},{"name":"v8.13.19","sha":"2f06ef6db2ca83f3856fbb8019a0c665f5971b13","kind":"commit","published_at":"2023-08-22T05:18:22.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.19","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.19","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.19","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.19/manifests"},{"name":"v8.13.18","sha":"6a34224c080617a5771a16fab5832f22a60f2e1f","kind":"commit","published_at":"2023-08-04T05:08:46.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.18","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.18","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.18","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.18/manifests"},{"name":"v8.13.17","sha":"2cc6ae1caac349c0ed6441c9b977e981c126cd12","kind":"commit","published_at":"2023-07-21T06:11:49.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.17","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.17","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.17","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.17/manifests"},{"name":"v8.13.16","sha":"6a69bbd0e2d2986b3a0f90ceb521c4ed8663ed9f","kind":"commit","published_at":"2023-07-10T05:19:21.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.16","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.16","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.16","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.16/manifests"},{"name":"v8.13.15","sha":"3452a50a1ae4f3ca4621ad08c69cbf9b8a82a650","kind":"commit","published_at":"2023-06-23T06:28:01.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.15","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.15","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.15/manifests"},{"name":"v8.13.14","sha":"be79521536d077c2a025d30c4ad832af3bf39821","kind":"commit","published_at":"2023-06-13T17:57:52.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.14","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.14","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.14/manifests"},{"name":"v8.13.13","sha":"fbe44924c55b5ef76d324231116ec87300779dc0","kind":"commit","published_at":"2023-05-30T07:30:51.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.13","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.13","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.13/manifests"},{"name":"v8.13.11","sha":"653a6b544ea387f33d205a53d475e5eb4cf4466b","kind":"commit","published_at":"2023-04-27T12:19:21.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.11","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.11/manifests"},{"name":"v8.13.10","sha":"a7a9796ff097d1193377f3e28f33439d6296add0","kind":"commit","published_at":"2023-04-18T15:37:27.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.10","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.10/manifests"},{"name":"v8.13.9","sha":"0b7a399fdb22d3fe8e8a3f41422347300dd2976a","kind":"commit","published_at":"2023-04-11T07:18:40.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.9","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.9/manifests"},{"name":"v8.13.8","sha":"a60408d5f75034f06cf79abd09eef9c83ad57877","kind":"commit","published_at":"2023-03-27T08:56:01.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.8","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.8/manifests"},{"name":"v8.13.7","sha":"4d8fa317d2d4fff502e24532c0605a7114444514","kind":"commit","published_at":"2023-03-03T19:14:34.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.7","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.7/manifests"},{"name":"v8.13.6","sha":"056702d84900fee74dc1b75aae5c84407be69a49","kind":"commit","published_at":"2023-02-10T06:27:38.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.6","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.6/manifests"},{"name":"v8.13.5","sha":"0c34b8a5bd17264449e4c1a65114fd31b58a2a8b","kind":"commit","published_at":"2023-01-29T08:55:09.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.5","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.5/manifests"},{"name":"v8.13.4","sha":"e6c0866c8d679c157d92a6d8634361d731501a75","kind":"commit","published_at":"2023-01-09T06:21:34.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.4","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.4/manifests"},{"name":"v8.13.3","sha":"525bc01087b3ca1e658eb81c1522c8f5029ca2ce","kind":"commit","published_at":"2022-12-22T08:50:31.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.3","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.3/manifests"},{"name":"v8.13.2","sha":"68ec06149d33a20deb5a65af198372ac986e6862","kind":"commit","published_at":"2022-12-08T06:43:29.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.2","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.2/manifests"},{"name":"v8.13.1","sha":"99833536b24105fc6d123b6ad9bcca2d49133cb1","kind":"commit","published_at":"2022-11-28T06:27:20.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.1/manifests"},{"name":"v8.13.0","sha":"5963b05d7f6b7e6149edbc51910ffafa69444c31","kind":"commit","published_at":"2022-11-06T07:51:45.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.13.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.13.0/manifests"},{"name":"v8.12.57","sha":"466e4c5f788551084d2333a31f1c25396743325d","kind":"commit","published_at":"2022-10-14T07:39:18.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.57","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.57","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.57","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.57/manifests"},{"name":"v8.12.56","sha":"d08079c8442ac88fd9eb8499a12550ae8550a3e8","kind":"commit","published_at":"2022-09-24T05:15:03.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.56","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.56","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.56","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.56/manifests"},{"name":"v8.12.55","sha":"4af9941bf106c2525dfb6c28d78fdda9e8fbf6ab","kind":"commit","published_at":"2022-09-09T06:47:36.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.55","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.55","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.55","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.55/manifests"},{"name":"v8.12.54","sha":"c2fe6f480f24939ad64a53887e53bc6c27f7a9ab","kind":"commit","published_at":"2022-08-19T17:21:51.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.54","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.54","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.54","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.54/manifests"},{"name":"v8.12.53","sha":"f12e9ac9436f4379273268f1f2d0759f20d082f8","kind":"commit","published_at":"2022-08-04T14:40:06.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.53","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.53","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.53","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.53/manifests"},{"name":"v8.12.52","sha":"fdc02acdc3fd5025e7d31ced803d02e22e411972","kind":"commit","published_at":"2022-07-19T16:00:42.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.52","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.52","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.52","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.52/manifests"},{"name":"v8.12.51","sha":"8ef0fa45e94cf05f5dc544b2de77d319fac7aade","kind":"commit","published_at":"2022-07-01T06:51:29.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.51","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.51","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.51","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.51/manifests"},{"name":"v8.12.50","sha":"ec339e5e2f099d872881d43d71c0fdcdea07f8cf","kind":"commit","published_at":"2022-06-10T17:32:29.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.50","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.50","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.50","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.50/manifests"},{"name":"v8.12.49","sha":"d3209eae34722323bd6c83b73a52fde0a0fc3233","kind":"commit","published_at":"2022-05-28T17:11:09.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.49","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.49","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.49","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.49/manifests"},{"name":"v8.12.48","sha":"a500e2946ae0c24d82242ec075d02a3e993e81c5","kind":"commit","published_at":"2022-05-06T11:59:33.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.48","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.48","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.48","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.48/manifests"},{"name":"v8.12.47","sha":"4da649de5a46c5606bf1181d063fe6822edb4c70","kind":"commit","published_at":"2022-04-21T06:55:04.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.47","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.47","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.47","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.47/manifests"},{"name":"v8.12.46","sha":"f92246d1a9ffbcc107d23be2de77ec7b7bc2c3bd","kind":"commit","published_at":"2022-04-01T08:08:25.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.46","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.46","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.46","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.46/manifests"},{"name":"v8.12.45","sha":"6db6ffa65e6a6b269b61e8fcb7fb622a9721fd0a","kind":"commit","published_at":"2022-03-11T18:06:10.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.45","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.45","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.45","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.45/manifests"},{"name":"v8.12.44","sha":"821454ce434f48b6b0ca4cb311dc1cb3f75e4eb5","kind":"commit","published_at":"2022-02-25T07:30:06.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.44","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.44","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.44","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.44/manifests"},{"name":"v8.12.43","sha":"8e923620fa7c8bacd10fb4dbac2227e3f24247b3","kind":"commit","published_at":"2022-02-09T19:36:24.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.43","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.43","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.43","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.43/manifests"},{"name":"v8.12.42","sha":"60b1fca9ef0c1b21e60a92572065fab1151d93af","kind":"commit","published_at":"2022-01-29T08:30:34.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.42","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.42","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.42","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.42/manifests"},{"name":"v8.12.41","sha":"9dc2cd05ff5491e5cd56a46039f7dbc6edf117c6","kind":"commit","published_at":"2022-01-11T16:36:18.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.41","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.41","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.41","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.41/manifests"},{"name":"v8.12.40","sha":"ce13f4770baae17386e3ab668af219b68ba0524b","kind":"commit","published_at":"2021-12-25T07:04:12.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.40","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.40","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.40","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.40/manifests"},{"name":"v8.12.39","sha":"2ddc08fc22c2452de02cce8562972e33f485fc57","kind":"commit","published_at":"2021-12-07T14:19:31.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.39","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.39","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.39","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.39/manifests"},{"name":"v8.12.38","sha":"16472c8b0dee824ac81c103a9a10c3830019668a","kind":"commit","published_at":"2021-11-27T09:01:49.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.38","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.38","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.38","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.38/manifests"},{"name":"v8.12.37","sha":"58cd1f13bd369ddde78ee879478cf2e232c78416","kind":"commit","published_at":"2021-11-11T18:33:53.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.37","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.37","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.37","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.37/manifests"},{"name":"v8.12.36","sha":"990844a23856e520d226c58ffa9c2c5f982bfe66","kind":"commit","published_at":"2021-10-27T08:29:11.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.36","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.36","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.36","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.36/manifests"},{"name":"v8.12.35","sha":"ed597f540500d32aa9cf65043ed88b45e0574c43","kind":"commit","published_at":"2021-10-14T09:16:02.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.35","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.35","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.35","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.35/manifests"},{"name":"v8.12.34","sha":"d72ddabb91289c9f66a8322c832d541fa0c9e456","kind":"commit","published_at":"2021-10-07T06:22:20.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.34","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.34","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.34","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.34/manifests"},{"name":"v8.12.33","sha":"a146bfc028050118a8ee15bff40622613fb2b9e3","kind":"commit","published_at":"2021-09-23T08:04:39.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.33","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.33","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.33","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.33/manifests"},{"name":"v8.12.32","sha":"e85b4064a93284497ae510393e2c5808c9b698fc","kind":"commit","published_at":"2021-09-12T16:01:13.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.32","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.32","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.32","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.32/manifests"},{"name":"v8.12.31","sha":"bd237120f5c06c5adf6305940f396fb4f143e130","kind":"commit","published_at":"2021-08-24T13:18:03.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.31","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.31","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.31","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.31/manifests"},{"name":"v8.12.30","sha":"b0e07f02b8afc93c339a080d334da6013278b92d","kind":"commit","published_at":"2021-08-18T07:12:18.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.30","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.30","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.30","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.30/manifests"},{"name":"v8.12.29","sha":"b863ecde7df6c576ec1146db7fa5c8b01183b0e1","kind":"commit","published_at":"2021-08-09T06:33:57.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.29","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.29","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.29","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.29/manifests"},{"name":"v8.12.28","sha":"0b0e6b63036398ee512bb3dbee15f79322caf34d","kind":"commit","published_at":"2021-07-22T06:41:50.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.28","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.28","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.28","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.28/manifests"},{"name":"v8.12.27","sha":"2e283077e0f83dfed19eb7de6322207e7f61504a","kind":"commit","published_at":"2021-07-07T16:04:09.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.27","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.27","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.27","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.27/manifests"},{"name":"v8.12.26","sha":"620e2de796f11b34ba5fe5c7a3ee5908c85a1c26","kind":"commit","published_at":"2021-06-25T14:51:59.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.26","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.26","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.26","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.26/manifests"},{"name":"v8.12.25","sha":"7b918c07b14cd4c054f16c6b3d4e76cc24723562","kind":"commit","published_at":"2021-06-15T17:35:16.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.25","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.25","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.25","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.25/manifests"},{"name":"v8.12.24","sha":"56b5c91f3be0611ebe8e8f119bb48bfc27db596d","kind":"commit","published_at":"2021-05-27T14:51:51.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.24","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.24","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.24","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.24/manifests"},{"name":"v8.12.23","sha":"aef9147ac784db2a7fc18d919e4990f15f4cf0e0","kind":"commit","published_at":"2021-05-13T09:06:34.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.23","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.23","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.23","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.23/manifests"},{"name":"v8.12.22","sha":"23c34c10d1074acb93f585b6360cfa463a809694","kind":"commit","published_at":"2021-04-30T05:41:50.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.22","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.22","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.22","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.22/manifests"},{"name":"v8.12.21","sha":"ff6aee6928599461de6803b346e8f35b8c7918ef","kind":"commit","published_at":"2021-04-07T16:18:13.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.21","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.21","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.21","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.21/manifests"},{"name":"v8.12.20","sha":"adc3953b25df69a7fa77adb0ec862487330ef337","kind":"commit","published_at":"2021-03-17T20:58:50.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.20","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.20","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.20","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.20/manifests"},{"name":"v8.12.19","sha":"4fc90c579e53479e0f104f3ed34528855e67804e","kind":"commit","published_at":"2021-03-02T16:16:23.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.19","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.19","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.19","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.19/manifests"},{"name":"v8.12.18","sha":"58ac6aa826962aec3efeb5b6cefd5b322a4889bd","kind":"commit","published_at":"2021-02-09T08:49:38.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.18","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.18","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.18","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.18/manifests"},{"name":"v8.12.17","sha":"3f8f232a539c43e4c94a44adb7d1d3cfaa40ba9b","kind":"commit","published_at":"2021-01-27T18:58:40.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.17","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.17","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.17","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.17/manifests"},{"name":"v8.12.16","sha":"8f7e722ceedcd74df71bba694bb569acfed78f4a","kind":"commit","published_at":"2021-01-12T14:46:13.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.16","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.16","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.16","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.16/manifests"},{"name":"v8.12.15","sha":"a013cbb87b39b533b9d5d542252c3fdd4cfc526f","kind":"commit","published_at":"2020-12-16T07:13:35.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.15","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.15","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.15/manifests"},{"name":"v8.12.14","sha":"5bcfeb70b6ae8d4ebe525999910f3180f6870807","kind":"commit","published_at":"2020-12-03T18:10:13.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.14","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.14","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.14/manifests"},{"name":"v8.12.13","sha":"394412a8fb3fa6487a3a4bf51883e80a8ca4735d","kind":"commit","published_at":"2020-11-13T14:52:16.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.13","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.13","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.13/manifests"},{"name":"v8.12.12","sha":"00a447d138151fc4fbcb4d1aa9ab61360cc67c84","kind":"commit","published_at":"2020-11-01T19:03:31.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.12","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.12/manifests"},{"name":"v8.12.11","sha":"f08189b49060394212aad01b3df7481f591fb0e0","kind":"commit","published_at":"2020-10-10T09:50:03.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.11","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.11/manifests"},{"name":"v8.12.10","sha":"eab45f84bfbf55f8c0f36ae31a1b443df734a24a","kind":"commit","published_at":"2020-09-29T06:03:52.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.10","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.10/manifests"},{"name":"v8.12.9","sha":"afb87c2f90cefca5549bbca0ddcfcb7586f61bd3","kind":"commit","published_at":"2020-09-01T06:02:22.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.9","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.9/manifests"},{"name":"v8.12.8","sha":"4747812735dc69e1db9d341cbb422b01a1f5dbec","kind":"commit","published_at":"2020-08-17T09:22:16.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.8","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.8/manifests"},{"name":"v8.12.7","sha":"2ac7ccfb0e01b7c72388afb9bc3216dfb180614c","kind":"commit","published_at":"2020-07-25T08:10:05.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.7","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.7/manifests"},{"name":"v8.12.6","sha":"1bbc1a89f7003b40610569a11af0bbfa531b04f1","kind":"commit","published_at":"2020-06-19T09:03:38.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.6","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.6/manifests"},{"name":"v8.12.5","sha":"b3d90ccc975605e58604521b054291e55cf0daf7","kind":"commit","published_at":"2020-06-04T11:28:43.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.5","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.5/manifests"},{"name":"v8.12.4","sha":"7b6125c40800104da9fead6ed518f59d8d1b11f6","kind":"commit","published_at":"2020-05-21T05:31:22.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.4","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.4/manifests"},{"name":"v8.12.3","sha":"80f4f56de0434f7fe6c23d25e578abf4f6f364ea","kind":"commit","published_at":"2020-05-08T05:16:18.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.3","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.3/manifests"},{"name":"v8.12.2","sha":"c2e9bd954e560c5eada9129526b3815449f226db","kind":"commit","published_at":"2020-04-23T12:01:19.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.2","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.2/manifests"},{"name":"v8.12.1","sha":"b889be2bd9661024f309ae5ddb27a83402df4f01","kind":"commit","published_at":"2020-03-31T07:12:35.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.1/manifests"},{"name":"v8.12.0","sha":"773d8bd341f2c2a6e9ac3094502e2be40114f5c9","kind":"commit","published_at":"2020-03-20T12:06:33.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.12.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.12.0/manifests"},{"name":"v8.11.5","sha":"3e99911023af7b66d5cfd63cabe45b8a172d43c6","kind":"commit","published_at":"2020-03-03T07:29:57.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.11.5","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.11.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.11.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.11.5/manifests"},{"name":"v8.11.4","sha":"98895826729a234acc1e27ce8e280fe7e54754ab","kind":"commit","published_at":"2020-02-13T06:58:31.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.11.4","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.11.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.11.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.11.4/manifests"},{"name":"v8.11.3","sha":"61eca8f43317238b1214e8d951b7a2696b4641b7","kind":"commit","published_at":"2020-02-03T06:42:18.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.11.3","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.11.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.11.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.11.3/manifests"},{"name":"v8.11.2","sha":"055e94ef57d546949330222a593b40611346ce4f","kind":"commit","published_at":"2020-01-16T07:24:49.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.11.2","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.11.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.11.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.11.2/manifests"},{"name":"v8.11.1","sha":"000509cbbe351cecd215afdd5494ee61577180f9","kind":"commit","published_at":"2019-12-12T06:24:48.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.11.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.11.1/manifests"},{"name":"v8.11.0","sha":"cbafb2d45b6e403fd619102430cfa48717fd520c","kind":"commit","published_at":"2019-11-28T12:59:32.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.11.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.11.0/manifests"},{"name":"v8.10.23","sha":"f13f63c94b5d10f9a0787976b1776521bc7167e4","kind":"commit","published_at":"2019-11-18T07:59:21.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.10.23","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.10.23","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.23","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.23/manifests"},{"name":"v8.10.22","sha":"fa2c8fbef0ce6b8c001a0a855e09da30f4a8a739","kind":"commit","published_at":"2019-10-31T06:54:43.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.10.22","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.10.22","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.22","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.22/manifests"},{"name":"v8.10.21","sha":"435b075125ce40c28067321ae4fc7672aecbad41","kind":"commit","published_at":"2019-10-17T05:50:57.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.10.21","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.10.21","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.21","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.21/manifests"},{"name":"v8.10.20","sha":"d7be8d2ea7b4d294ef00da5521b78a5b0e3b135f","kind":"commit","published_at":"2019-10-03T05:50:29.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.10.20","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.10.20","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.20","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.20/manifests"},{"name":"v8.10.19","sha":"8b97809395f3737abaf6db8fb389d4f140881ac7","kind":"commit","published_at":"2019-09-20T08:53:05.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.10.19","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.10.19","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.19","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.19/manifests"},{"name":"v8.10.18","sha":"fba10707272dbdf2402ff12dadcb3ae54666d796","kind":"commit","published_at":"2019-09-06T06:36:41.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.10.18","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.10.18","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.18","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.18/manifests"},{"name":"v8.10.17","sha":"0f784602dc73f7811e0e76e4376c5cebe5231dc9","kind":"commit","published_at":"2019-08-16T20:51:35.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.10.17","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.10.17","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.17","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.17/manifests"},{"name":"v8.10.16","sha":"67c728454d2b6758af204b80fe13cdc36fada484","kind":"commit","published_at":"2019-08-05T12:12:03.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.10.16","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.10.16","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.16","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.16/manifests"},{"name":"v8.10.15","sha":"6cd3cd380b3f03a8025b5c820d98257dbe07fe1c","kind":"commit","published_at":"2019-07-16T07:00:10.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.10.15","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.10.15","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.15/manifests"},{"name":"v8.10.14","sha":"f58e26cb8fca6c533a6a913815e00fb01b2d9807","kind":"commit","published_at":"2019-06-22T06:25:54.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.10.14","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.10.14","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.14/manifests"},{"name":"v8.10.13","sha":"163c6c93ae377b086084ec59ab8f3c491c5d1dfe","kind":"commit","published_at":"2019-05-31T06:09:00.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.10.13","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.10.13","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.13/manifests"},{"name":"v8.10.12","sha":"06f3927892705427dda4d6106c6b5a5f4aa7b08c","kind":"commit","published_at":"2019-05-15T17:38:30.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.10.12","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.10.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.12/manifests"},{"name":"v8.10.11","sha":"f6fc99fc398bb1710507be367d5532bf9d6940cd","kind":"commit","published_at":"2019-05-07T06:39:17.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.10.11","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.10.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.11/manifests"},{"name":"v8.10.10","sha":"9cc5bb4ab5e661e70789b4c64bf7a9383c7bdc20","kind":"commit","published_at":"2019-04-17T06:34:37.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.10.10","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.10.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.10/manifests"},{"name":"v8.10.9","sha":"62236f16cb6fb9283bc25b7b74cc3df3bafaa76e","kind":"commit","published_at":"2019-04-05T05:42:05.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.10.9","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.10.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.9/manifests"},{"name":"v8.10.8","sha":"efa45e02ec9215a37913b0f9649c2fbe3de74068","kind":"commit","published_at":"2019-03-22T13:58:58.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.10.8","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.10.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.8/manifests"},{"name":"v8.10.7","sha":"e7f0d667777024d34c13271c1f44247d2074ff5f","kind":"commit","published_at":"2019-03-11T06:41:55.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.10.7","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.10.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.7/manifests"},{"name":"v8.10.6","sha":"2ce2a027bf3c26a95dc233d941483ec34b232506","kind":"commit","published_at":"2019-02-22T20:21:11.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.10.6","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.10.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.6/manifests"},{"name":"v8.10.5","sha":"168a1f1e80502544089bc0739670a324730c09bb","kind":"commit","published_at":"2019-02-08T07:07:19.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.10.5","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.10.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.5/manifests"},{"name":"v8.10.4","sha":"b697f7ba43f07dc7a44d939e3fdef8416a4a266f","kind":"commit","published_at":"2019-01-25T07:19:51.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.10.4","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.10.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.4/manifests"},{"name":"v8.10.3","sha":"07b717d33958a4345ed6910a8056c86f348e25a9","kind":"commit","published_at":"2019-01-11T09:27:14.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.10.3","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.10.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.3/manifests"},{"name":"v8.10.2","sha":"9742c81af0f724026398f5567de4a111a1a59401","kind":"commit","published_at":"2018-12-07T07:09:39.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.10.2","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.10.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.2/manifests"},{"name":"v8.10.1","sha":"e175c6777b83dbf13c71d5f66a06d0c4f0e95e80","kind":"commit","published_at":"2018-11-27T07:43:07.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.10.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.10.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.1/manifests"},{"name":"v8.10.0","sha":"c82f165b45e4bf8351f2a40a2889b3394ee7ff5f","kind":"commit","published_at":"2018-11-16T08:55:36.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.10.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.10.0/manifests"},{"name":"v8.9.16","sha":"9f4dfc373d0a8492dbe38ab9ee9d0c932a3de51f","kind":"commit","published_at":"2018-10-19T06:07:32.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.9.16","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.9.16","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.16","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.16/manifests"},{"name":"v8.9.15","sha":"eea7a6071ed1a086bf56b62c6d932fdc0e5d96dd","kind":"commit","published_at":"2018-10-06T07:01:20.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.9.15","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.9.15","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.15","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.15/manifests"},{"name":"v8.9.14","sha":"da71c5f16585af20ecb0bebbfe9ef191d53146f4","kind":"commit","published_at":"2018-09-21T06:37:06.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.9.14","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.9.14","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.14","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.14/manifests"},{"name":"v8.9.13","sha":"ed033de56a2570a89289773fa73a3cc2915ea2e5","kind":"commit","published_at":"2018-09-07T08:12:47.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.9.13","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.9.13","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.13","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.13/manifests"},{"name":"v8.9.12","sha":"8b5a3b3675c62d6023c54c3b277eafe72b39b881","kind":"commit","published_at":"2018-08-29T06:46:02.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.9.12","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.9.12","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.12","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.12/manifests"},{"name":"v8.9.11","sha":"96ccc824ad59dd16790f46870109e7042ab4f664","kind":"commit","published_at":"2018-08-21T09:20:57.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.9.11","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.9.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.11/manifests"},{"name":"v8.9.10","sha":"b60ebefd6e2fbe058b742a5fd527e5aaa6cf3203","kind":"commit","published_at":"2018-07-12T06:18:22.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.9.10","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.9.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.10/manifests"},{"name":"v8.9.9","sha":"a302cb1e0ff7c788780a8d026ae8927ab0c0677b","kind":"commit","published_at":"2018-06-29T07:26:49.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.9.9","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.9.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.9/manifests"},{"name":"v8.9.8","sha":"a3ddf538074ce12dbbd058c14f0c73e6477d5a00","kind":"commit","published_at":"2018-06-16T06:46:56.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.9.8","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.9.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.8/manifests"},{"name":"v8.9.7","sha":"4e7e8fb5f19167477e876e8318afa6f02e50efde","kind":"commit","published_at":"2018-05-30T06:16:42.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.9.7","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.9.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.7/manifests"},{"name":"v8.9.6","sha":"2d5d8a028cf026d95d1ae531a6fd065d4803d9eb","kind":"commit","published_at":"2018-05-17T08:29:06.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.9.6","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.9.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.6/manifests"},{"name":"v8.9.5","sha":"6d435d01d49ef0d6b9a7d835b52c5015d7452828","kind":"commit","published_at":"2018-05-05T06:54:29.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.9.5","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.9.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.5/manifests"},{"name":"v8.9.4","sha":"c47a71f8965b9712e7d0a3d189f69d227065562a","kind":"commit","published_at":"2018-04-17T16:44:48.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.9.4","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.9.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.4/manifests"},{"name":"v8.9.3","sha":"db6e00192a9ef2edc0207b3f0e5b64abe61aa0dc","kind":"commit","published_at":"2018-04-05T08:19:18.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.9.3","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.9.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.3/manifests"},{"name":"v8.9.2","sha":"2f4554e29e22ffb6c042244d3495e67f4bb9a99b","kind":"commit","published_at":"2018-03-19T19:14:24.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.9.2","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.9.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.2/manifests"},{"name":"v8.9.1","sha":"9d75ca1de9d10f8635357d4c6460198170985c61","kind":"commit","published_at":"2018-03-08T09:41:11.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.9.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.1/manifests"},{"name":"v8.9.0","sha":"ad34567d0275be3e6c1de2d72f7b015c315f2fe3","kind":"commit","published_at":"2018-02-22T09:10:50.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.9.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.9.0/manifests"},{"name":"v8.8.11","sha":"87ac7f642fe575b1b197e5916c71a5465fcb85c2","kind":"commit","published_at":"2018-02-08T16:22:06.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.8.11","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.8.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.8.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.8.11/manifests"},{"name":"v8.8.10","sha":"5a43ae74b31af5e81eba0e624771f5de2641028d","kind":"commit","published_at":"2018-01-25T09:06:14.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.8.10","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.8.10","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.8.10","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.8.10/manifests"},{"name":"v8.8.9","sha":"e5dee88e17b0b5a9722e3525a611e7e7330e3e78","kind":"commit","published_at":"2018-01-10T19:51:17.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.8.9","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.8.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.8.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.8.9/manifests"},{"name":"v8.8.8","sha":"a7c40c2bf642f5c5e7515897dde175929b088f89","kind":"commit","published_at":"2017-12-08T15:37:00.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.8.8","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.8.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.8.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.8.8/manifests"},{"name":"v8.8.7","sha":"ba78a4edc023f7242903cc0ebd65d46f042b67a7","kind":"commit","published_at":"2017-12-01T17:58:51.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.8.7","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.8.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.8.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.8.7/manifests"},{"name":"v8.8.6","sha":"ec2d243b6b888eedfb467fedb37882b7ec689156","kind":"commit","published_at":"2017-11-16T19:05:38.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.8.6","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.8.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.8.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.8.6/manifests"},{"name":"v8.8.5","sha":"f12d64c7e7f23412aa8a6be8745fda9f2db5d39b","kind":"commit","published_at":"2017-10-31T15:49:34.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.8.5","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.8.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.8.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.8.5/manifests"},{"name":"v8.8.4","sha":"76a53801f72323532da2a3b192acc6005c080fbc","kind":"commit","published_at":"2017-10-17T17:48:43.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.8.4","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.8.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.8.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.8.4/manifests"},{"name":"v8.8.3","sha":"dad1198b1343f9308f8da41197645e5c193e832f","kind":"commit","published_at":"2017-10-06T06:05:54.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.8.3","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.8.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.8.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.8.3/manifests"},{"name":"v8.8.2","sha":"e4ed6a1a28f33b3510b0346dae6c23920e75f46e","kind":"commit","published_at":"2017-09-22T07:48:48.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.8.2","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.8.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.8.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.8.2/manifests"},{"name":"v8.8.1","sha":"ff5917252efc9dc92f00ccd0c5b1f95cac8533a3","kind":"commit","published_at":"2017-09-08T12:36:05.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.8.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.8.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.8.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.8.1/manifests"},{"name":"v8.8.0","sha":"d10a7a77d1fac6ae140196e6059fe34e2b0e2752","kind":"commit","published_at":"2017-08-22T16:40:15.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.8.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.8.0/manifests"},{"name":"v8.7.1","sha":"61514ec82c6e2f45b16d8accee16a97a893fc65a","kind":"commit","published_at":"2017-08-03T17:38:05.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.7.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.7.1/manifests"},{"name":"v8.7.0","sha":"2be1e06142f5b6a69ce754363b8a7fc3e7dcd841","kind":"commit","published_at":"2017-07-24T12:24:24.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.7.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.7.0/manifests"},{"name":"v8.6.0","sha":"00e10e83de0ab6e34c384ed7af6405f6828229ae","kind":"commit","published_at":"2017-07-07T09:27:37.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.6.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.6.0/manifests"},{"name":"v8.5.2","sha":"94fa13c79901e008c8d74084efb034fc65e25fa2","kind":"commit","published_at":"2017-06-22T16:59:30.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.5.2","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.5.2/manifests"},{"name":"v8.5.1","sha":"4bc394e799e0853c035e83f1d81edaac1f2d79e2","kind":"commit","published_at":"2017-06-08T06:15:54.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.5.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.5.1/manifests"},{"name":"v8.5.0","sha":"a84095fee783c9e12d712517af413698e61d38c6","kind":"commit","published_at":"2017-05-24T09:38:02.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.5.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.5.0/manifests"},{"name":"v8.4.3","sha":"feada90180469a73052595acbc3eabe18876f3c3","kind":"commit","published_at":"2017-05-12T08:54:17.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.4.3","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.4.3/manifests"},{"name":"v8.4.2","sha":"164f2b41220fdb72d6062a83a9f1407471e66466","kind":"commit","published_at":"2017-04-26T16:13:44.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.4.2","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.4.2/manifests"},{"name":"v8.4.1","sha":"1666e4f21d8229012d878bd3b0e7750fa315cec1","kind":"commit","published_at":"2017-04-15T09:08:10.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.4.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.4.1/manifests"},{"name":"v8.4.0","sha":"a89455c5d9d8deb134c6fa0b8b38ee512e3592c7","kind":"commit","published_at":"2017-04-03T06:22:09.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.4.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.4.0/manifests"},{"name":"v8.3.3","sha":"dc1fd683f941fb289480fd31527652e5e4beee96","kind":"commit","published_at":"2017-03-15T13:11:10.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.3.3","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.3.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.3.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.3.3/manifests"},{"name":"v8.3.2","sha":"9dbc34f06c4864e43d831b6a6766e1cae3cc3840","kind":"commit","published_at":"2017-03-03T07:02:25.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.3.2","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.3.2/manifests"},{"name":"v8.3.1","sha":"494044aaf75443dbfd62b8d1352b441af6a458ae","kind":"commit","published_at":"2017-02-22T14:59:31.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.3.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.3.1/manifests"},{"name":"v8.3.0","sha":"fcce685f1999ce349b362cbaaa09b391d8bd5806","kind":"commit","published_at":"2017-02-17T09:09:15.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.3.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.3.0/manifests"},{"name":"v8.2.0","sha":"caac1dfe3a1b150af2af9d036a9210cba2e1dcf0","kind":"commit","published_at":"2017-02-03T14:10:08.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.2.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.2.0/manifests"},{"name":"v8.1.0","sha":"c1c5d3744336174861210449a2888870b770a270","kind":"commit","published_at":"2017-01-25T21:39:43.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.1.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.1.0/manifests"},{"name":"v8.0.1","sha":"7d988317c78f3d28cb1d4c362daa9171013dfc4f","kind":"commit","published_at":"2017-01-13T16:13:38.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.0.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.0.1/manifests"},{"name":"v8.0.0","sha":"c9d27f9fec27a0f34e1ae9d27c6ebb9ac4520dd2","kind":"commit","published_at":"2016-12-14T07:18:58.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v8.0.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v8.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v8.0.0/manifests"},{"name":"v7.7.5","sha":"bb7b57d9b4edf279b22864997cf577ce43e2fd5b","kind":"commit","published_at":"2016-11-24T19:47:45.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.7.5","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.7.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.7.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.7.5/manifests"},{"name":"v7.7.4","sha":"7be5de284d9b6fcb36b5696fe1ab3ef1036d407c","kind":"commit","published_at":"2016-11-15T12:24:36.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.7.4","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.7.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.7.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.7.4/manifests"},{"name":"release-7.7.3","sha":"95e69b623dcdfc0adc0fd6a2d89392af8610fff4","kind":"commit","published_at":"2016-10-27T07:23:07.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.7.3","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.7.3/manifests"},{"name":"v7.7.3","sha":"95e69b623dcdfc0adc0fd6a2d89392af8610fff4","kind":"commit","published_at":"2016-10-27T07:23:07.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.7.3","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.7.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.7.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.7.3/manifests"},{"name":"v7.7.2","sha":"93d7b11513730f06caf4fb0915558e1c43a2b393","kind":"commit","published_at":"2016-10-12T08:28:51.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.7.2","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.7.2/manifests"},{"name":"release-7.7.2","sha":"93d7b11513730f06caf4fb0915558e1c43a2b393","kind":"commit","published_at":"2016-10-12T08:28:51.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.7.2","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.7.2/manifests"},{"name":"release-7.7.1","sha":"d57dcf33228598a6b299615cf466027e76feda2c","kind":"commit","published_at":"2016-09-28T14:11:48.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.7.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.7.1/manifests"},{"name":"v7.7.1","sha":"d57dcf33228598a6b299615cf466027e76feda2c","kind":"commit","published_at":"2016-09-28T14:11:48.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.7.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.7.1/manifests"},{"name":"release-7.7.0","sha":"8311701cd377305ecbbe9971f5310bab89f786c6","kind":"commit","published_at":"2016-09-20T13:49:44.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.7.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.7.0/manifests"},{"name":"v7.7.0","sha":"8311701cd377305ecbbe9971f5310bab89f786c6","kind":"commit","published_at":"2016-09-20T13:49:44.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.7.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.7.0/manifests"},{"name":"release-7.6.1","sha":"fd8909695ef60a0a9841778024c68d671a03b51c","kind":"commit","published_at":"2016-09-17T17:19:09.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.6.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.6.1/manifests"},{"name":"v7.6.1","sha":"fd8909695ef60a0a9841778024c68d671a03b51c","kind":"commit","published_at":"2016-09-17T17:19:09.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.6.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.6.1/manifests"},{"name":"release-7.6.0","sha":"058b4c6fdb0c3c89a269437f905e7f673b1cc4c9","kind":"commit","published_at":"2016-08-25T09:07:24.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.6.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.6.0/manifests"},{"name":"v7.6.0","sha":"058b4c6fdb0c3c89a269437f905e7f673b1cc4c9","kind":"commit","published_at":"2016-08-25T09:07:24.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.6.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.6.0/manifests"},{"name":"release-7.5.2","sha":"3e1d0f7025b9f04e4b177c42ca829342ea2ee8a1","kind":"commit","published_at":"2016-08-12T16:22:21.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.5.2","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.5.2/manifests"},{"name":"v7.5.2","sha":"3e1d0f7025b9f04e4b177c42ca829342ea2ee8a1","kind":"commit","published_at":"2016-08-12T16:22:21.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.5.2","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.5.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.5.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.5.2/manifests"},{"name":"release-7.5.1","sha":"c8d0a178dfa0bc350ca476c2fd0ca66df534a932","kind":"commit","published_at":"2016-07-30T07:41:03.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.5.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.5.1/manifests"},{"name":"v7.5.1","sha":"c8d0a178dfa0bc350ca476c2fd0ca66df534a932","kind":"commit","published_at":"2016-07-30T07:41:03.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.5.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.5.1/manifests"},{"name":"release-7.5.0","sha":"965989ae9f51d713ac8dce68e3c09072637d45a7","kind":"commit","published_at":"2016-07-30T07:36:14.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.5.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.5.0/manifests"},{"name":"v7.5.0","sha":"965989ae9f51d713ac8dce68e3c09072637d45a7","kind":"commit","published_at":"2016-07-30T07:36:14.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.5.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.5.0/manifests"},{"name":"release-7.4.5","sha":"674d434e6042b8e5e271f31c549ae92be3ac5ddb","kind":"commit","published_at":"2016-07-15T08:32:58.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.4.5","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.4.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.4.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.4.5/manifests"},{"name":"v7.4.5","sha":"674d434e6042b8e5e271f31c549ae92be3ac5ddb","kind":"commit","published_at":"2016-07-15T08:32:58.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.4.5","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.4.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.4.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.4.5/manifests"},{"name":"release-7.4.4","sha":"d8f0e1c22906f069c1e17c9d0ab873b1de888b4c","kind":"commit","published_at":"2016-06-30T13:56:56.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.4.4","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.4.4/manifests"},{"name":"v7.4.4","sha":"d8f0e1c22906f069c1e17c9d0ab873b1de888b4c","kind":"commit","published_at":"2016-06-30T13:56:56.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.4.4","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.4.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.4.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.4.4/manifests"},{"name":"v7.4.3","sha":"db25feefc1bdea69ee02abafee338510ec17019b","kind":"commit","published_at":"2016-06-17T06:47:18.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.4.3","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.4.3/manifests"},{"name":"release-7.4.3","sha":"db25feefc1bdea69ee02abafee338510ec17019b","kind":"commit","published_at":"2016-06-17T06:47:18.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.4.3","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.4.3/manifests"},{"name":"release-7.4.2","sha":"9d2cc0a550030d801708cd982631ab3c089d8d32","kind":"commit","published_at":"2016-06-02T18:39:12.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.4.2","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.4.2/manifests"},{"name":"v7.4.2","sha":"9d2cc0a550030d801708cd982631ab3c089d8d32","kind":"commit","published_at":"2016-06-02T18:39:12.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.4.2","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.4.2/manifests"},{"name":"v7.4.1","sha":"ff27269a822df5be200c39c7c612002f24acb575","kind":"commit","published_at":"2016-05-25T07:22:45.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.4.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.4.1/manifests"},{"name":"release-7.4.1","sha":"ff27269a822df5be200c39c7c612002f24acb575","kind":"commit","published_at":"2016-05-25T07:22:45.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.4.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.4.1/manifests"},{"name":"v7.4.0","sha":"779a655ce6c719e34bad8c2837639966c5502d34","kind":"commit","published_at":"2016-05-18T07:46:22.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.4.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.4.0/manifests"},{"name":"release-7.4.0","sha":"779a655ce6c719e34bad8c2837639966c5502d34","kind":"commit","published_at":"2016-05-18T07:46:22.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.4.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.4.0/manifests"},{"name":"release-7.3.2","sha":"bf3f38f36a5c8764b16ad361cba74c65349fb2c9","kind":"commit","published_at":"2016-05-06T06:29:55.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.3.2","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.3.2/manifests"},{"name":"v7.3.2","sha":"bf3f38f36a5c8764b16ad361cba74c65349fb2c9","kind":"commit","published_at":"2016-05-06T06:29:55.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.3.2","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.3.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.3.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.3.2/manifests"},{"name":"v7.3.1","sha":"83360180dda4dbe905a31376e8a7832d68acb7e4","kind":"commit","published_at":"2016-04-22T07:40:16.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.3.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.3.1/manifests"},{"name":"release-7.3.1","sha":"83360180dda4dbe905a31376e8a7832d68acb7e4","kind":"commit","published_at":"2016-04-22T07:40:16.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.3.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.3.1/manifests"},{"name":"v7.3.0","sha":"858d41bb6bb449c5e0d9052ccbd763c151c25574","kind":"commit","published_at":"2016-04-08T08:00:29.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.3.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.3.0/manifests"},{"name":"release-7.3.0","sha":"858d41bb6bb449c5e0d9052ccbd763c151c25574","kind":"commit","published_at":"2016-04-08T08:00:29.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.3.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.3.0/manifests"},{"name":"release-7.2.8","sha":"f7b3a64c38c5fea9841677745eb30eb4f42140f8","kind":"commit","published_at":"2016-03-21T17:59:42.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.2.8","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.2.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.2.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.2.8/manifests"},{"name":"v7.2.8","sha":"f7b3a64c38c5fea9841677745eb30eb4f42140f8","kind":"commit","published_at":"2016-03-21T17:59:42.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.2.8","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.2.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.2.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.2.8/manifests"},{"name":"release-7.2.7","sha":"5753613ff9f8134def6a4e0ee43a40a36b41fd9b","kind":"commit","published_at":"2016-03-10T09:55:44.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.2.7","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.2.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.2.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.2.7/manifests"},{"name":"v7.2.7","sha":"5753613ff9f8134def6a4e0ee43a40a36b41fd9b","kind":"commit","published_at":"2016-03-10T09:55:44.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.2.7","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.2.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.2.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.2.7/manifests"},{"name":"release-7.2.6","sha":"5eb00dfb5cec7011ae643f53afb556455753d526","kind":"commit","published_at":"2016-02-26T09:20:08.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.2.6","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.2.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.2.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.2.6/manifests"},{"name":"v7.2.6","sha":"5eb00dfb5cec7011ae643f53afb556455753d526","kind":"commit","published_at":"2016-02-26T09:20:08.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.2.6","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.2.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.2.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.2.6/manifests"},{"name":"release-7.2.5","sha":"8c742f10ef80f72ada7718968cdbe3651effa01f","kind":"commit","published_at":"2016-02-12T09:02:02.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.2.5","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.2.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.2.5/manifests"},{"name":"v7.2.5","sha":"8c742f10ef80f72ada7718968cdbe3651effa01f","kind":"commit","published_at":"2016-02-12T09:02:02.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.2.5","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.2.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.2.5/manifests"},{"name":"v7.2.4","sha":"74cd7b7403dc9d1ca0cae9aa07e5e5ed31f3f148","kind":"commit","published_at":"2016-01-29T07:24:32.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.2.4","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.2.4/manifests"},{"name":"release-7.2.4","sha":"74cd7b7403dc9d1ca0cae9aa07e5e5ed31f3f148","kind":"commit","published_at":"2016-01-29T07:24:32.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.2.4","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.2.4/manifests"},{"name":"release-7.2.3","sha":"364f82f4ee3ff1b4a56c26c8ef09be97da6acc5e","kind":"commit","published_at":"2016-01-13T19:44:11.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.2.3","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.2.3/manifests"},{"name":"v7.2.3","sha":"364f82f4ee3ff1b4a56c26c8ef09be97da6acc5e","kind":"commit","published_at":"2016-01-13T19:44:11.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.2.3","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.2.3/manifests"},{"name":"v7.2.2","sha":"7a718b2439ff1cf98d428fbb023de33056ca6266","kind":"commit","published_at":"2015-12-15T20:24:02.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.2.2","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.2.2/manifests"},{"name":"release-7.2.2","sha":"7a718b2439ff1cf98d428fbb023de33056ca6266","kind":"commit","published_at":"2015-12-15T20:24:02.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.2.2","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.2.2/manifests"},{"name":"release-7.2.1","sha":"4403dec0184f39768f338afe20715f736dda9d58","kind":"commit","published_at":"2015-11-13T11:40:48.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.2.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.2.1/manifests"},{"name":"v7.2.1","sha":"4403dec0184f39768f338afe20715f736dda9d58","kind":"commit","published_at":"2015-11-13T11:40:48.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.2.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.2.1/manifests"},{"name":"release-7.1.1","sha":"449c5042517a00d87a6bc16348a429f08d267a1a","kind":"commit","published_at":"2015-11-04T07:21:08.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.1.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.1.1/manifests"},{"name":"v7.1.1","sha":"449c5042517a00d87a6bc16348a429f08d267a1a","kind":"commit","published_at":"2015-11-04T07:21:08.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.1.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.1.1/manifests"},{"name":"release-7.1.0","sha":"1da4420ed0d37384e656c3858f4da139920435d7","kind":"commit","published_at":"2015-10-09T13:56:30.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.1.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.1.0/manifests"},{"name":"v7.1.0","sha":"1da4420ed0d37384e656c3858f4da139920435d7","kind":"commit","published_at":"2015-10-09T13:56:30.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.1.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.1.0/manifests"},{"name":"v7.0.11","sha":"daed536e4c90438f78e70f3a2b2f2f4421f0f15d","kind":"commit","published_at":"2015-09-17T15:38:10.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.0.11","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.0.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.0.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.0.11/manifests"},{"name":"release-7.0.11","sha":"daed536e4c90438f78e70f3a2b2f2f4421f0f15d","kind":"commit","published_at":"2015-09-17T15:38:10.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.0.11","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.0.11","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.0.11","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.0.11/manifests"},{"name":"release-7.0.9","sha":"b2a3accbba2491aadd76abffa6e93a56d3d71a34","kind":"commit","published_at":"2015-08-08T16:29:06.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.0.9","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.0.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.0.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.0.9/manifests"},{"name":"v7.0.9","sha":"b2a3accbba2491aadd76abffa6e93a56d3d71a34","kind":"commit","published_at":"2015-08-08T16:29:06.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.0.9","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.0.9","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.0.9","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.0.9/manifests"},{"name":"release-7.0.8","sha":"40a81efbb71943cb4117f7d59f021e85b012c0ce","kind":"commit","published_at":"2015-07-23T07:34:45.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.0.8","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.0.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.0.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.0.8/manifests"},{"name":"v7.0.8","sha":"40a81efbb71943cb4117f7d59f021e85b012c0ce","kind":"commit","published_at":"2015-07-23T07:34:45.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.0.8","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.0.8","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.0.8","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.0.8/manifests"},{"name":"v7.0.7","sha":"fad8319c3b46a87df7d9847b722676388c76cb46","kind":"commit","published_at":"2015-06-30T06:24:08.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.0.7","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.0.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.0.7/manifests"},{"name":"release-7.0.7","sha":"fad8319c3b46a87df7d9847b722676388c76cb46","kind":"commit","published_at":"2015-06-30T06:24:08.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.0.7","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.0.7","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.0.7","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.0.7/manifests"},{"name":"v7.0.6","sha":"6f1344059862fde02b78f445a1533e0372e5a41d","kind":"commit","published_at":"2015-06-12T13:47:41.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.0.6","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.0.6/manifests"},{"name":"release-7.0.6","sha":"6f1344059862fde02b78f445a1533e0372e5a41d","kind":"commit","published_at":"2015-06-12T13:47:41.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.0.6","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.0.6","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.0.6","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.0.6/manifests"},{"name":"v7.0.5","sha":"14edfc3ccc73f75c744543d493c27954eb05c3fd","kind":"commit","published_at":"2015-05-29T08:33:47.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.0.5","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.0.5/manifests"},{"name":"release-7.0.5","sha":"14edfc3ccc73f75c744543d493c27954eb05c3fd","kind":"commit","published_at":"2015-05-29T08:33:47.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.0.5","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.0.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.0.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.0.5/manifests"},{"name":"release-7.0.4","sha":"a4aa4d760a13f6401d03a8d9f26181a923ee5c7d","kind":"commit","published_at":"2015-03-27T08:37:09.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.0.4","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.0.4/manifests"},{"name":"v7.0.4","sha":"a4aa4d760a13f6401d03a8d9f26181a923ee5c7d","kind":"commit","published_at":"2015-03-27T08:37:09.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.0.4","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.0.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.0.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.0.4/manifests"},{"name":"release-7.0.2","sha":"22791016a319e1cea7f3bb474491a89c6a708da0","kind":"commit","published_at":"2015-01-09T19:44:37.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.0.2","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.0.2/manifests"},{"name":"v7.0.2","sha":"22791016a319e1cea7f3bb474491a89c6a708da0","kind":"commit","published_at":"2015-01-09T19:44:37.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.0.2","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.0.2/manifests"},{"name":"release-7.0.1","sha":"9550a8a7820f7730a7f751ca72704d75eb4759e4","kind":"commit","published_at":"2014-11-26T16:11:45.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.0.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.0.1/manifests"},{"name":"v7.0.1","sha":"9550a8a7820f7730a7f751ca72704d75eb4759e4","kind":"commit","published_at":"2014-11-26T16:11:45.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.0.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.0.1/manifests"},{"name":"release-7.0.0","sha":"0e54d530399850ed3f5844d4df7a94d88aada1d1","kind":"commit","published_at":"2014-11-02T10:40:07.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-7.0.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-7.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-7.0.0/manifests"},{"name":"v7.0.0","sha":"0e54d530399850ed3f5844d4df7a94d88aada1d1","kind":"commit","published_at":"2014-11-02T10:40:07.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/v7.0.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/v7.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/v7.0.0/manifests"},{"name":"release-6.3.1","sha":"8a0a687529c17fc28beadf4969a564c42baf952c","kind":"commit","published_at":"2014-10-19T07:55:22.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-6.3.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-6.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-6.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-6.3.1/manifests"},{"name":"release-6.3.0","sha":"afc85ebbaf4fd73b9f617cafc1a16fe11ba838f7","kind":"commit","published_at":"2014-09-28T15:56:44.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-6.3.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-6.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-6.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-6.3.0/manifests"},{"name":"release-6.2.2","sha":"a2a1feba924d1fe2c57bf359690f98209d0497a0","kind":"commit","published_at":"2014-08-31T09:05:50.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-6.2.2","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-6.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-6.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-6.2.2/manifests"},{"name":"release-6.2.1","sha":"32f038ebe3ed5597a653d4db89ccee84824dbb54","kind":"commit","published_at":"2014-08-05T08:26:02.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-6.2.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-6.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-6.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-6.2.1/manifests"},{"name":"release-6.2.0","sha":"5003d7f891256d29d978be1c83f1ed8f92b8b2d1","kind":"commit","published_at":"2014-07-01T18:34:34.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-6.2.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-6.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-6.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-6.2.0/manifests"},{"name":"release-6.1.0","sha":"b3a72c440a1799053e8b9a1b3f2270ae3cb79daa","kind":"commit","published_at":"2014-05-10T08:06:27.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-6.1.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-6.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-6.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-6.1.0/manifests"},{"name":"release-6.0.0a","sha":"6686d64d8d8da6d41e4cfb04f2d216b5aee12763","kind":"commit","published_at":"2014-03-19T11:03:49.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-6.0.0a","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-6.0.0a","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-6.0.0a","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-6.0.0a/manifests"},{"name":"release-6.0.0","sha":"966a707fafd24cf24fbd9aa337cfcf9dde996e2a","kind":"commit","published_at":"2014-02-28T09:48:39.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-6.0.0","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-6.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-6.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-6.0.0/manifests"},{"name":"release-5.9.2","sha":"91c2139f937c41b871783b0a21d98cfe848bb83f","kind":"commit","published_at":"2013-12-23T14:40:54.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-5.9.2","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-5.9.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-5.9.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-5.9.2/manifests"},{"name":"release-5.9.1","sha":"227dc66efe4fd69ceae14f025b428369a8a0aeed","kind":"commit","published_at":"2013-12-16T21:42:14.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-5.9.1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-5.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-5.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-5.9.1/manifests"},{"name":"release-5.9b1","sha":"a5281c78d013c987fdf2f8099f8657e09412369c","kind":"commit","published_at":"2013-11-15T12:15:35.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-5.9b1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-5.9b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-5.9b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-5.9b1/manifests"},{"name":"release-5.8b1","sha":"438dd5c20f60537a81e8477266dce50242d250f5","kind":"commit","published_at":"2013-09-03T14:16:02.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-5.8b1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-5.8b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-5.8b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-5.8b1/manifests"},{"name":"release-5.7b2","sha":"392d057993eaf2a7b3f2aabaf4484eb684855344","kind":"commit","published_at":"2013-07-22T10:38:57.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-5.7b2","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-5.7b2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-5.7b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-5.7b2/manifests"},{"name":"release-5.7b1","sha":"5635055796f65b7a38b44397470f3ae5cab910fb","kind":"commit","published_at":"2013-07-21T13:02:20.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-5.7b1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-5.7b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-5.7b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-5.7b1/manifests"},{"name":"release-5.6b1","sha":"3ed72b7d010970fc4325eb4bbf66d0214f92255a","kind":"commit","published_at":"2013-06-10T10:06:59.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-5.6b1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-5.6b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-5.6b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-5.6b1/manifests"},{"name":"release-5.5b1","sha":"fc2abfac904074929522f23b69e680d4425bb157","kind":"commit","published_at":"2013-05-09T10:38:49.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-5.5b1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-5.5b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-5.5b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-5.5b1/manifests"},{"name":"release-5.4b1","sha":"5daabf111c38c39e7e5e370994547151b01b2bfa","kind":"commit","published_at":"2013-03-09T07:49:57.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-5.4b1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-5.4b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-5.4b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-5.4b1/manifests"},{"name":"release-5.3b1","sha":"273a4b838d8d5576fd31a29aeb344500027be789","kind":"commit","published_at":"2013-01-09T15:35:50.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-5.3b1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-5.3b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-5.3b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-5.3b1/manifests"},{"name":"release-5.2b1","sha":"fc457e9ccfcd6f2b55f6d56adc0e8d67a18078e7","kind":"commit","published_at":"2012-10-12T16:39:07.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-5.2b1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-5.2b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-5.2b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-5.2b1/manifests"},{"name":"release-5.1b1","sha":"6cef034319e8f9bdcf02f7eae73e4b1a8242ec04","kind":"commit","published_at":"2012-09-09T20:20:29.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-5.1b1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-5.1b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-5.1b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-5.1b1/manifests"},{"name":"release-5.0b2","sha":"7570c8dec37af3ee0276c4a0033a4ead61d67810","kind":"commit","published_at":"2012-07-18T19:14:05.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-5.0b2","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-5.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-5.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-5.0b2/manifests"},{"name":"release-5.0b1","sha":"cf9b48fbdbc7ecaade91efc87ad884b43ecfe9cd","kind":"commit","published_at":"2012-07-13T09:51:28.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-5.0b1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-5.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-5.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-5.0b1/manifests"},{"name":"release-4.9b1","sha":"d8f2b74e1f8c67c489e0b5dffa8eebaa9ce341c9","kind":"commit","published_at":"2012-06-27T21:00:57.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-4.9b1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-4.9b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-4.9b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-4.9b1/manifests"},{"name":"release-4.8b1","sha":"38b95ff0cfc86f2a9b9ef372772a0185d02d4b2e","kind":"commit","published_at":"2012-04-25T11:59:08.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-4.8b1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-4.8b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-4.8b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-4.8b1/manifests"},{"name":"release-4.7b1","sha":"8e6b266b6bbcbdc71ddc9cc9da9c1f60cafde165","kind":"commit","published_at":"2012-03-18T19:36:55.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-4.7b1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-4.7b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-4.7b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-4.7b1/manifests"},{"name":"release-4.6b1","sha":"0832255c41e17fc0b42fb469b9b928e816a2ccde","kind":"commit","published_at":"2012-02-10T20:49:46.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-4.6b1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-4.6b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-4.6b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-4.6b1/manifests"},{"name":"release-4.5b1","sha":"913ed06560883d217105139416515456470eefe1","kind":"commit","published_at":"2012-01-21T18:27:57.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-4.5b1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-4.5b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-4.5b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-4.5b1/manifests"},{"name":"release-4.4b1","sha":"1c7b18ae6c95221c447180fd72db1fbb565f7ffd","kind":"commit","published_at":"2011-12-12T08:39:45.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-4.4b1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-4.4b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-4.4b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-4.4b1/manifests"},{"name":"release-4.3b1","sha":"7a7b98caf75f541a4ce7440803058a36ac6756a4","kind":"commit","published_at":"2011-11-25T12:24:50.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-4.3b1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-4.3b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-4.3b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-4.3b1/manifests"},{"name":"release-4.2b1","sha":"e96fab34604937ba3d2e8725613fbcc0fbf4ffc2","kind":"commit","published_at":"2011-11-11T19:41:05.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-4.2b1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-4.2b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-4.2b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-4.2b1/manifests"},{"name":"release-4.1b1","sha":"d6eb056a37d74df071f6abdb705c02a1d5c89a3b","kind":"commit","published_at":"2011-10-20T15:19:22.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-4.1b1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-4.1b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-4.1b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-4.1b1/manifests"},{"name":"release-4.0b1","sha":"d859810dd16766b110ff4809e4ba3c78eba93657","kind":"commit","published_at":"2011-10-07T18:40:42.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-4.0b1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-4.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-4.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-4.0b1/manifests"},{"name":"release-3.9b1","sha":"8964b75ccbeb15b05e56997386394dded7c86e87","kind":"commit","published_at":"2011-09-14T16:42:07.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-3.9b1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-3.9b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-3.9b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-3.9b1/manifests"},{"name":"release-3.8b1","sha":"557668ac048498db28e1d925ccf5e9353c47c8f4","kind":"commit","published_at":"2011-08-12T11:35:18.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-3.8b1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-3.8b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-3.8b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-3.8b1/manifests"},{"name":"release-3.7b1","sha":"218ef0673bf9ec45de0b18755d19260aa3dcb458","kind":"commit","published_at":"2011-07-05T08:21:12.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-3.7b1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-3.7b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-3.7b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-3.7b1/manifests"},{"name":"release-3.6b1","sha":"ed57618f3431a8ee81c1ae1b71f84350bf067d81","kind":"commit","published_at":"2011-06-30T18:41:08.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-3.6b1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-3.6b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-3.6b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-3.6b1/manifests"},{"name":"release-3.5b2","sha":"506bf26326fda311b4e3cccbe6f3d9a67950a3e9","kind":"commit","published_at":"2011-06-08T17:09:07.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-3.5b2","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-3.5b2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-3.5b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-3.5b2/manifests"},{"name":"release-3.5b1","sha":"243bced6ca17f69bf6841b9d1a2ec18680d9997a","kind":"commit","published_at":"2011-05-25T21:42:37.000Z","download_url":"https://codeload.github.com/daviddrysdale/python-phonenumbers/tar.gz/release-3.5b1","html_url":"https://github.com/daviddrysdale/python-phonenumbers/releases/tag/release-3.5b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-3.5b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daviddrysdale%2Fpython-phonenumbers/tags/release-3.5b1/manifests"}]},"repo_metadata_updated_at":"2025-01-14T15:17:34.538Z","dependent_packages_count":222,"downloads":7070689,"downloads_period":"last-month","dependent_repos_count":6592,"rankings":{"downloads":0.13556129781905796,"dependent_repos_count":0.11752443046218047,"dependent_packages_count":0.10424202377629548,"stargazers_count":1.340977608580433,"forks_count":2.6064222639496184,"docker_downloads_count":0.43801108412964523,"average":0.7904564514528718},"purl":"pkg:pypi/phonenumbers","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/phonenumbers","docker_dependents_count":676,"docker_downloads_count":61316509,"usage_url":"https://repos.ecosyste.ms/usage/pypi/phonenumbers","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/phonenumbers/dependencies","status":null,"funding_links":[],"critical":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/phonenumbers/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/phonenumbers/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/phonenumbers/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/phonenumbers/related_packages","maintainers":[{"uuid":"galloglass","login":"galloglass","name":null,"email":null,"url":null,"packages_count":2,"html_url":"https://pypi.org/user/galloglass/","role":null,"created_at":"2022-11-26T00:29:19.360Z","updated_at":"2022-11-26T00:29:19.360Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/galloglass/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":689700,"maintainers_count":292477,"namespaces_count":0,"keywords_count":228396,"github":"pypi","metadata":{"funded_packages_count":48936},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-06-04T05:22:32.052Z","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":90,"unique_repositories_count_past_30_days":4,"recent_issues":[{"uuid":"4520057263","node_id":"PR_kwDOFOOOy87fMnxS","number":152,"state":"closed","title":"chore(deps): bump the production-dependencies group with 4 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-03T01:18:57.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-25T23:19:16.000Z","updated_at":"2026-06-03T01:18:59.000Z","time_to_close":698381,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"production-dependencies","update_count":4,"packages":[{"name":"fastapi","old_version":"0.136.1","new_version":"0.136.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"phonenumbers","old_version":"9.0.30","new_version":"9.0.31","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"},{"name":"pymysql","old_version":"1.1.3","new_version":"1.2.0","repository_url":"https://github.com/PyMySQL/PyMySQL"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [fastapi](https://github.com/fastapi/fastapi), [peewee](https://github.com/coleifer/peewee), [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) and [pymysql](https://github.com/PyMySQL/PyMySQL) to permit the latest version.\nUpdates `fastapi` from 0.136.1 to 0.136.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.136.3\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Do not accept underscore headers when using \u003ccode\u003econvert_underscores=True\u003c/code\u003e (the default). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15589\"\u003e#15589\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.136.2\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Validate Server Sent Event fields to avoid applications from sending broken data. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15588\"\u003e#15588\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Document \u003ccode\u003e--entrypoint\u003c/code\u003e CLI option. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15464\"\u003e#15464\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update and simplify docs about help and management. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15583\"\u003e#15583\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add docs references to central contributing docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15580\"\u003e#15580\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 security policy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15577\"\u003e#15577\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🍱 Update sponsors: TalorData image. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15562\"\u003e#15562\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update docs, simplify usage of admonitions, only default ones. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15553\"\u003e#15553\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📝 Fix image URLs in \u003ccode\u003eindex.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15534\"\u003e#15534\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✏️ Fix Azkaban spelling typo in \u003ccode\u003evirtual-environments.md‎\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15463\"\u003e#15463\u003c/a\u003e by \u003ca href=\"https://github.com/isaacbernat\"\u003e\u003ccode\u003e@​isaacbernat\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Improve layout and styling. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15462\"\u003e#15462\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Refactor opinions section with interactive tabs and new logos. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15458\"\u003e#15458\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add FastAPI Conf '26 announcement to docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15457\"\u003e#15457\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Improve translation consistency in \u003ccode\u003e‎docs/pt/docs/advanced/generate-clients.md‎\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15456\"\u003e#15456\u003c/a\u003e by \u003ca href=\"https://github.com/Will-thom\"\u003e\u003ccode\u003e@​Will-thom\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15530\"\u003e#15530\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for uk (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15529\"\u003e#15529\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for pt (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15528\"\u003e#15528\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15527\"\u003e#15527\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for tr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15526\"\u003e#15526\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15525\"\u003e#15525\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15524\"\u003e#15524\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for fr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15522\"\u003e#15522\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for es (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15523\"\u003e#15523\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15520\"\u003e#15520\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ru (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15521\"\u003e#15521\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🌐 Fix typos in Spanish LLM-prompt. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15472\"\u003e#15472\u003c/a\u003e by \u003ca href=\"https://github.com/crr004\"\u003e\u003ccode\u003e@​crr004\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Update tests, don't double dispose the engine. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15587\"\u003e#15587\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⚡️ Speed up test suite via caching and fixture scopes to make it ~24% faster. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13583\"\u003e#13583\u003c/a\u003e by \u003ca href=\"https://github.com/dikos1337\"\u003e\u003ccode\u003e@​dikos1337\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove config files now in central GitHub repo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15585\"\u003e#15585\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump urllib3 from 2.6.3 to 2.7.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15502\"\u003e#15502\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump idna from 3.11 to 3.15. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15565\"\u003e#15565\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.15.0 to 4.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15571\"\u003e#15571\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Migrate docs from MkDocs to Zensical. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15563\"\u003e#15563\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🔒️ Only allow team members to modify dependencies. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15548\"\u003e#15548\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\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/82064857539e6286522c347b4b11331b48dd2378\"\u003e\u003ccode\u003e8206485\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c910e0139f983d0e04e2d1d235cd71803afeae34\"\u003e\u003ccode\u003ec910e01\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/063b5bf582d31fb155cc6bc6f88cf512329d0fd5\"\u003e\u003ccode\u003e063b5bf\u003c/code\u003e\u003c/a\u003e ♻️ Do not accept underscore headers when using \u003ccode\u003econvert_underscores=True\u003c/code\u003e (th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/22b02e26f9e8c7e32bd8266e2b0ebe8bb3a0db2b\"\u003e\u003ccode\u003e22b02e2\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3b252a2a22ba27a8ab83d6bde7d9cddbc5bf738e\"\u003e\u003ccode\u003e3b252a2\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c7fb7851b3389f24c51701d705458989be53ccbb\"\u003e\u003ccode\u003ec7fb785\u003c/code\u003e\u003c/a\u003e ♻️ Validate Server Sent Event fields to avoid applications from sending broke...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cb83b83dcf78eab4ea17d504db5abcda705fbdc4\"\u003e\u003ccode\u003ecb83b83\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/00f805cec94c0bf48c1f9a563535a3ab2e6f90ab\"\u003e\u003ccode\u003e00f805c\u003c/code\u003e\u003c/a\u003e ✅ Update tests, don't double dispose the engine (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15587\"\u003e#15587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3675137523dc167981aa3a3c44599b4f3079ccd8\"\u003e\u003ccode\u003e3675137\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7b57e42986bb4d40c9eb6580537d13fb8e76097e\"\u003e\u003ccode\u003e7b57e42\u003c/code\u003e\u003c/a\u003e 📝 Document \u003ccode\u003e--entrypoint\u003c/code\u003e CLI option (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15464\"\u003e#15464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.136.1...0.136.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `peewee` to 4.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coleifer/peewee/releases\"\u003epeewee's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.0.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd new methods to the postgres \u003ccode\u003eBinaryJSONField\u003c/code\u003e: helpers for in-place modifications (\u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, \u003ccode\u003einsert\u003c/code\u003e, \u003ccode\u003eappend\u003c/code\u003e, \u003ccode\u003eupdate\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAlso add json-path helpers to the postgres \u003ccode\u003eBinaryJSONField\u003c/code\u003e (\u003ccode\u003epath_exists\u003c/code\u003e, \u003ccode\u003epath_match\u003c/code\u003e, \u003ccode\u003epath_query\u003c/code\u003e, \u003ccode\u003epath_query_array\u003c/code\u003e, \u003ccode\u003epath_query_first\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eQuote path elements in SQLite's JSON field.\u003c/li\u003e\n\u003cli\u003eBetter and faster parsing of formatted date/times. Use the stdlib \u003ccode\u003efromisoformat\u003c/code\u003e as a first attempt since it's faster and more robust.\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003edb.connection_context()\u003c/code\u003e can be nested cleanly, \u003ca href=\"https://redirect.github.com/coleifer/peewee/issues/3046\"\u003e#3046\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix potential deadlock in \u003ccode\u003epool.close_all\u003c/code\u003e and \u003ccode\u003epool.manual_close\u003c/code\u003e, \u003ca href=\"https://redirect.github.com/coleifer/peewee/issues/3047\"\u003e#3047\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRestore whitespace stripping in \u003ccode\u003eFixedCharField\u003c/code\u003e, \u003ca href=\"https://redirect.github.com/coleifer/peewee/issues/3048\"\u003e#3048\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.5...4.0.6\"\u003eView commits\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\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/coleifer/peewee/blob/master/CHANGELOG.md\"\u003epeewee's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.0.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd new methods to the postgres \u003ccode\u003eBinaryJSONField\u003c/code\u003e: helpers for in-place\nmodifications (\u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, \u003ccode\u003einsert\u003c/code\u003e, \u003ccode\u003eappend\u003c/code\u003e, \u003ccode\u003eupdate\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAlso add json-path helpers to the postgres \u003ccode\u003eBinaryJSONField\u003c/code\u003e (\u003ccode\u003epath_exists\u003c/code\u003e,\n\u003ccode\u003epath_match\u003c/code\u003e, \u003ccode\u003epath_query\u003c/code\u003e, \u003ccode\u003epath_query_array\u003c/code\u003e, \u003ccode\u003epath_query_first\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eQuote path elements in SQLite's JSON field.\u003c/li\u003e\n\u003cli\u003eBetter and faster parsing of formatted date/times. Use the stdlib\n\u003ccode\u003efromisoformat\u003c/code\u003e as a first attempt since it's faster and more robust.\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003edb.connection_context()\u003c/code\u003e can be nested cleanly, \u003ca href=\"https://redirect.github.com/coleifer/peewee/issues/3046\"\u003e#3046\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix potential deadlock in \u003ccode\u003epool.close_all\u003c/code\u003e and \u003ccode\u003epool.manual_close\u003c/code\u003e, \u003ca href=\"https://redirect.github.com/coleifer/peewee/issues/3047\"\u003e#3047\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRestore whitespace stripping in \u003ccode\u003eFixedCharField\u003c/code\u003e, \u003ca href=\"https://redirect.github.com/coleifer/peewee/issues/3048\"\u003e#3048\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.5...4.0.6\"\u003eView commits\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where \u003ccode\u003edb_value()\u003c/code\u003e may not get called in subclasses of Postgres\nJSONField / BinaryJSONField, refs \u003ca href=\"https://redirect.github.com/coleifer/peewee/issues/3044\"\u003e#3044\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix bug where indexes for table may be defined on multiple schema, \u003ca href=\"https://redirect.github.com/coleifer/peewee/issues/3043\"\u003e#3043\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAlways fall-through to base exception class if exception is not recognized in\nDB drivers. This simplifies checking driver-specific subclasses of standard\nDB-API exceptions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.4...4.0.5\"\u003eView commits\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix SQL generation for partial indexes with nulls (not) distinct clause.\u003c/li\u003e\n\u003cli\u003eRaise an \u003ccode\u003eImproperlyConfigured\u003c/code\u003e if pg driver unavailable at model\ndefinition-time when field db-hooks are used, rather than \u003ccode\u003eAttributeError\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.3...4.0.4\"\u003eView commits\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor test suite - this was a mechanical refactor, just moving things\naround and trying to group things more clearly. Also added new tests covering\nsome gaps.\u003c/li\u003e\n\u003cli\u003eExpand multi-value types to include generator expressions, so you can write\nstuff like \u003ccode\u003e.in(a for a in iterable if cond)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eEnsure quotes embedded in entity names are escaped.\u003c/li\u003e\n\u003cli\u003eImproved specification of \u003ccode\u003eFOR UPDATE\u003c/code\u003e clauses.\u003c/li\u003e\n\u003cli\u003eFix for negative values in \u003ccode\u003epaginate()\u003c/code\u003e method.\u003c/li\u003e\n\u003cli\u003eFix for newer MySQL server versions in feature detection code.\u003c/li\u003e\n\u003cli\u003eMore robust handling of unusual aliases / invalid attr names in cursor\nwrapper.\u003c/li\u003e\n\u003cli\u003eBetter handling of duplicated column names in cursor wrapper implementations.\u003c/li\u003e\n\u003cli\u003eImprove performance of ModelCursorWrapper when reconstructing model instance\ngraphs after multi-table selects.\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/coleifer/peewee/commit/5a99f309e5b9db119a9459d09d7fb0ce4331fc33\"\u003e\u003ccode\u003e5a99f30\u003c/code\u003e\u003c/a\u003e 4.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/451f17b01d67cfcd2b5b9f1aa40166c89d1b7f63\"\u003e\u003ccode\u003e451f17b\u003c/code\u003e\u003c/a\u003e Update cl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/63c4dedc7b6bad843b1b035a5fec26b6a7f6b8a6\"\u003e\u003ccode\u003e63c4ded\u003c/code\u003e\u003c/a\u003e Restore whitespace stripping in FixedCharField.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/2f460ad596f28295de8e852146648d48300c91fe\"\u003e\u003ccode\u003e2f460ad\u003c/code\u003e\u003c/a\u003e Fix deadlock in pool manual_close + close_all.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/504f3c57e6564cee07063990cecce4efb44c8f35\"\u003e\u003ccode\u003e504f3c5\u003c/code\u003e\u003c/a\u003e Fix pwasyncio failure w/conn context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/ef045afbb731cca05d0c5b0c0f60eb2b664bff6e\"\u003e\u003ccode\u003eef045af\u003c/code\u003e\u003c/a\u003e changelog update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/b1bc2cf693e8777cde9e29a6f95d37bb0eaecc8a\"\u003e\u003ccode\u003eb1bc2cf\u003c/code\u003e\u003c/a\u003e Make connection_context() nest cleanly.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/be1dd2d47cfd39d3db75d4996d2eaf4400f1b864\"\u003e\u003ccode\u003ebe1dd2d\u003c/code\u003e\u003c/a\u003e Update changelog w/the last couple changes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/8a807983a0d6db91405b10f5cc77f6f31f4fa0c2\"\u003e\u003ccode\u003e8a80798\u003c/code\u003e\u003c/a\u003e Update docs, add path support to nested lookups as well.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/98a0dd4669a94ce8d16325bbe0e245b74bc39873\"\u003e\u003ccode\u003e98a0dd4\u003c/code\u003e\u003c/a\u003e Add some helpers for json mutation + json-path to pg\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.5...4.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phonenumbers` from 9.0.30 to 9.0.31\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/43a9c86fbbbe77d05421a5c020660ee70299e763\"\u003e\u003ccode\u003e43a9c86\u003c/code\u003e\u003c/a\u003e Prep for 9.0.31 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/98c625e88c5d10a79333f63ef0e424078f4eaa57\"\u003e\u003ccode\u003e98c625e\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/9161226e220d5882c3507c6f122410792bfb3605\"\u003e\u003ccode\u003e9161226\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.31\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.30...v9.0.31\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymysql` from 1.1.3 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyMySQL/PyMySQL/releases\"\u003epymysql's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the all-dependencies 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/PyMySQL/PyMySQL/pull/1232\"\u003ePyMySQL/PyMySQL#1232\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReorganize TLS options: implement PREFERRED/REQUIRED SSL mode behavior by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1234\"\u003ePyMySQL/PyMySQL#1234\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport MySQL 8 row/column alias syntax in \u003ccode\u003eexecutemany\u003c/code\u003e INSERT regex by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1235\"\u003ePyMySQL/PyMySQL#1235\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose SQLSTATE on MySQL protocol exceptions without changing exception formatting by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1236\"\u003ePyMySQL/PyMySQL#1236\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReject non-finite \u003ccode\u003edecimal.Decimal\u003c/code\u003e query parameters (\u003ccode\u003eNaN\u003c/code\u003e, \u003ccode\u003esNaN\u003c/code\u003e, \u003ccode\u003e±Infinity\u003c/code\u003e) by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1237\"\u003ePyMySQL/PyMySQL#1237\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update outdated requirements and reference links by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1239\"\u003ePyMySQL/PyMySQL#1239\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare CHANGELOG for v1.2.0 release from v1.1.3 changes by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1238\"\u003ePyMySQL/PyMySQL#1238\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edeprecate \u003ccode\u003edb\u003c/code\u003e and \u003ccode\u003epasswd\u003c/code\u003e again by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1240\"\u003ePyMySQL/PyMySQL#1240\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edeprecate \u003ccode\u003ereconnect\u003c/code\u003e in \u003ccode\u003eConnection.ping()\u003c/code\u003e by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1241\"\u003ePyMySQL/PyMySQL#1241\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003eConnection.set_charset()\u003c/code\u003e at runtime and document warning behavior by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1243\"\u003ePyMySQL/PyMySQL#1243\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease v1.2.0 by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1244\"\u003ePyMySQL/PyMySQL#1244\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/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1234\"\u003ePyMySQL/PyMySQL#1234\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PyMySQL/PyMySQL/compare/v1.1.3...v1.2.0\"\u003ehttps://github.com/PyMySQL/PyMySQL/compare/v1.1.3...v1.2.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyMySQL/PyMySQL/blob/main/CHANGELOG.md\"\u003epymysql's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003cp\u003eRelease date: 2026-05-19\u003c/p\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eConnection.ping()\u003c/code\u003e change the default to not reconnect and deprecate \u003ccode\u003ereconnect\u003c/code\u003e argument.\nCreate a new connection if you want to reconnect. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1241\"\u003e#1241\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eError classes in Cursor class are removed. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1240\"\u003e#1240\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003econnect()\u003c/code\u003e arguments \u003ccode\u003edb\u003c/code\u003e and \u003ccode\u003epasswd\u003c/code\u003e now emit DeprecationWarning.\nUse \u003ccode\u003edatabase\u003c/code\u003e and \u003ccode\u003epassword\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1240\"\u003e#1240\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReorganize TLS connection behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ePyMySQL uses TLS by default when server supports it.\nUse \u003ccode\u003essl_disabled=True\u003c/code\u003e to prohibit SSL. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1213\"\u003e#1213\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen \u003ccode\u003essl_verify_cert=True\u003c/code\u003e, \u003ccode\u003essl_verify_identity=True\u003c/code\u003e, an \u003ccode\u003essl.SSLContext\u003c/code\u003e is passed,\nor when any other SSL option is configured, the connection \u003cstrong\u003erequires\u003c/strong\u003e SSL and raises\n\u003ccode\u003eOperationalError\u003c/code\u003e (CR_SSL_CONNECTION_ERROR) if the server doesn't support it. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1234\"\u003e#1234\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport MySQL 8 row/column alias syntax in \u003ccode\u003eexecutemany\u003c/code\u003e INSERT regex. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1235\"\u003e#1235\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpose SQLSTATE on MySQL protocol exceptions without changing exception formatting. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1236\"\u003e#1236\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject non-finite \u003ccode\u003edecimal.Decimal\u003c/code\u003e query parameters (\u003ccode\u003eNaN\u003c/code\u003e, \u003ccode\u003esNaN\u003c/code\u003e, \u003ccode\u003e±Infinity\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1237\"\u003e#1237\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.set_charset(charset)\u003c/code\u003e now emits \u003ccode\u003eDeprecationWarning\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/PyMySQL/PyMySQL/commit/0f1c324a6b73e34810af3e584f6d32554604488a\"\u003e\u003ccode\u003e0f1c324\u003c/code\u003e\u003c/a\u003e use ubuntu-latest for pypi publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/53b16b22f0fefc64ccf4606f20c87bedcceb1cac\"\u003e\u003ccode\u003e53b16b2\u003c/code\u003e\u003c/a\u003e Release v1.2.0 (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1244\"\u003e#1244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/637fe7e6b2b1bc6effefc53d0faccfe3d5036ea5\"\u003e\u003ccode\u003e637fe7e\u003c/code\u003e\u003c/a\u003e Deprecate \u003ccode\u003eConnection.set_charset()\u003c/code\u003e at runtime and document warning behavior...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/23ca04a357a042db4188adefd04031c205837927\"\u003e\u003ccode\u003e23ca04a\u003c/code\u003e\u003c/a\u003e add AGENTS.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/7349a44e2b264395bd2d78fe3c9b7fdb26a7e740\"\u003e\u003ccode\u003e7349a44\u003c/code\u003e\u003c/a\u003e deprecate \u003ccode\u003ereconnect\u003c/code\u003e in \u003ccode\u003eConnection.ping()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1241\"\u003e#1241\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/ad5c50c254925caf24dbc06832a69f5c5c5ec76b\"\u003e\u003ccode\u003ead5c50c\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/c963edbf53ac52f9ea6c9717411127d0d7f7061a\"\u003e\u003ccode\u003ec963edb\u003c/code\u003e\u003c/a\u003e Deprecation and removals (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1240\"\u003e#1240\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/af6b9b42abcea73d9bfdb0aaff75656171c9cec7\"\u003e\u003ccode\u003eaf6b9b4\u003c/code\u003e\u003c/a\u003e Prepare CHANGELOG for v1.2.0 release from v1.1.3 changes (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1238\"\u003e#1238\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/c7bf73f1987c3b78debb39a7a074e806178ecc9b\"\u003e\u003ccode\u003ec7bf73f\u003c/code\u003e\u003c/a\u003e docs: update outdated requirements and reference links (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1239\"\u003e#1239\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/c532b8d9d515ac5769cd285a5a520afed1e035c1\"\u003e\u003ccode\u003ec532b8d\u003c/code\u003e\u003c/a\u003e Reject non-finite \u003ccode\u003edecimal.Decimal\u003c/code\u003e query parameters (\u003ccode\u003eNaN\u003c/code\u003e, \u003ccode\u003esNaN\u003c/code\u003e, `±Infini...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PyMySQL/PyMySQL/compare/v1.1.3...v1.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \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/smswithoutborders/RelaySMS-Publisher/pull/152","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/smswithoutborders%2FRelaySMS-Publisher/issues/152","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/152/packages"},{"uuid":"4450183390","node_id":"PR_kwDOR5yK7s7bum8_","number":11,"state":"open","title":"chore(deps): bump the python-dependencies group across 1 directory with 3 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-14T23:57:09.000Z","updated_at":"2026-05-15T00:12:29.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-dependencies","update_count":3,"packages":[{"name":"phonenumbers","old_version":"9.0.29","new_version":"9.0.30","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"},{"name":"ruff","old_version":"0.15.12","new_version":"0.15.13","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers), [pydantic[email]](https://github.com/pydantic/pydantic) and [ruff](https://github.com/astral-sh/ruff) to permit the latest version.\nUpdates `phonenumbers` from 9.0.29 to 9.0.30\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/9eea7a8a6af3b26cfe2398711f96cb9666beb56a\"\u003e\u003ccode\u003e9eea7a8\u003c/code\u003e\u003c/a\u003e Prep for 9.0.30 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/52815d5423cb641ebfb0a41e17830c0ec5066d66\"\u003e\u003ccode\u003e52815d5\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/8775727a3f2a1c4e21454c53d5360c1f5cc128af\"\u003e\u003ccode\u003e8775727\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.30\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.29...v9.0.30\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic[email]` to 2.13.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic[email]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.13.4/HISTORY.md\"\u003epydantic[email]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/cf67d4b3193c3fe43ede18612ed62785eee11382\"\u003e\u003ccode\u003ecf67d4b\u003c/code\u003e\u003c/a\u003e Fix linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662\"\u003e\u003ccode\u003ef0d8a21\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a\"\u003e\u003ccode\u003e5e3fe1d\u003c/code\u003e\u003c/a\u003e Check for pydantic tag pattern in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686\"\u003e\u003ccode\u003e7f9edcc\u003c/code\u003e\u003c/a\u003e Document tagging conventions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c\"\u003e\u003ccode\u003eb46a0c9\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400\"\u003e\u003ccode\u003e50629c8\u003c/code\u003e\u003c/a\u003e Update to PyPy 7.3.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725\"\u003e\u003ccode\u003e8522ebb\u003c/code\u003e\u003c/a\u003e Preserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8\"\u003e\u003ccode\u003ea37f3af\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003eMISSING\u003c/code\u003e sentinel test to work with unreleased \u003ccode\u003etyping_extensions\u003c/code\u003e ver...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2\"\u003e\u003ccode\u003e909259a\u003c/code\u003e\u003c/a\u003e Remove Logfire example in documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df\"\u003e\u003ccode\u003e2c4174c\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.155 to 0.2.185\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.12 to 0.15.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.13\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-14.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a rule to flag lazy imports that are eagerly evaluated (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25016\"\u003e#25016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Standardize diagnostic message (\u003ccode\u003ePLR0914\u003c/code\u003e, \u003ccode\u003ePLR0917\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24996\"\u003e#24996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eF811\u003c/code\u003e false positive for class methods (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24933\"\u003e#24933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix setting selection for multi-folder workspace (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24819\"\u003e#24819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix false positive for lines with leading whitespace (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25122\"\u003e#25122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix false positive for f-string debug specifier (\u003ccode\u003ePYI016\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24098\"\u003e#24098\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways include panic payload in panic diagnostic message (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24873\"\u003e#24873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict \u003ccode\u003ePYI034\u003c/code\u003e for in-place operations to enclosing class (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24511\"\u003e#24511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error message for parameters that are declared \u003ccode\u003eglobal\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24902\"\u003e#24902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate known stdlib (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25103\"\u003e#25103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Avoid constructing \u003ccode\u003eglob::Pattern\u003c/code\u003es for literal known modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25123\"\u003e#25123\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd TOML examples to \u003ccode\u003e--config\u003c/code\u003e help text (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25013\"\u003e#25013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eColorize ruff check 'All checks passed' (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25085\"\u003e#25085\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease max allowed value of \u003ccode\u003eline-length\u003c/code\u003e setting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24962\"\u003e#24962\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eD203\u003c/code\u003e to rules that conflict with the formatter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25044\"\u003e#25044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eCOM819\u003c/code\u003e and formatter interaction (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25045\"\u003e#25045\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify that \u003ccode\u003eNotImplemented\u003c/code\u003e is a value, not an exception (\u003ccode\u003eF901\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25054\"\u003e#25054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate number of lint rules supported (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24942\"\u003e#24942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify the playground's markdown template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24924\"\u003e#24924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\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/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.13\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-14.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a rule to flag lazy imports that are eagerly evaluated (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25016\"\u003e#25016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Standardize diagnostic message (\u003ccode\u003ePLR0914\u003c/code\u003e, \u003ccode\u003ePLR0917\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24996\"\u003e#24996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eF811\u003c/code\u003e false positive for class methods (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24933\"\u003e#24933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix setting selection for multi-folder workspace (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24819\"\u003e#24819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix false positive for lines with leading whitespace (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25122\"\u003e#25122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix false positive for f-string debug specifier (\u003ccode\u003ePYI016\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24098\"\u003e#24098\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways include panic payload in panic diagnostic message (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24873\"\u003e#24873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict \u003ccode\u003ePYI034\u003c/code\u003e for in-place operations to enclosing class (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24511\"\u003e#24511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error message for parameters that are declared \u003ccode\u003eglobal\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24902\"\u003e#24902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate known stdlib (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25103\"\u003e#25103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Avoid constructing \u003ccode\u003eglob::Pattern\u003c/code\u003es for literal known modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25123\"\u003e#25123\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd TOML examples to \u003ccode\u003e--config\u003c/code\u003e help text (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25013\"\u003e#25013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eColorize ruff check 'All checks passed' (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25085\"\u003e#25085\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease max allowed value of \u003ccode\u003eline-length\u003c/code\u003e setting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24962\"\u003e#24962\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eD203\u003c/code\u003e to rules that conflict with the formatter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25044\"\u003e#25044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eCOM819\u003c/code\u003e and formatter interaction (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25045\"\u003e#25045\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify that \u003ccode\u003eNotImplemented\u003c/code\u003e is a value, not an exception (\u003ccode\u003eF901\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25054\"\u003e#25054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate number of lint rules supported (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24942\"\u003e#24942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify the playground's markdown template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24924\"\u003e#24924\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/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\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/2afb467ce397e4a89c13a0a814c62cfecb0e9e49\"\u003e\u003ccode\u003e2afb467\u003c/code\u003e\u003c/a\u003e Bump 0.15.13 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25157\"\u003e#25157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/300879600fa3af7cde1e675c63de6ad9d0797d1b\"\u003e\u003ccode\u003e3008796\u003c/code\u003e\u003c/a\u003e [ty] classify TypeVar semantic tokens as type parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24891\"\u003e#24891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/79470e31877acb6074f3bbff2a49e508822ae4e8\"\u003e\u003ccode\u003e79470e3\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eisort\u003c/code\u003e] Avoid constructing \u003ccode\u003eglob::Pattern\u003c/code\u003es for literal known modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25123\"\u003e#25123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2522549901d50f18775999f0fb802b19229417f0\"\u003e\u003ccode\u003e2522549\u003c/code\u003e\u003c/a\u003e Remove shellcheck from prek (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25154\"\u003e#25154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7db7170020f539d6d2bc01dbd0b0c09fab91dc06\"\u003e\u003ccode\u003e7db7170\u003c/code\u003e\u003c/a\u003e [ty] Support TypedDict key completions in incomplete, anonymous contexts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25\"\u003e#25\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bb3dd535f1c5a83e2e56ac93a771fadbeeceebd0\"\u003e\u003ccode\u003ebb3dd53\u003c/code\u003e\u003c/a\u003e [ty] Run full iteration analysis on narrowed typevars (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25143\"\u003e#25143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/828cdb7732efcb16a53f4ee5f011cf653b834d1a\"\u003e\u003ccode\u003e828cdb7\u003c/code\u003e\u003c/a\u003e [ty] Isolate file-watching test environment (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25151\"\u003e#25151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/89e1d8670ea4d3af60c8143ee552dc750200718d\"\u003e\u003ccode\u003e89e1d86\u003c/code\u003e\u003c/a\u003e [ty] Preserve TypedDict keys through dict unpacking (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24523\"\u003e#24523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/86f3064d6fffa5697d174f26b840bd6857b381da\"\u003e\u003ccode\u003e86f3064\u003c/code\u003e\u003c/a\u003e [ty] Avoid accessing \u003ccode\u003eargs[0]\u003c/code\u003e for \u003ccode\u003estatic_assert\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25149\"\u003e#25149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ed819f947dc27e36eac8bb3134153c4668d76a3a\"\u003e\u003ccode\u003eed819f9\u003c/code\u003e\u003c/a\u003e [ty] Treat custom enum \u003ccode\u003e__new__\u003c/code\u003e values as dynamic (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25136\"\u003e#25136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.12...0.15.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/AlessioMartello/umbra-sync/pull/11","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlessioMartello%2Fumbra-sync/issues/11","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/11/packages"},{"uuid":"4425786335","node_id":"PR_kwDODVn7ys7agCbI","number":901,"state":"closed","title":"Bump phonenumbers from 9.0.29 to 9.0.30 in the minor-updates group","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-26T01:45:52.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-12T02:47:38.000Z","updated_at":"2026-05-26T01:45:54.000Z","time_to_close":1205894,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"phonenumbers","old_version":"9.0.29","new_version":"9.0.30","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"}],"path":"the minor-updates group","ecosystem":"pip"},"body":"Bumps the minor-updates group with 1 update: [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers).\n\nUpdates `phonenumbers` from 9.0.29 to 9.0.30\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/9eea7a8a6af3b26cfe2398711f96cb9666beb56a\"\u003e\u003ccode\u003e9eea7a8\u003c/code\u003e\u003c/a\u003e Prep for 9.0.30 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/52815d5423cb641ebfb0a41e17830c0ec5066d66\"\u003e\u003ccode\u003e52815d5\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/8775727a3f2a1c4e21454c53d5360c1f5cc128af\"\u003e\u003ccode\u003e8775727\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.30\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.29...v9.0.30\"\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=phonenumbers\u0026package-manager=uv\u0026previous-version=9.0.29\u0026new-version=9.0.30)](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 \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/Club-Alpin-Annecy/collectives/pull/901","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Club-Alpin-Annecy%2Fcollectives/issues/901","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/901/packages"},{"uuid":"4375423107","node_id":"PR_kwDOR0tLLM7X8qvw","number":50,"state":"open","title":"chore(deps): bump the python-non-major group across 1 directory with 26 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-04T09:29:43.000Z","updated_at":"2026-05-04T09:33:30.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-non-major","update_count":26,"packages":[{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"ruff","old_version":"0.14.8","new_version":"0.15.12","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.19.0","new_version":"1.20.2","repository_url":"https://github.com/python/mypy"},{"name":"datamodel-code-generator","old_version":"0.45.0","new_version":"0.56.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"presidio-analyzer","old_version":"2.2.361","new_version":"2.2.362","repository_url":"https://github.com/Microsoft/presidio"},{"name":"spacy","old_version":"3.8.11","new_version":"3.8.14","repository_url":"https://github.com/explosion/spaCy"},{"name":"phonenumbers","old_version":"9.0.25","new_version":"9.0.29","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"},{"name":"onnxruntime","old_version":"1.24.2","new_version":"1.25.1","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"torch","old_version":"2.10.0","new_version":"2.11.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"pillow","old_version":"12.1.1","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"datasketch","old_version":"1.9.0","new_version":"1.10.0","repository_url":"https://github.com/ekzhu/datasketch"},{"name":"sentence-transformers","old_version":"5.2.3","new_version":"5.4.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"datasets","old_version":"4.6.0","new_version":"4.8.5","repository_url":"https://github.com/huggingface/datasets"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pymysql","old_version":"1.1.2","new_version":"1.1.3","repository_url":"https://github.com/PyMySQL/PyMySQL"},{"name":"thrift","old_version":"0.20.0","new_version":"0.22.0","repository_url":"https://github.com/apache/thrift"},{"name":"snowflake-connector-python","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/snowflakedb/snowflake-connector-python"},{"name":"pymongo","old_version":"4.16.0","new_version":"4.17.0","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"boto3","old_version":"1.42.56","new_version":"1.43.2","repository_url":"https://github.com/boto/boto3"},{"name":"azure-identity","old_version":"1.25.2","new_version":"1.25.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"google-cloud-storage","old_version":"3.9.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"opentelemetry-sdk","old_version":"1.41.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.41.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-non-major group with 25 updates in the /apps/cli directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.3` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.8` | `0.15.12` |\n| [mypy](https://github.com/python/mypy) | `1.19.0` | `1.20.2` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.45.0` | `0.56.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [presidio-analyzer](https://github.com/Microsoft/presidio) | `2.2.361` | `2.2.362` |\n| [spacy](https://github.com/explosion/spaCy) | `3.8.11` | `3.8.14` |\n| [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) | `9.0.25` | `9.0.29` |\n| [onnxruntime](https://github.com/microsoft/onnxruntime) | `1.24.2` | `1.25.1` |\n| [torch](https://github.com/pytorch/pytorch) | `2.10.0` | `2.11.0` |\n| [pillow](https://github.com/python-pillow/Pillow) | `12.1.1` | `12.2.0` |\n| [datasketch](https://github.com/ekzhu/datasketch) | `1.9.0` | `1.10.0` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.3` | `5.4.1` |\n| [datasets](https://github.com/huggingface/datasets) | `4.6.0` | `4.8.5` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [pymysql](https://github.com/PyMySQL/PyMySQL) | `1.1.2` | `1.1.3` |\n| [thrift](https://github.com/apache/thrift) | `0.20.0` | `0.22.0` |\n| [snowflake-connector-python](https://github.com/snowflakedb/snowflake-connector-python) | `4.3.0` | `4.4.0` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.16.0` | `4.17.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.56` | `1.43.2` |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.2` | `1.25.3` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.9.0` | `3.10.1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.41.0` | `1.41.1` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.41.0` | `1.41.1` |\n\n\nUpdates `pydantic` from 2.12.5 to 2.13.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/9e9a11132c980c4ec84ff6d2df06d4c1a55ca8f3\"\u003e\u003ccode\u003e9e9a111\u003c/code\u003e\u003c/a\u003e Fix backported test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1ec8c6aa0cae1c78409c6f31af738a24e16c7124\"\u003e\u003ccode\u003e1ec8c6a\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/fb4f2044436e9fa4ff9745479ce263016a99c4d6\"\u003e\u003ccode\u003efb4f204\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.5 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\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/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.8 to 0.15.12\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.12\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:ignore\u003c/code\u003e logical-line suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23404\"\u003e#23404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert preview changes to displayed diagnostic severity in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24789\"\u003e#24789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003etask-branch-as-short-circuit\u003c/code\u003e (\u003ccode\u003eAIR004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23579\"\u003e#23579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix \u003ccode\u003ebreak\u003c/code\u003e/\u003ccode\u003econtinue\u003c/code\u003e handling in \u003ccode\u003eloop-iterator-mutation\u003c/code\u003e (\u003ccode\u003eB909\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24440\"\u003e#24440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2701\u003c/code\u003e for type parameter scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24576\"\u003e#24576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Suggest \u003ccode\u003e.array\u003c/code\u003e as well in \u003ccode\u003ePD011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24805\"\u003e#24805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect default Unix permissions for cache files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24794\"\u003e#24794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR0124\u003c/code\u003e description not to claim self-comparison always returns the same value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24749\"\u003e#24749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Expand docs on reusable \u003ccode\u003eTypeVar\u003c/code\u003es and scoping (\u003ccode\u003eUP046\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24153\"\u003e#24153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rules table accessibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24711\"\u003e#24711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avasis-ai\"\u003e\u003ccode\u003e@​avasis-ai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShipItAndPray\"\u003e\u003ccode\u003e@​ShipItAndPray\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.12\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.12/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.12\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:ignore\u003c/code\u003e logical-line suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23404\"\u003e#23404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert preview changes to displayed diagnostic severity in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24789\"\u003e#24789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003etask-branch-as-short-circuit\u003c/code\u003e (\u003ccode\u003eAIR004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23579\"\u003e#23579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix \u003ccode\u003ebreak\u003c/code\u003e/\u003ccode\u003econtinue\u003c/code\u003e handling in \u003ccode\u003eloop-iterator-mutation\u003c/code\u003e (\u003ccode\u003eB909\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24440\"\u003e#24440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2701\u003c/code\u003e for type parameter scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24576\"\u003e#24576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Suggest \u003ccode\u003e.array\u003c/code\u003e as well in \u003ccode\u003ePD011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24805\"\u003e#24805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect default Unix permissions for cache files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24794\"\u003e#24794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR0124\u003c/code\u003e description not to claim self-comparison always returns the same value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24749\"\u003e#24749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Expand docs on reusable \u003ccode\u003eTypeVar\u003c/code\u003es and scoping (\u003ccode\u003eUP046\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24153\"\u003e#24153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rules table accessibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24711\"\u003e#24711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avasis-ai\"\u003e\u003ccode\u003e@​avasis-ai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShipItAndPray\"\u003e\u003ccode\u003e@​ShipItAndPray\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/66f93cf7ed4d36325f35a452e4afa28268fbcd28\"\u003e\u003ccode\u003e66f93cf\u003c/code\u003e\u003c/a\u003e Bump 0.15.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24815\"\u003e#24815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/476a4d02e8e3b6c157ac39979d8b698a1b6baa91\"\u003e\u003ccode\u003e476a4d0\u003c/code\u003e\u003c/a\u003e [ty] Complete support for more detailed diagnostics on possibly unbound error...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ed669eab30095d6c51fe6cdef6050fb01276bcb3\"\u003e\u003ccode\u003eed669ea\u003c/code\u003e\u003c/a\u003e Implement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e73d952e43feb51356ee740c5a973fce81396ff6\"\u003e\u003ccode\u003ee73d952\u003c/code\u003e\u003c/a\u003e [ty] Include inferred type in \u003ccode\u003einvalid-key\u003c/code\u003e concise diagnostic for union/inte...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/80feb29b31cd98c093316df2e0407b0c70c01b55\"\u003e\u003ccode\u003e80feb29\u003c/code\u003e\u003c/a\u003e [ty] report only dead annotation-only locals as unused (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24811\"\u003e#24811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0fbf2bc27336a3d17d39af52cf89b78dcda8c7c8\"\u003e\u003ccode\u003e0fbf2bc\u003c/code\u003e\u003c/a\u003e Drop deprecated license classifier (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24808\"\u003e#24808\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/43b174cc7f2fcb0080bb1d4843cd4bf6b72bbe27\"\u003e\u003ccode\u003e43b174c\u003c/code\u003e\u003c/a\u003e [ty] Infer lambda parameter types with \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24317\"\u003e#24317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4f449ae4a2377569330a5ab94799d389357b5a3f\"\u003e\u003ccode\u003e4f449ae\u003c/code\u003e\u003c/a\u003e [ty] Add error context for intersection types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24772\"\u003e#24772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5b4e753acb46e96ad408e4904c15308e33efe307\"\u003e\u003ccode\u003e5b4e753\u003c/code\u003e\u003c/a\u003e [ty] Add support for goto in literal enum member inlay hint (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24792\"\u003e#24792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e7cc76275a758ce1c636ea1c2d091fd576aac794\"\u003e\u003ccode\u003ee7cc762\u003c/code\u003e\u003c/a\u003e [ty] Add error context for TypedDict assignments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24790\"\u003e#24790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.8...0.15.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.19.0 to 1.20.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\u003ch3\u003eMypy 1.20.2\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse WAL with SQLite cache and fix close (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21154\"\u003e21154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust SQLite journal mode (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21217\"\u003e21217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrectly aggregate narrowing information on parent expressions (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21206\"\u003e21206\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression related to generic callables (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21208\"\u003e21208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression by avoiding widening types in some contexts (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21242\"\u003e21242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix slicing in non-strict optional mode (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21282\"\u003e21282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emypyc: Fix match statement semantics for \u0026quot;or\u0026quot; pattern (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21156\"\u003e21156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emypyc: Fix issue with module dunder attributes (Piotr Sawicki, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21275\"\u003e21275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInitial support for Python 3.15.0a8 (Marc Mueller, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21255\"\u003e21255\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eAaron Wieczorek\u003c/li\u003e\n\u003cli\u003eAdam Turner\u003c/li\u003e\n\u003cli\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003easce\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrent Westbrook\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChris Burroughs\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eColin Watson\u003c/li\u003e\n\u003cli\u003eDonghoon Nam\u003c/li\u003e\n\u003cli\u003eE. M. Bray\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eGeorge Ogden\u003c/li\u003e\n\u003cli\u003egetzze\u003c/li\u003e\n\u003cli\u003egrayjk\u003c/li\u003e\n\u003cli\u003eGregor Riepl\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilliard\u003c/li\u003e\n\u003cli\u003eJames Le Cuirot\u003c/li\u003e\n\u003cli\u003eJeremy Nimmer\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eKai (Kazuya Ito)\u003c/li\u003e\n\u003cli\u003ekaushal trivedi\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eLukas Geiger\u003c/li\u003e\n\u003cli\u003eŁukasz Langa\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael R. Crusoe\u003c/li\u003e\n\u003cli\u003emichaelm-openai\u003c/li\u003e\n\u003cli\u003eNeil Schemenauer\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/145a062651b5f9996b75ef32b7040bd2e885ed82\"\u003e\u003ccode\u003e145a062\u003c/code\u003e\u003c/a\u003e Bump version to 1.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/81cd49215c288eacb987de066f02daff2553b7c7\"\u003e\u003ccode\u003e81cd492\u003c/code\u003e\u003c/a\u003e Fix slicing with nonstrict optional (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21282\"\u003e#21282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/908d3441eecbaa2a6193165317177db834d7ca1a\"\u003e\u003ccode\u003e908d344\u003c/code\u003e\u003c/a\u003e [mypyc] Set dunder attrs when adding module to sys.modules (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21275\"\u003e#21275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/ba28610fac9d2b33be210ca8dcfe4bc47b7af424\"\u003e\u003ccode\u003eba28610\u003c/code\u003e\u003c/a\u003e Initial support for Python 3.15.0a8 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21255\"\u003e#21255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/7b0e09f48dbd3717ed008a273cd17e8e960c2037\"\u003e\u003ccode\u003e7b0e09f\u003c/code\u003e\u003c/a\u003e Fix match statement semantics for \u0026quot;or\u0026quot; pattern (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21156\"\u003e#21156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/92b74f226de62f7505f5ef5cb158e8ec9c58b8b7\"\u003e\u003ccode\u003e92b74f2\u003c/code\u003e\u003c/a\u003e Avoid widening types in conditional_types (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21242\"\u003e#21242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/0dcbfaa40b0e360a16baea9cf851955375d91b54\"\u003e\u003ccode\u003e0dcbfaa\u003c/code\u003e\u003c/a\u003e Fix is_overlapping_types for generic callables (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21208\"\u003e#21208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/210f518dede35292033ef0d387847406a0ccef8f\"\u003e\u003ccode\u003e210f518\u003c/code\u003e\u003c/a\u003e Correctly aggregate narrowing information on parent expressions (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21206\"\u003e#21206\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c34530e53a10e385d8b0f1af4baa88a596b5ceaa\"\u003e\u003ccode\u003ec34530e\u003c/code\u003e\u003c/a\u003e Only set journal mode in coordinator (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21217\"\u003e#21217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/79a3ec6d01b56a27c00e9b3320c2b1d4d73a77f9\"\u003e\u003ccode\u003e79a3ec6\u003c/code\u003e\u003c/a\u003e Use WAL with SQLite cache, fix close (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21154\"\u003e#21154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.19.0...v1.20.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.45.0 to 0.56.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.56.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\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/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.56.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003e--allow-remote-refs\u003c/code\u003e / \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e CLI option and \u003ccode\u003eallow_remote_refs\u003c/code\u003e config field - Remote \u003ccode\u003e$ref\u003c/code\u003e fetching over HTTP/HTTPS now emits a deprecation warning by default. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching entirely. In a future version, remote fetching will be disabled by default. Users relying on remote \u003ccode\u003e$ref\u003c/code\u003e resolution should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to their invocations to avoid the deprecation warning and prepare for the future default change. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003eSchemaFetchError\u003c/code\u003e exception for HTTP fetch failures - Remote schema fetching now raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (instead of propagating raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions) on HTTP errors, non-2xx status codes, or unexpected HTML responses. Users catching specific \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote ref resolution will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eError Handling Changes\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.1\"\u003e0.56.1\u003c/a\u003e - 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\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/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.0\"\u003e0.56.0\u003c/a\u003e - 2026-04-04\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\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/koxudaxi/datamodel-code-generator/commit/6274b70b58e6dab57a1797beb8006f9fcdbf7dbe\"\u003e\u003ccode\u003e6274b70\u003c/code\u003e\u003c/a\u003e Docs: describe --keep-model-order as deterministic dependency-aware ordering ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/3e87a9a4a712b2cb8ad6d9faaa85c86ac8838ffe\"\u003e\u003ccode\u003e3e87a9a\u003c/code\u003e\u003c/a\u003e Fix root model reuse collapse (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3089\"\u003e#3089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/51377952477da7ef39efcb2f3e256ae51ad7a1f8\"\u003e\u003ccode\u003e5137795\u003c/code\u003e\u003c/a\u003e tomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3088\"\u003e#3088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/d7a1f7166624eadcd84e97b8d2ca09e8c6dde957\"\u003e\u003ccode\u003ed7a1f71\u003c/code\u003e\u003c/a\u003e Fix relative URL refs with path-only root ids (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f0960e9e2362f1dab2facb55853d2e56a3a923b4\"\u003e\u003ccode\u003ef0960e9\u003c/code\u003e\u003c/a\u003e Prefer CLI input over pyproject url (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3083\"\u003e#3083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/05901ff4ad110b750dcfd996aeaca410767240cd\"\u003e\u003ccode\u003e05901ff\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json sup...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5ba49a72dbfc69dc781a87c6adadb785d794f475\"\u003e\u003ccode\u003e5ba49a7\u003c/code\u003e\u003c/a\u003e docs: update CHANGELOG.md for 0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/52d9ef9dec52f3ad14130710eefb010f0e492160\"\u003e\u003ccode\u003e52d9ef9\u003c/code\u003e\u003c/a\u003e [codex] Refresh project usage list (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7d41fef7884579d728fe42a1e266d8b950ccd72d\"\u003e\u003ccode\u003e7d41fef\u003c/code\u003e\u003c/a\u003e Support JSON files for mapping options (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5a8cd0da7a6d17bfd70c5c2623699ffc6aa818fd\"\u003e\u003ccode\u003e5a8cd0d\u003c/code\u003e\u003c/a\u003e Fix non-string OpenAPI discriminator literals (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.45.0...0.56.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.2 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `presidio-analyzer` from 2.2.361 to 2.2.362\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Microsoft/presidio/releases\"\u003epresidio-analyzer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2.2.362\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - GPU Device Control via Environment Variable by \u003ca href=\"https://github.com/RonShakutai\"\u003e\u003ccode\u003e@​RonShakutai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1844\"\u003emicrosoft/presidio#1844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add HuggingFaceNerRecognizer for direct NER model inference by \u003ca href=\"https://github.com/ultramancode\"\u003e\u003ccode\u003e@​ultramancode\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1834\"\u003emicrosoft/presidio#1834\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Broken Links by \u003ca href=\"https://github.com/andyjessen\"\u003e\u003ccode\u003e@​andyjessen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1856\"\u003emicrosoft/presidio#1856\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin dependencies to mitigate supply chain attacks by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1861\"\u003emicrosoft/presidio#1861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing CVE-2024-47874 and CVE-2025-54121 by \u003ca href=\"https://github.com/SharonHart\"\u003e\u003ccode\u003e@​SharonHart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1860\"\u003emicrosoft/presidio#1860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing CVE-2025-2953 and CVE-2025-3730 by \u003ca href=\"https://github.com/SharonHart\"\u003e\u003ccode\u003e@​SharonHart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1859\"\u003emicrosoft/presidio#1859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Fixed context enhancement substring matching bug  by \u003ca href=\"https://github.com/ravi-jindal\"\u003e\u003ccode\u003e@​ravi-jindal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1827\"\u003emicrosoft/presidio#1827\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix _process_names unconditionally treating all metadata as PHI by \u003ca href=\"https://github.com/Mr-Neutr0n\"\u003e\u003ccode\u003e@​Mr-Neutr0n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1855\"\u003emicrosoft/presidio#1855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add UK Postcode (UK_POSTCODE) recognizer by \u003ca href=\"https://github.com/tee-jagz\"\u003e\u003ccode\u003e@​tee-jagz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1858\"\u003emicrosoft/presidio#1858\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin ruff and build pip installs by hash for OSSF scorecard compliance by \u003ca hre...\n\n_Description has been truncated_","html_url":"https://github.com/classifyre-com/classifyre/pull/50","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/classifyre-com%2Fclassifyre/issues/50","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/50/packages"},{"uuid":"4336560361","node_id":"PR_kwDOPuzaQs7WAHwe","number":62,"state":"open","title":"security(deps): bump phonenumbers from 9.0.19 to 9.0.29","user":"dependabot[bot]","labels":["security","dependencies","python"],"assignees":["arkalia-luna-system"],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-27T14:38:22.000Z","updated_at":"2026-04-27T14:45:02.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"security(deps)","packages":[{"name":"phonenumbers","old_version":"9.0.19","new_version":"9.0.29","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"}],"path":null,"ecosystem":"pip"},"body":"Bumps [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) from 9.0.19 to 9.0.29.\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/510e48693d61e0eda196e3306be9665317b54e3f\"\u003e\u003ccode\u003e510e486\u003c/code\u003e\u003c/a\u003e Prep for 9.0.29 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/61b9db6e20d2b4193fcbd0a33c61806d3fedc8a7\"\u003e\u003ccode\u003e61b9db6\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/8ed9a07abded2239c8bff5c11934c2e259e1cc08\"\u003e\u003ccode\u003e8ed9a07\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.29\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/6e7a12a49a9b01faf0887e6163b9e785ce7220b6\"\u003e\u003ccode\u003e6e7a12a\u003c/code\u003e\u003c/a\u003e Prep for 9.0.28 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/ff287efc6ac0889206cb39072ea1876bbe9754e0\"\u003e\u003ccode\u003eff287ef\u003c/code\u003e\u003c/a\u003e Merge code changes from upstream 9.0.28\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/665a4a76413ed67b1be5234a9c3b7aeae7e3630c\"\u003e\u003ccode\u003e665a4a7\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/57d319dc45f2868cfd18a06cbffc9a24e28deefc\"\u003e\u003ccode\u003e57d319d\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.28\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/3b082bf38fac2ac2a1556b9b416562f464c9d780\"\u003e\u003ccode\u003e3b082bf\u003c/code\u003e\u003c/a\u003e Prep for 9.0.27 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/c496532280afda5778e45d23d5feb621e55fc397\"\u003e\u003ccode\u003ec496532\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/ee29e8518101d039dbaf4463087a786e7c11e01d\"\u003e\u003ccode\u003eee29e85\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.27\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.19...v9.0.29\"\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=phonenumbers\u0026package-manager=pip\u0026previous-version=9.0.19\u0026new-version=9.0.29)](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/arkalia-luna-system/arkalia-cia/pull/62","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkalia-luna-system%2Farkalia-cia/issues/62","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/62/packages"},{"uuid":"4301398122","node_id":"PR_kwDOOQMVns7UPJBG","number":1359,"state":"open","title":"Bump phonenumbers from 9.0.27 to 9.0.28","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-21T08:45:48.000Z","updated_at":"2026-04-27T09:02:21.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"phonenumbers","old_version":"9.0.27","new_version":"9.0.28","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"}],"path":null,"ecosystem":"pip"},"body":"Bumps [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) from 9.0.27 to 9.0.28.\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/6e7a12a49a9b01faf0887e6163b9e785ce7220b6\"\u003e\u003ccode\u003e6e7a12a\u003c/code\u003e\u003c/a\u003e Prep for 9.0.28 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/ff287efc6ac0889206cb39072ea1876bbe9754e0\"\u003e\u003ccode\u003eff287ef\u003c/code\u003e\u003c/a\u003e Merge code changes from upstream 9.0.28\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/665a4a76413ed67b1be5234a9c3b7aeae7e3630c\"\u003e\u003ccode\u003e665a4a7\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/57d319dc45f2868cfd18a06cbffc9a24e28deefc\"\u003e\u003ccode\u003e57d319d\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.28\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.27...v9.0.28\"\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/NHSDigital/dtos-manage-breast-screening/pull/1359","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/NHSDigital%2Fdtos-manage-breast-screening/issues/1359","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1359/packages"},{"uuid":"4294409564","node_id":"PR_kwDOR0tLLM7T4gG0","number":46,"state":"open","title":"chore(deps): bump the python-non-major group across 1 directory with 19 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-20T08:56:24.000Z","updated_at":"2026-04-20T09:42:46.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-non-major","update_count":19,"packages":[{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.2","repository_url":"https://github.com/pydantic/pydantic"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"ruff","old_version":"0.14.8","new_version":"0.15.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.19.0","new_version":"1.20.1","repository_url":"https://github.com/python/mypy"},{"name":"datamodel-code-generator","old_version":"0.45.0","new_version":"0.56.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"presidio-analyzer","old_version":"2.2.361","new_version":"2.2.362","repository_url":"https://github.com/Microsoft/presidio"},{"name":"spacy","old_version":"3.8.11","new_version":"3.8.14","repository_url":"https://github.com/explosion/spaCy"},{"name":"phonenumbers","old_version":"9.0.25","new_version":"9.0.28","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"},{"name":"onnxruntime","old_version":"1.24.2","new_version":"1.24.4","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"torch","old_version":"2.10.0","new_version":"2.11.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"pillow","old_version":"12.1.1","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"datasketch","old_version":"1.9.0","new_version":"1.10.0","repository_url":"https://github.com/ekzhu/datasketch"},{"name":"sentence-transformers","old_version":"5.2.3","new_version":"5.4.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"datasets","old_version":"4.6.0","new_version":"4.8.4","repository_url":"https://github.com/huggingface/datasets"},{"name":"snowflake-connector-python","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/snowflakedb/snowflake-connector-python"},{"name":"boto3","old_version":"1.42.56","new_version":"1.42.91","repository_url":"https://github.com/boto/boto3"},{"name":"azure-identity","old_version":"1.25.2","new_version":"1.25.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"google-cloud-storage","old_version":"3.9.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-non-major group with 19 updates in the /apps/cli directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.2` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.8` | `0.15.11` |\n| [mypy](https://github.com/python/mypy) | `1.19.0` | `1.20.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.45.0` | `0.56.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [presidio-analyzer](https://github.com/Microsoft/presidio) | `2.2.361` | `2.2.362` |\n| [spacy](https://github.com/explosion/spaCy) | `3.8.11` | `3.8.14` |\n| [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) | `9.0.25` | `9.0.28` |\n| [onnxruntime](https://github.com/microsoft/onnxruntime) | `1.24.2` | `1.24.4` |\n| [torch](https://github.com/pytorch/pytorch) | `2.10.0` | `2.11.0` |\n| [pillow](https://github.com/python-pillow/Pillow) | `12.1.1` | `12.2.0` |\n| [datasketch](https://github.com/ekzhu/datasketch) | `1.9.0` | `1.10.0` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.3` | `5.4.1` |\n| [datasets](https://github.com/huggingface/datasets) | `4.6.0` | `4.8.4` |\n| [snowflake-connector-python](https://github.com/snowflakedb/snowflake-connector-python) | `4.3.0` | `4.4.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.56` | `1.42.91` |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.2` | `1.25.3` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.9.0` | `3.10.1` |\n\n\nUpdates `pydantic` from 2.12.5 to 2.13.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.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\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.13.2/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13062\"\u003e#13062\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/17a35e371bdff348c0690651d324c91fc7c9ff9e\"\u003e\u003ccode\u003e17a35e3\u003c/code\u003e\u003c/a\u003e Update jiter to v0.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13064\"\u003e#13064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/feea402b23fa23774669908c4e08a61ba1e4238e\"\u003e\u003ccode\u003efeea402\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003esimulation\u003c/code\u003e mode in Codspeed CI (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13063\"\u003e#13063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/671c9b0d4d3f9b2f1b95ca32ac85cb69e824e0bc\"\u003e\u003ccode\u003e671c9b0\u003c/code\u003e\u003c/a\u003e Add basic benchmarks for model equality (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13061\"\u003e#13061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.5 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\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/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.8 to 0.15.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Omit overridden methods for \u003ccode\u003eASYNC109\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24648\"\u003e#24648\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Add override mention to \u003ccode\u003eASYNC109\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Neovim config examples to use \u003ccode\u003evim.lsp.config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24577\"\u003e#24577\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/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.11\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload ruff 0.15.11\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFile\u003c/th\u003e\n\u003cth\u003ePlatform\u003c/th\u003e\n\u003cth\u003eChecksum\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-apple-darwin.tar.gz\"\u003eruff-aarch64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eApple Silicon macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-x86_64-apple-darwin.tar.gz\"\u003eruff-x86_64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eIntel macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-x86_64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-pc-windows-msvc.zip\"\u003eruff-aarch64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-i686-pc-windows-msvc.zip\"\u003eruff-i686-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-i686-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Omit overridden methods for \u003ccode\u003eASYNC109\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24648\"\u003e#24648\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Add override mention to \u003ccode\u003eASYNC109\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Neovim config examples to use \u003ccode\u003evim.lsp.config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24577\"\u003e#24577\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/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\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/astral-sh/ruff/commit/53554b1cfe837f2eb992a81794480699478f1116\"\u003e\u003ccode\u003e53554b1\u003c/code\u003e\u003c/a\u003e Bump 0.15.11 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24678\"\u003e#24678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/08c56c83cffbb1025cbf5bdede6c6d8be591cf47\"\u003e\u003ccode\u003e08c56c8\u003c/code\u003e\u003c/a\u003e Factor out the \u003ccode\u003emdtest\u003c/code\u003e crate (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24616\"\u003e#24616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/725fbb736d2a999971449b61190b914abd26102a\"\u003e\u003ccode\u003e725fbb7\u003c/code\u003e\u003c/a\u003e [ty] Use partially qualified names when reporting diagnostics regarding bad c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ddd6a30ff5fa27694dc1c50d0749885a1519d0a7\"\u003e\u003ccode\u003eddd6a30\u003c/code\u003e\u003c/a\u003e [ty] Do not suggest argument completion when at value of keyword argument (\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/9282e61d482a36da08d66bb8271afeef50b3bc45\"\u003e\u003ccode\u003e9282e61\u003c/code\u003e\u003c/a\u003e Disallow \u003ca href=\"https://github.com/disjoint\"\u003e\u003ccode\u003e@​disjoint\u003c/code\u003e\u003c/a\u003e_base on TypedDicts and Protocols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24671\"\u003e#24671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9986d8e3008eefe2e387312c4dc8b9c60f6f362\"\u003e\u003ccode\u003ee9986d8\u003c/code\u003e\u003c/a\u003e [ty] Reject using properties with \u003ccode\u003eNever\u003c/code\u003e setters or deleters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24510\"\u003e#24510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9cf212ff82f7b66b4a275ad6a9b1564aee1fa4a8\"\u003e\u003ccode\u003e9cf212f\u003c/code\u003e\u003c/a\u003e [ty] Normalize property setter and deleter wrappers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24509\"\u003e#24509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/12a1589de4d7120cf99441ee4c14871bdc20968d\"\u003e\u003ccode\u003e12a1589\u003c/code\u003e\u003c/a\u003e Add override mention to ASYNC109 docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/dccb03d010f4442ed60624f8d2ba932706abaabb\"\u003e\u003ccode\u003edccb03d\u003c/code\u003e\u003c/a\u003e [ty] Avoid panicking on overloaded \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24661\"\u003e#24661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/61f9a0a5763fb068cd2f26c0ee9d63a277fb26c2\"\u003e\u003ccode\u003e61f9a0a\u003c/code\u003e\u003c/a\u003e [ty] Sync vendored typeshed stubs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24646\"\u003e#24646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.8...0.15.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.19.0 to 1.20.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.20.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways disable sync in SQLite cache (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21184\"\u003e21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTemporarily skip few base64 tests (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21193\"\u003e21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u003ccode\u003edict.__or__\u003c/code\u003e typeshed change (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21186\"\u003e21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing for match case with variadic tuples (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21192\"\u003e21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing \u003ccode\u003etype[T]\u003c/code\u003e in type calls (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21174\"\u003e21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression for catching empty tuple in except (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21153\"\u003e21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix reachability for frozenset and dict view narrowing (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21151\"\u003e21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing with chained comparison (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21150\"\u003e21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing to unreachable at module level (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21144\"\u003e21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow dangerous identity comparisons to \u003ccode\u003eAny\u003c/code\u003e typed variables (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21142\"\u003e21142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--warn-unused-config\u003c/code\u003e should not be a strict flag (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21139\"\u003e21139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eAaron Wieczorek\u003c/li\u003e\n\u003cli\u003eAdam Turner\u003c/li\u003e\n\u003cli\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003easce\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrent Westbrook\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChris Burroughs\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eColin Watson\u003c/li\u003e\n\u003cli\u003eDonghoon Nam\u003c/li\u003e\n\u003cli\u003eE. M. Bray\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eGeorge Ogden\u003c/li\u003e\n\u003cli\u003egetzze\u003c/li\u003e\n\u003cli\u003egrayjk\u003c/li\u003e\n\u003cli\u003eGregor Riepl\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilliard\u003c/li\u003e\n\u003cli\u003eJames Le Cuirot\u003c/li\u003e\n\u003cli\u003eJeremy Nimmer\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eKai (Kazuya Ito)\u003c/li\u003e\n\u003cli\u003ekaushal trivedi\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eLukas Geiger\u003c/li\u003e\n\u003cli\u003eŁukasz Langa\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael R. Crusoe\u003c/li\u003e\n\u003cli\u003emichaelm-openai\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c60e8bfcb5910974b577e443725c475e0485d269\"\u003e\u003ccode\u003ec60e8bf\u003c/code\u003e\u003c/a\u003e Bump version to 1.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/842e4927738264949e969df0c2ee285a13594d06\"\u003e\u003ccode\u003e842e492\u003c/code\u003e\u003c/a\u003e Always disable sync in SQLite cache (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21184\"\u003e#21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/e82a046356b242441fcd55c8cf922c7904ef311a\"\u003e\u003ccode\u003ee82a046\u003c/code\u003e\u003c/a\u003e Temporarily skip few base64 tests (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21193\"\u003e#21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f7fa418b6504e20c1277947e03a6db2f6d03e13e\"\u003e\u003ccode\u003ef7fa418\u003c/code\u003e\u003c/a\u003e Revert dict.\u003cstrong\u003eor\u003c/strong\u003e typeshed change (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21186\"\u003e#21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a2e8ee1afd5bbda26ad301496685295b1a7997a3\"\u003e\u003ccode\u003ea2e8ee1\u003c/code\u003e\u003c/a\u003e Fix narrowing for match case with variadic tuples (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21192\"\u003e#21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/521f88f510c2065132909928815f08502097ceea\"\u003e\u003ccode\u003e521f88f\u003c/code\u003e\u003c/a\u003e Avoid narrowing type[T] in type calls (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21174\"\u003e#21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4876e9186b927fe4777609fc9932752dcfb7047\"\u003e\u003ccode\u003ea4876e9\u003c/code\u003e\u003c/a\u003e Fix regression for catching empty tuple in except (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21153\"\u003e#21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/6fccffcac0c8c24034d4f2b262ca7e5564ba9375\"\u003e\u003ccode\u003e6fccffc\u003c/code\u003e\u003c/a\u003e Fix reachability for frozenset and dict view narrowing (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21151\"\u003e#21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/de50419dc84a66f0e8606308023f81a44dee54f3\"\u003e\u003ccode\u003ede50419\u003c/code\u003e\u003c/a\u003e Fix narrowing with chained comparison (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21150\"\u003e#21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/eafcf18ff1d83923c0f749cf3056962df63ed693\"\u003e\u003ccode\u003eeafcf18\u003c/code\u003e\u003c/a\u003e Avoid narrowing to unreachable at module level (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21144\"\u003e#21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.19.0...v1.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.45.0 to 0.56.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.56.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\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/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.56.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003e--allow-remote-refs\u003c/code\u003e / \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e CLI option and \u003ccode\u003eallow_remote_refs\u003c/code\u003e config field - Remote \u003ccode\u003e$ref\u003c/code\u003e fetching over HTTP/HTTPS now emits a deprecation warning by default. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching entirely. In a future version, remote fetching will be disabled by default. Users relying on remote \u003ccode\u003e$ref\u003c/code\u003e resolution should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to their invocations to avoid the deprecation warning and prepare for the future default change. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003eSchemaFetchError\u003c/code\u003e exception for HTTP fetch failures - Remote schema fetching now raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (instead of propagating raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions) on HTTP errors, non-2xx status codes, or unexpected HTML responses. Users catching specific \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote ref resolution will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eError Handling Changes\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.1\"\u003e0.56.1\u003c/a\u003e - 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\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/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.0\"\u003e0.56.0\u003c/a\u003e - 2026-04-04\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\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/koxudaxi/datamodel-code-generator/commit/6274b70b58e6dab57a1797beb8006f9fcdbf7dbe\"\u003e\u003ccode\u003e6274b70\u003c/code\u003e\u003c/a\u003e Docs: describe --keep-model-order as deterministic dependency-aware ordering ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/3e87a9a4a712b2cb8ad6d9faaa85c86ac8838ffe\"\u003e\u003ccode\u003e3e87a9a\u003c/code\u003e\u003c/a\u003e Fix root model reuse collapse (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3089\"\u003e#3089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/51377952477da7ef39efcb2f3e256ae51ad7a1f8\"\u003e\u003ccode\u003e5137795\u003c/code\u003e\u003c/a\u003e tomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3088\"\u003e#3088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/d7a1f7166624eadcd84e97b8d2ca09e8c6dde957\"\u003e\u003ccode\u003ed7a1f71\u003c/code\u003e\u003c/a\u003e Fix relative URL refs with path-only root ids (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f0960e9e2362f1dab2facb55853d2e56a3a923b4\"\u003e\u003ccode\u003ef0960e9\u003c/code\u003e\u003c/a\u003e Prefer CLI input over pyproject url (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3083\"\u003e#3083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/05901ff4ad110b750dcfd996aeaca410767240cd\"\u003e\u003ccode\u003e05901ff\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json sup...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5ba49a72dbfc69dc781a87c6adadb785d794f475\"\u003e\u003ccode\u003e5ba49a7\u003c/code\u003e\u003c/a\u003e docs: update CHANGELOG.md for 0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/52d9ef9dec52f3ad14130710eefb010f0e492160\"\u003e\u003ccode\u003e52d9ef9\u003c/code\u003e\u003c/a\u003e [codex] Refresh project usage list (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7d41fef7884579d728fe42a1e266d8b950ccd72d\"\u003e\u003ccode\u003e7d41fef\u003c/code\u003e\u003c/a\u003e Support JSON files for mapping options (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5a8cd0da7a6d17bfd70c5c2623699ffc6aa818fd\"\u003e\u003ccode\u003e5a8cd0d\u003c/code\u003e\u003c/a\u003e Fix non-string OpenAPI discriminator literals (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.45.0...0.56.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.2 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `presidio-analyzer` from 2.2.361 to 2.2.362\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Microsoft/presidio/releases\"\u003epresidio-analyzer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2.2.362\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - GPU Device Control via Environment Variable by \u003ca href=\"https://github.com/RonShakutai\"\u003e\u003ccode\u003e@​RonShakutai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1844\"\u003emicrosoft/presidio#1844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add HuggingFaceNerRecognizer for direct NER model inference by \u003ca href=\"https://github.com/ultramancode\"\u003e\u003ccode\u003e@​ultramancode\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1834\"\u003emicrosoft/presidio#1834\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Broken Links by \u003ca href=\"https://github.com/andyjessen\"\u003e\u003ccode\u003e@​andyjessen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1856\"\u003emicrosoft/presidio#1856\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin dependencies to mitigate supply chain attacks by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1861\"\u003emicrosoft/presidio#1861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing CVE-2024-47874 and CVE-2025-54121 by ...\n\n_Description has been truncated_","html_url":"https://github.com/classifyre-com/classifyre/pull/46","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/classifyre-com%2Fclassifyre/issues/46","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/46/packages"},{"uuid":"4279202770","node_id":"PR_kwDOR3_B5M7TJEUV","number":26,"state":"open","title":"Update phonenumbers requirement from \u003c10.0.0,\u003e=8.12 to \u003e=9.0.28,\u003c10.0.0 in /presidio-analyzer","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-16T23:56:36.000Z","updated_at":"2026-04-16T23:56:37.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"phonenumbers","old_version":"\u003c10.0.0,\u003e=8.12","new_version":"\u003e=9.0.28,\u003c10.0.0","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"}],"path":"/presidio-analyzer","ecosystem":"pip"},"body":"Updates the requirements on [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/6e7a12a49a9b01faf0887e6163b9e785ce7220b6\"\u003e\u003ccode\u003e6e7a12a\u003c/code\u003e\u003c/a\u003e Prep for 9.0.28 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/ff287efc6ac0889206cb39072ea1876bbe9754e0\"\u003e\u003ccode\u003eff287ef\u003c/code\u003e\u003c/a\u003e Merge code changes from upstream 9.0.28\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/665a4a76413ed67b1be5234a9c3b7aeae7e3630c\"\u003e\u003ccode\u003e665a4a7\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/57d319dc45f2868cfd18a06cbffc9a24e28deefc\"\u003e\u003ccode\u003e57d319d\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.28\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/3b082bf38fac2ac2a1556b9b416562f464c9d780\"\u003e\u003ccode\u003e3b082bf\u003c/code\u003e\u003c/a\u003e Prep for 9.0.27 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/c496532280afda5778e45d23d5feb621e55fc397\"\u003e\u003ccode\u003ec496532\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/ee29e8518101d039dbaf4463087a786e7c11e01d\"\u003e\u003ccode\u003eee29e85\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.27\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/07e2c75b1dc1d94c806755e4842410e19cd1e17e\"\u003e\u003ccode\u003e07e2c75\u003c/code\u003e\u003c/a\u003e Prep for 9.0.26 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/55522da42bff8bd7eefd08b17c978971bc60e135\"\u003e\u003ccode\u003e55522da\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/8ca762b2309a1df12f2eadf601ce413bf3cd1826\"\u003e\u003ccode\u003e8ca762b\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.26\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v8.12.0...v9.0.28\"\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/vjk7989/glowing-train/pull/26","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vjk7989%2Fglowing-train/issues/26","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/26/packages"},{"uuid":"4257972539","node_id":"PR_kwDORn3Eas7SHznr","number":41,"state":"open","title":"chore(deps): update phonenumbers requirement from \u003e=8.13 to \u003e=9.0.28 in /api","user":"dependabot[bot]","labels":[],"assignees":["cristiangilsanz"],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-13T21:23:41.000Z","updated_at":"2026-04-13T21:23:52.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): update","packages":[{"name":"phonenumbers","old_version":"\u003e=8.13","new_version":"\u003e=9.0.28","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"}],"path":"/api","ecosystem":"pip"},"body":"Updates the requirements on [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/6e7a12a49a9b01faf0887e6163b9e785ce7220b6\"\u003e\u003ccode\u003e6e7a12a\u003c/code\u003e\u003c/a\u003e Prep for 9.0.28 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/ff287efc6ac0889206cb39072ea1876bbe9754e0\"\u003e\u003ccode\u003eff287ef\u003c/code\u003e\u003c/a\u003e Merge code changes from upstream 9.0.28\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/665a4a76413ed67b1be5234a9c3b7aeae7e3630c\"\u003e\u003ccode\u003e665a4a7\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/57d319dc45f2868cfd18a06cbffc9a24e28deefc\"\u003e\u003ccode\u003e57d319d\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.28\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/3b082bf38fac2ac2a1556b9b416562f464c9d780\"\u003e\u003ccode\u003e3b082bf\u003c/code\u003e\u003c/a\u003e Prep for 9.0.27 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/c496532280afda5778e45d23d5feb621e55fc397\"\u003e\u003ccode\u003ec496532\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/ee29e8518101d039dbaf4463087a786e7c11e01d\"\u003e\u003ccode\u003eee29e85\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.27\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/07e2c75b1dc1d94c806755e4842410e19cd1e17e\"\u003e\u003ccode\u003e07e2c75\u003c/code\u003e\u003c/a\u003e Prep for 9.0.26 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/55522da42bff8bd7eefd08b17c978971bc60e135\"\u003e\u003ccode\u003e55522da\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/8ca762b2309a1df12f2eadf601ce413bf3cd1826\"\u003e\u003ccode\u003e8ca762b\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.26\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v8.13.0...v9.0.28\"\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/cristiangilsanz/qrew/pull/41","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/cristiangilsanz%2Fqrew/issues/41","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/41/packages"},{"uuid":"4257115399","node_id":"PR_kwDOFIv_0c7SFLKT","number":52,"state":"open","title":"deps: bump phonenumbers from 9.0.27 to 9.0.28","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-13T18:43:43.000Z","updated_at":"2026-04-13T18:43:44.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps","packages":[{"name":"phonenumbers","old_version":"9.0.27","new_version":"9.0.28","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"}],"path":null,"ecosystem":"pip"},"body":"Bumps [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) from 9.0.27 to 9.0.28.\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/6e7a12a49a9b01faf0887e6163b9e785ce7220b6\"\u003e\u003ccode\u003e6e7a12a\u003c/code\u003e\u003c/a\u003e Prep for 9.0.28 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/ff287efc6ac0889206cb39072ea1876bbe9754e0\"\u003e\u003ccode\u003eff287ef\u003c/code\u003e\u003c/a\u003e Merge code changes from upstream 9.0.28\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/665a4a76413ed67b1be5234a9c3b7aeae7e3630c\"\u003e\u003ccode\u003e665a4a7\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/57d319dc45f2868cfd18a06cbffc9a24e28deefc\"\u003e\u003ccode\u003e57d319d\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.28\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.27...v9.0.28\"\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=phonenumbers\u0026package-manager=pip\u0026previous-version=9.0.27\u0026new-version=9.0.28)](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/askopintsev/shiftedblog/pull/52","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/askopintsev%2Fshiftedblog/issues/52","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/52/packages"},{"uuid":"4252748213","node_id":"PR_kwDOR0tLLM7R6rWf","number":38,"state":"open","title":"chore(deps): bump the python-non-major group in /apps/cli with 19 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-13T08:40:04.000Z","updated_at":"2026-04-20T10:06:09.564Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-non-major","update_count":19,"packages":[{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"ruff","old_version":"0.14.8","new_version":"0.15.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.19.0","new_version":"1.20.1","repository_url":"https://github.com/python/mypy"},{"name":"datamodel-code-generator","old_version":"0.45.0","new_version":"0.56.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"presidio-analyzer","old_version":"2.2.361","new_version":"2.2.362","repository_url":"https://github.com/Microsoft/presidio"},{"name":"presidio-anonymizer","old_version":"2.2.361","new_version":"2.2.362","repository_url":"https://github.com/Microsoft/presidio"},{"name":"spacy","old_version":"3.8.11","new_version":"3.8.14","repository_url":"https://github.com/explosion/spaCy"},{"name":"phonenumbers","old_version":"9.0.25","new_version":"9.0.27","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"},{"name":"pillow","old_version":"12.1.1","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"onnxruntime","old_version":"1.24.2","new_version":"1.24.4","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"torch","old_version":"2.10.0","new_version":"2.11.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"sentence-transformers","old_version":"5.2.3","new_version":"5.4.0","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"datasets","old_version":"4.6.0","new_version":"4.8.4","repository_url":"https://github.com/huggingface/datasets"},{"name":"gliner","old_version":"0.2.25","new_version":"0.2.26","repository_url":"https://github.com/urchade/GLiNER"},{"name":"snowflake-connector-python","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/snowflakedb/snowflake-connector-python"},{"name":"boto3","old_version":"1.42.56","new_version":"1.42.88","repository_url":"https://github.com/boto/boto3"},{"name":"azure-identity","old_version":"1.25.2","new_version":"1.25.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"google-cloud-storage","old_version":"3.9.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"}],"path":"/apps/cli","ecosystem":"pip"},"body":"Bumps the python-non-major group in /apps/cli with 19 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.8` | `0.15.10` |\n| [mypy](https://github.com/python/mypy) | `1.19.0` | `1.20.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.45.0` | `0.56.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [presidio-analyzer](https://github.com/Microsoft/presidio) | `2.2.361` | `2.2.362` |\n| [presidio-anonymizer](https://github.com/Microsoft/presidio) | `2.2.361` | `2.2.362` |\n| [spacy](https://github.com/explosion/spaCy) | `3.8.11` | `3.8.14` |\n| [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) | `9.0.25` | `9.0.27` |\n| [pillow](https://github.com/python-pillow/Pillow) | `12.1.1` | `12.2.0` |\n| [onnxruntime](https://github.com/microsoft/onnxruntime) | `1.24.2` | `1.24.4` |\n| [torch](https://github.com/pytorch/pytorch) | `2.10.0` | `2.11.0` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.3` | `5.4.0` |\n| [datasets](https://github.com/huggingface/datasets) | `4.6.0` | `4.8.4` |\n| [gliner](https://github.com/urchade/GLiNER) | `0.2.25` | `0.2.26` |\n| [snowflake-connector-python](https://github.com/snowflakedb/snowflake-connector-python) | `4.3.0` | `4.4.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.56` | `1.42.88` |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.2` | `1.25.3` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.9.0` | `3.10.1` |\n\nUpdates `requests` from 2.32.5 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\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/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.8 to 0.15.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for custom file extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument adding fixes in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24393\"\u003e#24393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24517\"\u003e#24517\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/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/silverstein\"\u003e\u003ccode\u003e@​silverstein\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shizukushq\"\u003e\u003ccode\u003e@​shizukushq\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.10\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.10/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for custom file extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument adding fixes in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24393\"\u003e#24393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24517\"\u003e#24517\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/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/silverstein\"\u003e\u003ccode\u003e@​silverstein\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shizukushq\"\u003e\u003ccode\u003e@​shizukushq\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.9\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-02.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Flag annotated variable redeclarations as \u003ccode\u003eF811\u003c/code\u003e in preview mode (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24244\"\u003e#24244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Allow dunder-named assignments in non-strict mode for \u003ccode\u003eRUF067\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24089\"\u003e#24089\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/252f76102a618bff6537b6c53c316ca3837f4abf\"\u003e\u003ccode\u003e252f761\u003c/code\u003e\u003c/a\u003e Bump 0.15.10 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24519\"\u003e#24519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/37a1ec8bb8e30955787b0cdf6e97f7f2254dba7f\"\u003e\u003ccode\u003e37a1ec8\u003c/code\u003e\u003c/a\u003e [ty] Fix assignability of intersections with bounded typevars (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24502\"\u003e#24502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f518cc9ca0c830773dd49c3964eb5e49d52c8aed\"\u003e\u003ccode\u003ef518cc9\u003c/code\u003e\u003c/a\u003e [ty] Allow partially stringified \u003ccode\u003etype[…]\u003c/code\u003e annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24518\"\u003e#24518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/16c4090d0a711b9c0523b932014f3daf140f35bc\"\u003e\u003ccode\u003e16c4090\u003c/code\u003e\u003c/a\u003e docs: fix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24517\"\u003e#24517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/99d97bd72f1934ac2af93e52468c10ef1c7a1a4e\"\u003e\u003ccode\u003e99d97bd\u003c/code\u003e\u003c/a\u003e [ty] Tighten up a few edge cases in \u003ccode\u003eConcatenate\u003c/code\u003e type-expression parsing (\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/2714e345bdd64a5baae3844c0d25db7b0b9fe330\"\u003e\u003ccode\u003e2714e34\u003c/code\u003e\u003c/a\u003e [ty] Enable \u003ccode\u003epull-diagnostics\u003c/code\u003e by default in E2E tests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24516\"\u003e#24516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d8bc700722ab1b7272a4d724839da7c569b349d4\"\u003e\u003ccode\u003ed8bc700\u003c/code\u003e\u003c/a\u003e LSP: Add support for custom extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a45f96d65dbd4f958b07accd718f8d2af48cb956\"\u003e\u003ccode\u003ea45f96d\u003c/code\u003e\u003c/a\u003e [ty] stop special-casing str constructor (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24514\"\u003e#24514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/87a0f01cfd016e0297ef05ab638cde006bf8d947\"\u003e\u003ccode\u003e87a0f01\u003c/code\u003e\u003c/a\u003e [ruff] Treat f-string interpolation as potential side effect in RUF019 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9ba8489b8d1f1fd5fd66887a74d5f2f58f733d4\"\u003e\u003ccode\u003ee9ba848\u003c/code\u003e\u003c/a\u003e [ty] Fix excess subscript argument inference for non-generic types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24354\"\u003e#24354\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.8...0.15.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.19.0 to 1.20.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.20.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways disable sync in SQLite cache (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21184\"\u003e21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTemporarily skip few base64 tests (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21193\"\u003e21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u003ccode\u003edict.__or__\u003c/code\u003e typeshed change (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21186\"\u003e21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing for match case with variadic tuples (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21192\"\u003e21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing \u003ccode\u003etype[T]\u003c/code\u003e in type calls (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21174\"\u003e21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression for catching empty tuple in except (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21153\"\u003e21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix reachability for frozenset and dict view narrowing (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21151\"\u003e21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing with chained comparison (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21150\"\u003e21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing to unreachable at module level (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21144\"\u003e21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow dangerous identity comparisons to \u003ccode\u003eAny\u003c/code\u003e typed variables (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21142\"\u003e21142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--warn-unused-config\u003c/code\u003e should not be a strict flag (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21139\"\u003e21139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eAaron Wieczorek\u003c/li\u003e\n\u003cli\u003eAdam Turner\u003c/li\u003e\n\u003cli\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003easce\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrent Westbrook\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChris Burroughs\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eColin Watson\u003c/li\u003e\n\u003cli\u003eDonghoon Nam\u003c/li\u003e\n\u003cli\u003eE. M. Bray\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eGeorge Ogden\u003c/li\u003e\n\u003cli\u003egetzze\u003c/li\u003e\n\u003cli\u003egrayjk\u003c/li\u003e\n\u003cli\u003eGregor Riepl\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilliard\u003c/li\u003e\n\u003cli\u003eJames Le Cuirot\u003c/li\u003e\n\u003cli\u003eJeremy Nimmer\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eKai (Kazuya Ito)\u003c/li\u003e\n\u003cli\u003ekaushal trivedi\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eLukas Geiger\u003c/li\u003e\n\u003cli\u003eŁukasz Langa\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael R. Crusoe\u003c/li\u003e\n\u003cli\u003emichaelm-openai\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c60e8bfcb5910974b577e443725c475e0485d269\"\u003e\u003ccode\u003ec60e8bf\u003c/code\u003e\u003c/a\u003e Bump version to 1.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/842e4927738264949e969df0c2ee285a13594d06\"\u003e\u003ccode\u003e842e492\u003c/code\u003e\u003c/a\u003e Always disable sync in SQLite cache (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21184\"\u003e#21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/e82a046356b242441fcd55c8cf922c7904ef311a\"\u003e\u003ccode\u003ee82a046\u003c/code\u003e\u003c/a\u003e Temporarily skip few base64 tests (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21193\"\u003e#21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f7fa418b6504e20c1277947e03a6db2f6d03e13e\"\u003e\u003ccode\u003ef7fa418\u003c/code\u003e\u003c/a\u003e Revert dict.\u003cstrong\u003eor\u003c/strong\u003e typeshed change (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21186\"\u003e#21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a2e8ee1afd5bbda26ad301496685295b1a7997a3\"\u003e\u003ccode\u003ea2e8ee1\u003c/code\u003e\u003c/a\u003e Fix narrowing for match case with variadic tuples (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21192\"\u003e#21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/521f88f510c2065132909928815f08502097ceea\"\u003e\u003ccode\u003e521f88f\u003c/code\u003e\u003c/a\u003e Avoid narrowing type[T] in type calls (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21174\"\u003e#21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4876e9186b927fe4777609fc9932752dcfb7047\"\u003e\u003ccode\u003ea4876e9\u003c/code\u003e\u003c/a\u003e Fix regression for catching empty tuple in except (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21153\"\u003e#21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/6fccffcac0c8c24034d4f2b262ca7e5564ba9375\"\u003e\u003ccode\u003e6fccffc\u003c/code\u003e\u003c/a\u003e Fix reachability for frozenset and dict view narrowing (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21151\"\u003e#21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/de50419dc84a66f0e8606308023f81a44dee54f3\"\u003e\u003ccode\u003ede50419\u003c/code\u003e\u003c/a\u003e Fix narrowing with chained comparison (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21150\"\u003e#21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/eafcf18ff1d83923c0f749cf3056962df63ed693\"\u003e\u003ccode\u003eeafcf18\u003c/code\u003e\u003c/a\u003e Avoid narrowing to unreachable at module level (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21144\"\u003e#21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.19.0...v1.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.45.0 to 0.56.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.56.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003e--allow-remote-refs\u003c/code\u003e / \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e CLI option and \u003ccode\u003eallow_remote_refs\u003c/code\u003e config field - Remote \u003ccode\u003e$ref\u003c/code\u003e fetching over HTTP/HTTPS now emits a deprecation warning by default. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching entirely. In a future version, remote fetching will be disabled by default. Users relying on remote \u003ccode\u003e$ref\u003c/code\u003e resolution should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to their invocations to avoid the deprecation warning and prepare for the future default change. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003eSchemaFetchError\u003c/code\u003e exception for HTTP fetch failures - Remote schema fetching now raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (instead of propagating raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions) on HTTP errors, non-2xx status codes, or unexpected HTML responses. Users catching specific \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote ref resolution will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eError Handling Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMissing local \u003ccode\u003e$ref\u003c/code\u003e now raises \u003ccode\u003eError\u003c/code\u003e instead of \u003ccode\u003eFileNotFoundError\u003c/code\u003e - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e pointed to a non-existent local file, a raw \u003ccode\u003eFileNotFoundError\u003c/code\u003e propagated to callers. Now it raises \u003ccode\u003edatamodel_code_generator.Error\u003c/code\u003e with the message \u003ccode\u003e\u0026quot;$ref file not found: \u0026lt;path\u0026gt;\u0026quot;\u003c/code\u003e. Programmatic users catching \u003ccode\u003eFileNotFoundError\u003c/code\u003e specifically will need to catch \u003ccode\u003eError\u003c/code\u003e instead (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP fetch failures now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead of propagating raw exceptions - HTTP errors (4xx/5xx status codes), unexpected HTML responses, and transport errors (DNS, timeout, connection) that previously resulted in downstream YAML/JSON parse errors or raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e (a subclass of \u003ccode\u003eError\u003c/code\u003e) before parsing is attempted. Users catching specific parse errors or \u003ccode\u003ehttpx\u003c/code\u003e exceptions for these scenarios will need to update their error handling (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP fetch errors now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead of raw httpx exceptions - The \u003ccode\u003eget_body()\u003c/code\u003e function in \u003ccode\u003ehttp.py\u003c/code\u003e now catches HTTP errors and raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (a new \u003ccode\u003eError\u003c/code\u003e subclass) for HTTP status \u0026gt;= 400, network failures, and unexpected HTML responses. Code that caught raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote schema fetching will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemote \u003ccode\u003e$ref\u003c/code\u003e fetching now emits \u003ccode\u003eFutureWarning\u003c/code\u003e without \u003ccode\u003e--allow-remote-refs\u003c/code\u003e - Fetching remote HTTP/HTTPS \u003ccode\u003e$ref\u003c/code\u003e references without explicitly passing \u003ccode\u003e--allow-remote-refs\u003c/code\u003e now emits a \u003ccode\u003eFutureWarning\u003c/code\u003e deprecation warning. In a future version, remote fetching will be disabled by default. Users relying on implicit remote ref fetching should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP fetch errors now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e with validation of response content type - Previously, fetching a remote \u003ccode\u003e$ref\u003c/code\u003e that returned an HTML error page would silently pass the HTML through as schema content. Now it raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e if the response has \u003ccode\u003etext/html\u003c/code\u003e content type or a 4xx/5xx status code. This may cause previously-silent failures to become loud errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDefault Behavior Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplicit remote \u003ccode\u003e$ref\u003c/code\u003e fetching now emits \u003ccode\u003eFutureWarning\u003c/code\u003e - When a \u003ccode\u003e$ref\u003c/code\u003e resolves to an HTTP(S) URL and \u003ccode\u003e--allow-remote-refs\u003c/code\u003e is not explicitly passed, the tool still fetches the remote reference but emits a \u003ccode\u003eFutureWarning\u003c/code\u003e. This may cause failures in environments running with \u003ccode\u003e-W error\u003c/code\u003e (warnings as errors) or strict warning filters. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e explicitly to suppress the warning (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemote \u003ccode\u003e$ref\u003c/code\u003e fetching now emits a \u003ccode\u003eFutureWarning\u003c/code\u003e - When the parser encounters an HTTP/HTTPS \u003ccode\u003e$ref\u003c/code\u003e without \u003ccode\u003e--allow-remote-refs\u003c/code\u003e being explicitly set, a \u003ccode\u003eFutureWarning\u003c/code\u003e is emitted warning that remote fetching will be disabled by default in a future version. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to silence the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching immediately. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eType alias templates updated with \u003ccode\u003efields\u003c/code\u003e guard - All six type alias templates (\u003ccode\u003eTypeAliasAnnotation.jinja2\u003c/code\u003e, \u003ccode\u003eTypeAliasType.jinja2\u003c/code\u003e, \u003ccode\u003eTypeStatement.jinja2\u003c/code\u003e, \u003ccode\u003eUnionTypeAliasAnnotation.jinja2\u003c/code\u003e, \u003ccode\u003eUnionTypeAliasType.jinja2\u003c/code\u003e, \u003ccode\u003eUnionTypeStatement.jinja2\u003c/code\u003e) now wrap the main body in \u003ccode\u003e{% if fields %}...{% else %}\u003c/code\u003e blocks that fall back to \u003ccode\u003e{{ base_class }}\u003c/code\u003e when no fields are present. Users with custom copies of these templates must add the same guard or handle the empty-fields case. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType alias Jinja2 templates now require \u003ccode\u003efields\u003c/code\u003e guard and \u003ccode\u003ebase_class\u003c/code\u003e fallback - The built-in templates \u003ccode\u003eTypeAliasAnnotation.jinja2\u003c/code\u003e, \u003ccode\u003eTypeAliasType.jinja2\u003c/code\u003e, \u003ccode\u003eTypeStatement.jinja2\u003c/code\u003e, and their Union variants now wrap field access in \u003ccode\u003e{%- if fields %}...{%- else %}\u003c/code\u003e blocks with a \u003ccode\u003ebase_class\u003c/code\u003e fallback for empty field lists. Users with custom templates derived from the old versions will need to add similar guards. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType alias templates (\u003ccode\u003eTypeAliasAnnotation.jinja2\u003c/code\u003e, \u003ccode\u003eTypeAliasType.jinja2\u003c/code\u003e, \u003ccode\u003eTypeStatement.jinja2\u003c/code\u003e, and their Union variants) now handle an empty \u003ccode\u003efields\u003c/code\u003e list with a fallback to \u003ccode\u003ebase_class\u003c/code\u003e - If you have custom copies of these templates, they need to be updated to include the new \u003ccode\u003e{%- if fields %}...{%- else %}...{%- endif %}\u003c/code\u003e branching logic. Without this update, custom templates may error when \u003ccode\u003efields\u003c/code\u003e is empty. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\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/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.0\"\u003e0.56.0\u003c/a\u003e - 2026-04-04\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003e--allow-remote-refs\u003c/code\u003e / \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e CLI option and \u003ccode\u003eallow_remote_refs\u003c/code\u003e config field - Remote \u003ccode\u003e$ref\u003c/code\u003e fetching over HTTP/HTTPS now emits a deprecation warning by default. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching entirely. In a future version, remote fetching will be disabled by default. Users relying on remote \u003ccode\u003e$ref\u003c/code\u003e resolution should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to their invocations to avoid the deprecation warning and prepare for the future default change. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003eSchemaFetchError\u003c/code\u003e exception for HTTP fetch failures - Remote schema fetching now raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (instead of propagating raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions) on HTTP errors, non-2xx status codes, or unexpected HTML responses. Users catching specific \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote ref resolution will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eError Handling Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMissing local \u003ccode\u003e$ref\u003c/code\u003e now raises \u003ccode\u003eError\u003c/code\u003e instead of \u003ccode\u003eFileNotFoundError\u003c/code\u003e - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e pointed to a non-existent local file, a raw \u003ccode\u003eFileNotFoundError\u003c/code\u003e propagated to callers. Now it raises \u003ccode\u003edatamodel_code_generator.Error\u003c/code\u003e with the message \u003ccode\u003e\u0026quot;$ref file not found: \u0026lt;path\u0026gt;\u0026quot;\u003c/code\u003e. Programmatic users catching \u003ccode\u003eFileNotFoundError\u003c/code\u003e specifically will need to catch \u003ccode\u003eError\u003c/code\u003e instead (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP fetch failures now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead of propagating raw exceptions - HTTP errors (4xx/5xx status codes), unexpected HTML responses, and transport errors (DNS, timeout, connection) that previously resulted in downstream YAML/JSON parse errors or raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e (a subclass of \u003ccode\u003eError\u003c/code\u003e) before parsing is attempted. Users catching specific parse errors or \u003ccode\u003ehttpx\u003c/code\u003e exceptions for these scenarios will need to update their error handling (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP fetch errors now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead of raw httpx exceptions - The \u003ccode\u003eget_body()\u003c/code\u003e function in \u003ccode\u003ehttp.py\u003c/code\u003e now catches HTTP errors and raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (a new \u003ccode\u003eError\u003c/code\u003e subclass) for HTTP status \u0026gt;= 400, network failures, and unexpected HTML responses. Code that caught raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote schema fetching will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemote \u003ccode\u003e$ref\u003c/code\u003e fetching now emits \u003ccode\u003eFutureWarning\u003c/code\u003e without \u003ccode\u003e--allow-remote-refs\u003c/code\u003e - Fetching remote HTTP/HTTPS \u003ccode\u003e$ref\u003c/code\u003e references without explicitly passing \u003ccode\u003e--allow-remote-refs\u003c/code\u003e now emits a \u003ccode\u003eFutureWarning\u003c/code\u003e deprecation warning. In a future version, remote fetching will be disabled by default. Users relying on implicit remote ref fetching should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP fetch errors now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e with validation of response content type - Previously, fetching a remote \u003ccode\u003e$ref\u003c/code\u003e that returned an HTML error page would silently pass the HTML through as schema content. Now it raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e if the response has \u003ccode\u003etext/html\u003c/code\u003e content type or a 4xx/5xx status code. This may cause previously-silent failures to become loud errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDefault Behavior Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplicit remote \u003ccode\u003e$ref\u003c/code\u003e fetching now emits \u003ccode\u003eFutureWarning\u003c/code\u003e - When a \u003ccode\u003e$ref\u003c/code\u003e resolves to an HTTP(S) URL and \u003ccode\u003e--allow-remote-refs\u003c/code\u003e is not explicitly passed, the tool still fetches the remote reference but emits a \u003ccode\u003eFutureWarning\u003c/code\u003e. This may cause failures in environments running with \u003ccode\u003e-W error\u003c/code\u003e (warnings as errors) or strict warning filters. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e explicitly to suppress the warning (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemote \u003ccode\u003e$ref\u003c/code\u003e fetching now emits a \u003ccode\u003eFutureWarning\u003c/code\u003e - When the parser encounters an HTTP/HTTPS \u003ccode\u003e$ref\u003c/code\u003e without \u003ccode\u003e--allow-remote-refs\u003c/code\u003e being explicitly set, a \u003ccode\u003eFutureWarning\u003c/code\u003e is emitted warning that remote fetching will be disabled by default in a future version. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to silence the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching immediately. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eType alias templates updated with \u003ccode\u003efields\u003c/code\u003e guard - All six type alias templates (\u003ccode\u003eTypeAliasAnnotation.jinja2\u003c/code\u003e, \u003ccode\u003eTypeAliasType.jinja2\u003c/code\u003e, \u003ccode\u003eTypeStatement.jinja2\u003c/code\u003e, \u003ccode\u003eUnionTypeAliasAnnotation.jinja2\u003c/code\u003e, \u003ccode\u003eUnionTypeAliasType.jinja2\u003c/code\u003e, \u003ccode\u003eUnionTypeStatement.jinja2\u003c/code\u003e) now wrap the main body in \u003ccode\u003e{% if fields %}...{% else %}\u003c/code\u003e blocks that fall back to \u003ccode\u003e{{ base_class }}\u003c/code\u003e when no fields are present. Users with custom copies of these templates must add the same guard or handle the empty-fields case. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType alias Jinja2 templates now require \u003ccode\u003efields\u003c/code\u003e guard and \u003ccode\u003ebase_class\u003c/code\u003e fallback - The built-in templates \u003ccode\u003eTypeAliasAnnotation.jinja2\u003c/code\u003e, \u003ccode\u003eTypeAliasType.jinja2\u003c/code\u003e, \u003ccode\u003eTypeStatement.jinja2\u003c/code\u003e, and their Union variants now wrap field access in \u003ccode\u003e{%- if fields %}...{%- else %}\u003c/code\u003e blocks with a \u003ccode\u003ebase_class\u003c/code\u003e fallback for empty field lists. Users with custom templates derived from the old versions will need to add similar guards. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\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/koxudaxi/datamodel-code-generator/commit/52d9ef9dec52f3ad14130710eefb010f0e492160\"\u003e\u003ccode\u003e52d9ef9\u003c/code\u003e\u003c/a\u003e [codex] Refresh project usage list (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7d41fef7884579d728fe42a1e266d8b950ccd72d\"\u003e\u003ccode\u003e7d41fef\u003c/code\u003e\u003c/a\u003e Support JSON files for mapping options (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5a8cd0da7a6d17bfd70c5c2623699ffc6aa818fd\"\u003e\u003ccode\u003e5a8cd0d\u003c/code\u003e\u003c/a\u003e Fix non-string OpenAPI discriminator literals (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5dcbc09a9086febf62e92f11b88215584d3a5c45\"\u003e\u003ccode\u003e5dcbc09\u003c/code\u003e\u003c/a\u003e Fix type alias template crash with reuse_model on empty fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/8c965997f005f75c244cb377b3a800b80d261474\"\u003e\u003ccode\u003e8c96599\u003c/code\u003e\u003c/a\u003e docs: update llms.txt files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/c7710792c277892f55b6954886aa1ffecb6aaf49\"\u003e\u003ccode\u003ec771079\u003c/code\u003e\u003c/a\u003e docs: update CLI reference documentation and prompt data\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f6d4cbd3440a84e801566fa758ab2bf483322082\"\u003e\u003ccode\u003ef6d4cbd\u003c/code\u003e\u003c/a\u003e Add --allow-remote-refs to disable HTTP fetching of $ref by default (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7e1a5c751b7b4b07aaf7d860d93162f1a75822b7\"\u003e\u003ccode\u003e7e1a5c7\u003c/code\u003e\u003c/a\u003e Update release draft model and preserve breaking changes (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3057\"\u003e#3057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5bd8eab9f5b5f64c146e170f9fae25ea7602daea\"\u003e\u003ccode\u003e5bd8eab\u003c/code\u003e\u003c/a\u003e Add ryaml as optional YAML backend for faster parsing (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3055\"\u003e#3055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/af51cd7cae6c73dc90e55d40dac85e1ae65897df\"\u003e\u003ccode\u003eaf51cd7\u003c/code\u003e\u003c/a\u003e Update projects list with notable AI/LLM ecosystem projects (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.45.0...0.56.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.2 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `presidio-analyzer` from 2.2.361 to 2.2.362\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Microsoft/presidio/releases\"\u003epresidio-analyzer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2.2.362\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - GPU Device Control via Environment Variable by \u003ca href=\"https://github.com/RonShakutai\"\u003e\u003ccode\u003e@​RonShakutai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1844\"\u003emicrosoft/presidio#1844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add HuggingFaceNerRecognizer for direct NER model inference by \u003ca href=\"https://github.com/ultramancode\"\u003e\u003ccode\u003e@​ultramancode\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1834\"\u003emicrosoft/presidio#1834\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Broken Links by \u003ca href=\"https://github.com/andyjessen\"\u003e\u003ccode\u003e@​andyjessen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1856\"\u003emicrosoft/presidio#1856\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin dependencies to mitigate supply chain attacks by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1861\"\u003emicrosoft/presidio#1861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing CVE-2024-47874 and CVE-2025-54121 by \u003ca href=\"https://github.com/SharonHart\"\u003e\u003ccode\u003e@​SharonHart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1860\"\u003emicrosoft/presidio#1860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing CVE-2025-2953 and CVE-2025-3730 by \u003ca href=\"https://github.com/SharonHart\"\u003e\u003ccode\u003e@​SharonHart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1859\"\u003emicrosoft/presidio#1859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Fixed context enhancement substring matching bug  by \u003ca href=\"https://github.com/ravi-jindal\"\u003e\u003ccode\u003e@​ravi-jindal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1827\"\u003emicrosoft/presidio#1827\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix _process_names unconditionally treating all metadata as PHI by \u003ca href=\"https://github.com/Mr-Neutr0n\"\u003e\u003ccode\u003e@​Mr-Neutr0n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1855\"\u003emicrosoft/presidio#1855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add UK Postcode (UK_POSTCODE) recognizer by \u003ca href=\"https://github.com/tee-jagz\"\u003e\u003ccode\u003e@​tee-jagz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1858\"\u003emicrosoft/presidio#1858\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin ruff and build pip installs by hash for OSSF scorecard compliance by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"ht...\n\n_Description has been truncated_","html_url":"https://github.com/classifyre-com/classifyre/pull/38","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/classifyre-com%2Fclassifyre/issues/38","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/38/packages"},{"uuid":"4215973639","node_id":"PR_kwDOODMdZs7QZ--g","number":49,"state":"closed","title":"Bump the pip-dependencies group across 1 directory with 15 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-14T06:46:53.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-07T06:47:49.000Z","updated_at":"2026-04-14T06:46:55.000Z","time_to_close":604744,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-dependencies","update_count":15,"packages":[{"name":"attrs","old_version":"25.4.0","new_version":"26.1.0","repository_url":"https://github.com/python-attrs/attrs"},{"name":"boto3","old_version":"1.42.64","new_version":"1.42.84","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.42.64","new_version":"1.42.84","repository_url":"https://github.com/boto/botocore"},{"name":"cbor2","old_version":"5.8.0","new_version":"5.9.0","repository_url":"https://github.com/agronholm/cbor2"},{"name":"charset-normalizer","old_version":"3.4.5","new_version":"3.4.7","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.1","new_version":"8.3.2","repository_url":"https://github.com/pallets/click"},{"name":"gunicorn","old_version":"23.0.0","new_version":"25.3.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"nh3","old_version":"0.3.3","new_version":"0.3.4","repository_url":"https://github.com/messense/nh3"},{"name":"phonenumbers","old_version":"9.0.25","new_version":"9.0.27","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.12.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyopenssl","old_version":"25.3.0","new_version":"26.0.0","repository_url":"https://github.com/pyca/pyopenssl"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"sqlalchemy","old_version":"2.0.48","new_version":"2.0.49","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"tzdata","old_version":"2025.3","new_version":"2026.1","repository_url":"https://github.com/python/tzdata"},{"name":"werkzeug","old_version":"3.1.6","new_version":"3.1.8","repository_url":"https://github.com/pallets/werkzeug"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-dependencies group with 15 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [attrs](https://github.com/python-attrs/attrs) | `25.4.0` | `26.1.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.64` | `1.42.84` |\n| [botocore](https://github.com/boto/botocore) | `1.42.64` | `1.42.84` |\n| [cbor2](https://github.com/agronholm/cbor2) | `5.8.0` | `5.9.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.5` | `3.4.7` |\n| [click](https://github.com/pallets/click) | `8.3.1` | `8.3.2` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `25.3.0` |\n| [nh3](https://github.com/messense/nh3) | `0.3.3` | `0.3.4` |\n| [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) | `9.0.25` | `9.0.27` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.12.1` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `25.3.0` | `26.0.0` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.48` | `2.0.49` |\n| [tzdata](https://github.com/python/tzdata) | `2025.3` | `2026.1` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.6` | `3.1.8` |\n\n\nUpdates `attrs` from 25.4.0 to 26.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-attrs/attrs/releases\"\u003eattrs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eThe main outward change here only affects people using field transformers, but it should be a nice quality of life improvement!\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFull changelog below!\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eSpecial Thanks\u003c/h2\u003e\n\u003cp\u003eThis release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If \u003cem\u003eyou\u003c/em\u003e would like to join them, go to \u003ca href=\"https://github.com/sponsors/hynek\"\u003ehttps://github.com/sponsors/hynek\u003c/a\u003e and check out the sweet perks!\u003c/p\u003e\n\u003ch3\u003eAbove and Beyond\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://www.variomedia.de/\"\u003eVariomedia AG\u003c/a\u003e (@\u003ca href=\"https://github.com/variomedia\"\u003evariomedia\u003c/a\u003e), \u003ca href=\"https://www.tidelift.com/\"\u003eTidelift\u003c/a\u003e (@\u003ca href=\"https://github.com/tidelift\"\u003etidelift\u003c/a\u003e), \u003ca href=\"https://kraken.tech\"\u003eKraken Tech\u003c/a\u003e (@\u003ca href=\"https://github.com/kraken-tech\"\u003ekraken-tech\u003c/a\u003e), \u003ca href=\"https://privacy-solutions.org\"\u003ePrivacy Solutions GmbH\u003c/a\u003e (@\u003ca href=\"https://github.com/privacy-solutions\"\u003eprivacy-solutions\u003c/a\u003e), \u003ca href=\"http://filepreviews.io/\"\u003eFilePreviews\u003c/a\u003e (@\u003ca href=\"https://github.com/filepreviews\"\u003efilepreviews\u003c/a\u003e), \u003ca href=\"https://ecosyste.ms\"\u003eEcosystems\u003c/a\u003e (@\u003ca href=\"https://github.com/ecosyste-ms\"\u003eecosyste-ms\u003c/a\u003e), \u003ca href=\"https://www.lambdatest.com\"\u003eTestMu AI Open Source Office (Formerly LambdaTest)\u003c/a\u003e (@\u003ca href=\"https://github.com/LambdaTest-Inc\"\u003eLambdaTest-Inc\u003c/a\u003e), \u003ca href=\"https://doist.com/\"\u003eDoist\u003c/a\u003e (@\u003ca href=\"https://github.com/Doist\"\u003eDoist\u003c/a\u003e), Daniel Fortunov (@\u003ca href=\"https://github.com/asqui\"\u003easqui\u003c/a\u003e), and Kevin P. Fleming (@\u003ca href=\"https://github.com/kpfleming\"\u003ekpfleming\u003c/a\u003e).\u003c/p\u003e\n\u003ch3\u003eMaintenance Sustainers\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://buttondown.com\"\u003eButtondown\u003c/a\u003e (@\u003ca href=\"https://github.com/buttondown\"\u003ebuttondown\u003c/a\u003e), \u003ca href=\"https://christopher.xyz\"\u003eChristopher Dignam\u003c/a\u003e (@\u003ca href=\"https://github.com/chdsbd\"\u003echdsbd\u003c/a\u003e), Magnus Watn (@\u003ca href=\"https://github.com/magnuswatn\"\u003emagnuswatn\u003c/a\u003e), \u003ca href=\"https://cra.mr\"\u003eDavid Cramer\u003c/a\u003e (@\u003ca href=\"https://github.com/dcramer\"\u003edcramer\u003c/a\u003e), \u003ca href=\"https://rivolaks.com\"\u003eRivo Laks\u003c/a\u003e (@\u003ca href=\"https://github.com/rivol\"\u003erivol\u003c/a\u003e), \u003ca href=\"https://polar.sh\"\u003ePolar\u003c/a\u003e (@\u003ca href=\"https://github.com/polarsource\"\u003epolarsource\u003c/a\u003e), \u003ca href=\"https://miketheman.dev\"\u003eMike Fiedler\u003c/a\u003e (@\u003ca href=\"https://github.com/miketheman\"\u003emiketheman\u003c/a\u003e), Duncan Hill (@\u003ca href=\"https://github.com/cricalix\"\u003ecricalix\u003c/a\u003e), Colin Marquardt (@\u003ca href=\"https://github.com/cmarqu\"\u003ecmarqu\u003c/a\u003e), \u003ca href=\"https://blog.journeythatcounts.nl\"\u003ePieter Swinkels\u003c/a\u003e (@\u003ca href=\"https://github.com/swinkels\"\u003eswinkels\u003c/a\u003e), Nick Libertini (@\u003ca href=\"https://github.com/libertininick\"\u003elibertininick\u003c/a\u003e), \u003ca href=\"https://bmdphd.info/\"\u003eBrian M. Dennis\u003c/a\u003e (@\u003ca href=\"https://github.com/crossjam\"\u003ecrossjam\u003c/a\u003e), Celebrity News AG (@\u003ca href=\"https://github.com/celebritynewsag\"\u003ecelebritynewsag\u003c/a\u003e), \u003ca href=\"https://westervelt.com\"\u003eThe Westervelt Company\u003c/a\u003e (@\u003ca href=\"https://github.com/westerveltco\"\u003ewesterveltco\u003c/a\u003e), \u003ca href=\"https://slafs.net\"\u003eSławomir Ehlert\u003c/a\u003e (@\u003ca href=\"https://github.com/slafs\"\u003eslafs\u003c/a\u003e), Mostafa Khalil (@\u003ca href=\"https://github.com/khadrawy\"\u003ekhadrawy\u003c/a\u003e), \u003ca href=\"https://fmularczyk.pl\"\u003eFilip Mularczyk\u003c/a\u003e (@\u003ca href=\"https://github.com/mukiblejlok\"\u003emukiblejlok\u003c/a\u003e), Thomas Klinger (@\u003ca href=\"https://github.com/thmsklngr\"\u003ethmsklngr\u003c/a\u003e), \u003ca href=\"https://poehlmann.io\"\u003eAndreas Poehlmann\u003c/a\u003e (@\u003ca href=\"https://github.com/ap--\"\u003eap--\u003c/a\u003e), \u003ca href=\"https://atbigelow.com\"\u003eAugust Trapper Bigelow\u003c/a\u003e (@\u003ca href=\"https://github.com/atbigelow\"\u003eatbigelow\u003c/a\u003e), \u003ca href=\"https://noumenal.es/\"\u003eCarlton Gibson\u003c/a\u003e (@\u003ca href=\"https://github.com/carltongibson\"\u003ecarltongibson\u003c/a\u003e), and \u003ca href=\"https://roboflow.com\"\u003eRoboflow\u003c/a\u003e (@\u003ca href=\"https://github.com/roboflow\"\u003eroboflow\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eFull Changelog\u003c/h2\u003e\n\u003ch3\u003eBackwards-incompatible Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eField aliases are now resolved \u003cem\u003ebefore\u003c/em\u003e calling \u003ccode\u003efield_transformer\u003c/code\u003e, so transformers receive fully populated \u003ccode\u003eAttribute\u003c/code\u003e objects with usable \u003ccode\u003ealias\u003c/code\u003e values instead of \u003ccode\u003eNone\u003c/code\u003e. The new \u003ccode\u003eAttribute.alias_is_default\u003c/code\u003e flag indicates whether the alias was auto-generated (\u003ccode\u003eTrue\u003c/code\u003e) or explicitly set by the user (\u003ccode\u003eFalse\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1509\"\u003e#1509\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix type annotations for \u003ccode\u003eattrs.validators.optional()\u003c/code\u003e, so it no longer rejects tuples with more than one validator. \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1496\"\u003e#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eattrs.validators.disabled()\u003c/code\u003e contextmanager can now be nested. \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1513\"\u003e#1513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFrozen classes can set \u003ccode\u003eon_setattr=attrs.setters.NO_OP\u003c/code\u003e in addition to \u003ccode\u003eNone\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1515\"\u003e#1515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIt's now possible to pass \u003cem\u003eattrs\u003c/em\u003e \u003cstrong\u003einstances\u003c/strong\u003e in addition to \u003cem\u003eattrs\u003c/em\u003e \u003cstrong\u003eclasses\u003c/strong\u003e to \u003ccode\u003eattrs.fields()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1529\"\u003e#1529\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eThis release contains contributions from \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/DavidCEllis\"\u003e\u003ccode\u003e@​DavidCEllis\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/finite-state-machine\"\u003e\u003ccode\u003e@​finite-state-machine\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/hynek\"\u003e\u003ccode\u003e@​hynek\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/vstinner\"\u003e\u003ccode\u003e@​vstinner\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eArtifact Attestations\u003c/h2\u003e\n\u003cp\u003eYou can verify this release's \u003ca href=\"https://docs.github.com/en/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds\"\u003eartifact attestions\u003c/a\u003e using \u003ca href=\"https://cli.github.com\"\u003eGitHub's CLI tool\u003c/a\u003e by downloading the sdist and wheel from \u003ca href=\"https://pypi.org/project/attrs\"\u003ePyPI\u003c/a\u003e and running:\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003e$ gh attestation verify --owner python-attrs attrs-26.1.0.tar.gz\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-attrs/attrs/blob/main/CHANGELOG.md\"\u003eattrs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/python-attrs/attrs/tree/26.1.0\"\u003e26.1.0\u003c/a\u003e - 2026-03-19\u003c/h2\u003e\n\u003ch3\u003eBackwards-incompatible Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eField aliases are now resolved \u003cem\u003ebefore\u003c/em\u003e calling \u003ccode\u003efield_transformer\u003c/code\u003e, so transformers receive fully populated \u003ccode\u003eAttribute\u003c/code\u003e objects with usable \u003ccode\u003ealias\u003c/code\u003e values instead of \u003ccode\u003eNone\u003c/code\u003e.\nThe new \u003ccode\u003eAttribute.alias_is_default\u003c/code\u003e flag indicates whether the alias was auto-generated (\u003ccode\u003eTrue\u003c/code\u003e) or explicitly set by the user (\u003ccode\u003eFalse\u003c/code\u003e).\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1509\"\u003e#1509\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix type annotations for \u003ccode\u003eattrs.validators.optional()\u003c/code\u003e, so it no longer rejects tuples with more than one validator.\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1496\"\u003e#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eattrs.validators.disabled()\u003c/code\u003e contextmanager can now be nested.\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1513\"\u003e#1513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFrozen classes can set \u003ccode\u003eon_setattr=attrs.setters.NO_OP\u003c/code\u003e in addition to \u003ccode\u003eNone\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1515\"\u003e#1515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIt's now possible to pass \u003cem\u003eattrs\u003c/em\u003e \u003cstrong\u003einstances\u003c/strong\u003e in addition to \u003cem\u003eattrs\u003c/em\u003e \u003cstrong\u003eclasses\u003c/strong\u003e to \u003ccode\u003eattrs.fields()\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1529\"\u003e#1529\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/7bfc49e9b22d5ba25b6e429524c3d49fee27cb36\"\u003e\u003ccode\u003e7bfc49e\u003c/code\u003e\u003c/a\u003e Prepare 26.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/31e02869da10824b492c378c1dc87ccc720ee5ad\"\u003e\u003ccode\u003e31e0286\u003c/code\u003e\u003c/a\u003e Update test_validators.py for Python 3.15a7 (\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1530\"\u003e#1530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/48b8611c27779811d161200e17de8da24aae7feb\"\u003e\u003ccode\u003e48b8611\u003c/code\u003e\u003c/a\u003e Add instance support to attrs.fields() (\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1529\"\u003e#1529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/3a68d4913221abc6f8ad3be50937f7ae49300a98\"\u003e\u003ccode\u003e3a68d49\u003c/code\u003e\u003c/a\u003e dev: document missing git tags failure mode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/a572c3a4c558a8b9b48cf989fcd956ab1a279439\"\u003e\u003ccode\u003ea572c3a\u003c/code\u003e\u003c/a\u003e Allow field(on_setattr=NO_OP) on frozen classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/af9c510912ce604a94896cc35c27368d5baf6ae6\"\u003e\u003ccode\u003eaf9c510\u003c/code\u003e\u003c/a\u003e Fix validators.disabled() to save/restore state on nesting (\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1513\"\u003e#1513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/ab7f8b2f4c0f747d5b1575247ce35e5adaad182e\"\u003e\u003ccode\u003eab7f8b2\u003c/code\u003e\u003c/a\u003e update dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/ce89f5d11feb0805da9ed10bb165238cc959f1bb\"\u003e\u003ccode\u003ece89f5d\u003c/code\u003e\u003c/a\u003e Fix message passing in frozen errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/eccd966d80aff5196efc959316961cfa780439f9\"\u003e\u003ccode\u003eeccd966\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eoptional\u003c/code\u003e validator to accept tuples of len \u0026gt; 1 (\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1496\"\u003e#1496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/e92fe52dfe1eb07167e6473724c5a8ada978add0\"\u003e\u003ccode\u003ee92fe52\u003c/code\u003e\u003c/a\u003e policies: tighten screws (\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1528\"\u003e#1528\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-attrs/attrs/compare/25.4.0...26.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.42.64 to 1.42.84\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/d0fa3ae100330dbb8da23bad233375ff213795f5\"\u003e\u003ccode\u003ed0fa3ae\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.84'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/a4e41541b21c732aa4f727be55922d397e9eaf71\"\u003e\u003ccode\u003ea4e4154\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.84\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/7fe19908700fb438fdfb79bd0d304fa23658c248\"\u003e\u003ccode\u003e7fe1990\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/5eac8498e33192cfb2781b01cc3506b5db641203\"\u003e\u003ccode\u003e5eac849\u003c/code\u003e\u003c/a\u003e Add zizmor workflow and apply initial fixes (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4755\"\u003e#4755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/319798f7910ad2f4117bf423f0242c082a1f0abd\"\u003e\u003ccode\u003e319798f\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.83'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/5a0933ed83ba1f2cbd75e5673841882a507502dd\"\u003e\u003ccode\u003e5a0933e\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.83' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/afa955efa904e19965b744b7f6751218d4ded2ba\"\u003e\u003ccode\u003eafa955e\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.83\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/969066df9c961c562442fbaba3a70554c2fc094b\"\u003e\u003ccode\u003e969066d\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/f4c31406f10f0952510b8733ee4185c1407a3772\"\u003e\u003ccode\u003ef4c3140\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.82'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/8237e0e7bec72aaa31544544d34fab241b37553e\"\u003e\u003ccode\u003e8237e0e\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.82' into develop\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.42.64...1.42.84\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `botocore` from 1.42.64 to 1.42.84\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/0bb499c483b265313db66ed8804e4dd5e69385d2\"\u003e\u003ccode\u003e0bb499c\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.84'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/58019d1b8a0cb8c4669681d4b988f219a1865095\"\u003e\u003ccode\u003e58019d1\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.84\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/ed57861545a6a2372277969156b058dc892dd428\"\u003e\u003ccode\u003eed57861\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/56f46aad89e8654f4b6bd5a991c94734cd205efe\"\u003e\u003ccode\u003e56f46aa\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/ca0b74dec5e2ae41f98c363d7a6d87eacb43bff4\"\u003e\u003ccode\u003eca0b74d\u003c/code\u003e\u003c/a\u003e Add zizmor GitHub Actions workflow for CI security analysis (\u003ca href=\"https://redirect.github.com/boto/botocore/issues/3665\"\u003e#3665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/da27682f6cf66cf28ed80e4c5c11023a8dfdde86\"\u003e\u003ccode\u003eda27682\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.83'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/feb29f88beaa808ede633f82d4821d5f292c2f89\"\u003e\u003ccode\u003efeb29f8\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.83' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/ab51d1ab429850efd7a1bccc829ff44514e4f463\"\u003e\u003ccode\u003eab51d1a\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.83\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/007c8a9faf604a95c877bf44875b7265a86bab90\"\u003e\u003ccode\u003e007c8a9\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/d3423dea21f083ff825eacd205bb074a855ff460\"\u003e\u003ccode\u003ed3423de\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.82'\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/botocore/compare/1.42.64...1.42.84\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cbor2` from 5.8.0 to 5.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/cbor2/releases\"\u003ecbor2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003emax_depth\u003c/code\u003e decoder parameter to limit the maximum allowed nesting level of containers, with a default value of 400 levels (CVE-2026-26209)\u003c/li\u003e\n\u003cli\u003eChanged the default \u003ccode\u003eread_size\u003c/code\u003e from 4096 to 1 for backwards compatibility. The buffered reads introduced in 5.8.0 could cause issues when code needs to access the stream position after decoding. Users can opt-in to faster decoding by passing \u003ccode\u003eread_size=4096\u003c/code\u003e when they don't need to access the stream directly after decoding. Added a direct read path for \u003ccode\u003eread_size=1\u003c/code\u003e to avoid buffer management overhead. (\u003ca href=\"https://redirect.github.com/agronholm/cbor2/pull/275\"\u003e#275\u003c/a\u003e; PR by \u003ca href=\"https://github.com/andreer\"\u003e\u003ccode\u003e@​andreer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed C encoder not respecting string referencing when encoding string-type datetimes (tag 0) (\u003ca href=\"https://redirect.github.com/agronholm/cbor2/issues/254\"\u003e#254\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a missed check for an exception in the C implementation of \u003ccode\u003eCBOREncoder.encode_shared()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/cbor2/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed two reference/memory leaks in the C extension's long string decoder (\u003ca href=\"https://redirect.github.com/agronholm/cbor2/pull/290\"\u003e#290\u003c/a\u003e PR by \u003ca href=\"https://github.com/killiancowan82\"\u003e\u003ccode\u003e@​killiancowan82\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed C decoder ignoring the \u003ccode\u003estr_errors\u003c/code\u003e setting when decoding strings, and improved string decoding performance by using stack allocation for small strings and eliminating unnecessary conditionals. Benchmarks show 9-17% faster deserialization. (\u003ca href=\"https://redirect.github.com/agronholm/cbor2/issues/255\"\u003e#255\u003c/a\u003e; PR by \u003ca href=\"https://github.com/andreer\"\u003e\u003ccode\u003e@​andreer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/cbor2/commit/93c598838d50b554e242920902aada82d32d55bc\"\u003e\u003ccode\u003e93c5988\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/cbor2/commit/d903d62c86de118e8abe626596f9be7b98ac44e9\"\u003e\u003ccode\u003ed903d62\u003c/code\u003e\u003c/a\u003e Updated the max_depth default value in the C function signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/cbor2/commit/2b53b2813d44a7919dae18747b5ac36cf9c5fb87\"\u003e\u003ccode\u003e2b53b28\u003c/code\u003e\u003c/a\u003e Stack allocate small strings (\u003ca href=\"https://redirect.github.com/agronholm/cbor2/issues/270\"\u003e#270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/cbor2/commit/a7ac10d5cbb7a8622e8270c201a131ac2abc26c7\"\u003e\u003ccode\u003ea7ac10d\u003c/code\u003e\u003c/a\u003e Upped the max_depth value to 400\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/cbor2/commit/54c8ed541c5f4842508cace5ff4b2aae54bc731b\"\u003e\u003ccode\u003e54c8ed5\u003c/code\u003e\u003c/a\u003e Fixed reference/memory leaks in decode_definite_long_string (\u003ca href=\"https://redirect.github.com/agronholm/cbor2/issues/290\"\u003e#290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/cbor2/commit/a8d92dc3dc00233c796c4abccb5daa31089bf3c0\"\u003e\u003ccode\u003ea8d92dc\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/cbor2/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/cbor2/commit/c91aa007117828560329a1624eabc5dad5435ebc\"\u003e\u003ccode\u003ec91aa00\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/cbor2/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/cbor2/commit/53521e7ca96c7a19f8a529fe59ef566212a24b3f\"\u003e\u003ccode\u003e53521e7\u003c/code\u003e\u003c/a\u003e Fixed ssize_t to Py_ssize_t\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/cbor2/commit/94e0d2125fbfb183606afa9ef07754a8dba50748\"\u003e\u003ccode\u003e94e0d21\u003c/code\u003e\u003c/a\u003e Added missing Python counterpart for max_depth\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/cbor2/commit/bcb6cea4edde1d00ff4f0eece883dea951f66e1b\"\u003e\u003ccode\u003ebcb6cea\u003c/code\u003e\u003c/a\u003e Added the max_depth decoder parameter\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/cbor2/compare/5.8.0...5.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.5 to 3.4.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.7\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.6...3.4.7\"\u003e3.4.7\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-built optimized version using mypy[c] v1.20.\u003c/li\u003e\n\u003cli\u003eRelax \u003ccode\u003esetuptools\u003c/code\u003e constraint to \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;82.1\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrectly remove SIG remnant in utf-7 decoded string. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/718\"\u003e#718\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.6\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.5...3.4.6\"\u003e3.4.6\u003c/a\u003e (2026-03-15)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFlattened the logic in \u003ccode\u003echarset_normalizer.md\u003c/code\u003e for higher performance. Removed \u003ccode\u003eeligible(..)\u003c/code\u003e and \u003ccode\u003efeed(...)\u003c/code\u003e\nin favor of \u003ccode\u003efeed_info(...)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound for mypy[c] to 1.20, for our optimized version.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eUNICODE_RANGES_COMBINED\u003c/code\u003e using Unicode blocks v17.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEdge case where noise difference between two candidates can be almost insignificant. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/672\"\u003e#672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCLI \u003ccode\u003e--normalize\u003c/code\u003e writing to wrong path when passing multiple files in. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/702\"\u003e#702\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFreethreaded pre-built wheels now shipped in PyPI starting with 3.14t. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/616\"\u003e#616\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/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.6...3.4.7\"\u003e3.4.7\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-built optimized version using mypy[c] v1.20.\u003c/li\u003e\n\u003cli\u003eRelax \u003ccode\u003esetuptools\u003c/code\u003e constraint to \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;82.1\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrectly remove SIG remnant in utf-7 decoded string. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/718\"\u003e#718\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.5...3.4.6\"\u003e3.4.6\u003c/a\u003e (2026-03-15)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFlattened the logic in \u003ccode\u003echarset_normalizer.md\u003c/code\u003e for higher performance. Removed \u003ccode\u003eeligible(..)\u003c/code\u003e and \u003ccode\u003efeed(...)\u003c/code\u003e\nin favor of \u003ccode\u003efeed_info(...)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound for mypy[c] to 1.20, for our optimized version.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eUNICODE_RANGES_COMBINED\u003c/code\u003e using Unicode blocks v17.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEdge case where noise difference between two candidates can be almost insignificant. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/672\"\u003e#672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCLI \u003ccode\u003e--normalize\u003c/code\u003e writing to wrong path when passing multiple files in. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/702\"\u003e#702\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFreethreaded pre-built wheels now shipped in PyPI starting with 3.14t. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/616\"\u003e#616\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/jawah/charset_normalizer/commit/0f07891bf516b5d5231f1bd4dd2d8da7d4d09a9a\"\u003e\u003ccode\u003e0f07891\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/729\"\u003e#729\u003c/a\u003e from jawah/release-3.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/fdbeb299479e8f4d737e4d227cd0b2bd5d273dc0\"\u003e\u003ccode\u003efdbeb29\u003c/code\u003e\u003c/a\u003e chore: update dev, and ci requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b66f922bfbdbdd9dd46af18a8964d4fb888756d4\"\u003e\u003ccode\u003eb66f922\u003c/code\u003e\u003c/a\u003e chore: add ft classifier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f94249d0a2c712f2d03124f4de6b77f5e03aaa96\"\u003e\u003ccode\u003ef94249d\u003c/code\u003e\u003c/a\u003e chore: add test cases for utf_7 recent fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/95c866f6c984bbd043e7e3ed0628aa4f3f8d5a26\"\u003e\u003ccode\u003e95c866f\u003c/code\u003e\u003c/a\u003e chore: bump version to 3.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4f429bb764c7e893f99bb4bceb60856da1baacfb\"\u003e\u003ccode\u003e4f429bb\u003c/code\u003e\u003c/a\u003e chore: bump mypy pre-commit to v1.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b579cd6cab9bd83aa3fc0ca169d4df022bf4888c\"\u003e\u003ccode\u003eb579cd6\u003c/code\u003e\u003c/a\u003e fix: correctly remove SIG remnant in utf-7 decoded string\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/58bf944a77cc0883fc46a6ee8edac3549fea5d59\"\u003e\u003ccode\u003e58bf944\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump github/codeql-action from 4.32.4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/44cf8a1b676a2532a8f1694e62e4f4f98f9132e1\"\u003e\u003ccode\u003e44cf8a1\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/download-artifact from 8.0.0 to 8.0.1 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/726\"\u003e#726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/362bc20073f737b1ba4ca2f68cffb0c4cc024d20\"\u003e\u003ccode\u003e362bc20\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump docker/setup-qemu-action from 3.7.0 to 4.0.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/725\"\u003e#725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.5...3.4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.3.1 to 8.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.2/\"\u003ehttps://pypi.org/project/click/8.3.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/29\"\u003ehttps://github.com/pallets/click/milestone/29\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix handling of \u003ccode\u003eflag_value\u003c/code\u003e when \u003ccode\u003eis_flag=False\u003c/code\u003e to allow such options to be\nused without an explicit value. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3084\"\u003e#3084\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3152\"\u003e#3152\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when using \u003ccode\u003elookup_default()\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3136\"\u003e#3136\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3199\"\u003e#3199\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3202\"\u003e#3202\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3209\"\u003e#3209\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3212\"\u003e#3212\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3224\"\u003e#3224\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e_NamedTextIOWrapper\u003c/code\u003e from closing streams owned by \u003ccode\u003eStreamMixer\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/824\"\u003e#824\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2991\"\u003e#2991\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2993\"\u003e#2993\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3110\"\u003e#3110\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3139\"\u003e#3139\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3140\"\u003e#3140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd comprehensive tests for \u003ccode\u003eCliRunner\u003c/code\u003e stream lifecycle, covering\nlogging interaction, multi-threaded safety, and sequential invocation\nisolation. Add high-iteration stress tests behind a \u003ccode\u003estress\u003c/code\u003e marker\nwith a dedicated CI job. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3139\"\u003e#3139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix callable \u003ccode\u003eflag_value\u003c/code\u003e being instantiated when used as a default via\n\u003ccode\u003edefault=True\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3121\"\u003e#3121\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3201\"\u003e#3201\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3213\"\u003e#3213\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3225\"\u003e#3225\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/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.2\u003c/h2\u003e\n\u003cp\u003eReleased 2026-04-02\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix handling of \u003ccode\u003eflag_value\u003c/code\u003e when \u003ccode\u003eis_flag=False\u003c/code\u003e to allow such options to be\nused without an explicit value. :issue:\u003ccode\u003e3084\u003c/code\u003e :pr:\u003ccode\u003e3152\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when using \u003ccode\u003elookup_default()\u003c/code\u003e.\n:issue:\u003ccode\u003e3136\u003c/code\u003e :pr:\u003ccode\u003e3199\u003c/code\u003e :pr:\u003ccode\u003e3202\u003c/code\u003e :pr:\u003ccode\u003e3209\u003c/code\u003e :pr:\u003ccode\u003e3212\u003c/code\u003e :pr:\u003ccode\u003e3224\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e_NamedTextIOWrapper\u003c/code\u003e from closing streams owned by \u003ccode\u003eStreamMixer\u003c/code\u003e.\n:issue:\u003ccode\u003e824\u003c/code\u003e :issue:\u003ccode\u003e2991\u003c/code\u003e :issue:\u003ccode\u003e2993\u003c/code\u003e :issue:\u003ccode\u003e3110\u003c/code\u003e :pr:\u003ccode\u003e3139\u003c/code\u003e :pr:\u003ccode\u003e3140\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd comprehensive tests for \u003ccode\u003eCliRunner\u003c/code\u003e stream lifecycle, covering\nlogging interaction, multi-threaded safety, and sequential invocation\nisolation. Add high-iteration stress tests behind a \u003ccode\u003estress\u003c/code\u003e marker\nwith a dedicated CI job. :pr:\u003ccode\u003e3139\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix callable \u003ccode\u003eflag_value\u003c/code\u003e being instantiated when used as a default via\n\u003ccode\u003edefault=True\u003c/code\u003e. :issue:\u003ccode\u003e3121\u003c/code\u003e :pr:\u003ccode\u003e3201\u003c/code\u003e :pr:\u003ccode\u003e3213\u003c/code\u003e :pr:\u003ccode\u003e3225\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/052c006033729bbb422cbdad0c4fee988ecb5aa5\"\u003e\u003ccode\u003e052c006\u003c/code\u003e\u003c/a\u003e Change update release date.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/502b7ce7b131473ef00a3586e60bb000f33b4c43\"\u003e\u003ccode\u003e502b7ce\u003c/code\u003e\u003c/a\u003e Merge branch 'stable' of \u003ca href=\"https://github.com/pallets/click\"\u003ehttps://github.com/pallets/click\u003c/a\u003e into release-8.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a0a37e411820861d48e21b131fdd840abaf746e0\"\u003e\u003ccode\u003ea0a37e4\u003c/code\u003e\u003c/a\u003e Change publish to werkzeug latest. (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3301\"\u003e#3301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/57be6fc2b40eb40279d022e6aabc983ee0dfb7a9\"\u003e\u003ccode\u003e57be6fc\u003c/code\u003e\u003c/a\u003e Change publish to werkzeug latest.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/781d6a88bdd30229e72a84cd6753b0235f339679\"\u003e\u003ccode\u003e781d6a8\u003c/code\u003e\u003c/a\u003e Update publish workflows (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3266\"\u003e#3266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ff795b66ba945239c779b528171f5fe4536cf844\"\u003e\u003ccode\u003eff795b6\u003c/code\u003e\u003c/a\u003e Update precommit pins with tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/dd87ef4f9fa7d6f13e14885e9a6842a21ededebc\"\u003e\u003ccode\u003edd87ef4\u003c/code\u003e\u003c/a\u003e Update github action pins with tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/93d3f9d22e90035bc2b51c2183c15bd4a021376f\"\u003e\u003ccode\u003e93d3f9d\u003c/code\u003e\u003c/a\u003e Release version 8.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/3299ba1a8a5de34b24a7226a683a837d8a0857e7\"\u003e\u003ccode\u003e3299ba1\u003c/code\u003e\u003c/a\u003e Add missing PR to changelog. (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3264\"\u003e#3264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b7f62c4d002e5b5bca3ebef6b995b7338740fe6f\"\u003e\u003ccode\u003eb7f62c4\u003c/code\u003e\u003c/a\u003e Add missing PR to changelog.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.3.1...8.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 23.0.0 to 25.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eGunicorn 25.3.0\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eHTTP/2 ASGI Body Duplication\u003c/strong\u003e: Fix request body being received twice in HTTP/2\nASGI requests, causing JSON parsing errors with \u0026quot;Extra data\u0026quot; messages\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3558\"\u003e#3558\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eASGI Chunked EOF Handling\u003c/strong\u003e: Add \u003ccode\u003efinish()\u003c/code\u003e method to callback parser to handle\nchunked encoding edge case where connection closes before final CRLF after zero-chunk\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eHTTP/2 Documentation\u003c/strong\u003e: Fix \u003ccode\u003ehttp_protocols\u003c/code\u003e examples to use comma-separated string\ninstead of list syntax (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3561\"\u003e#3561\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eChunked Encoding\u003c/strong\u003e: Reject chunk extensions containing bare CR bytes per RFC 9112\n(\u003ca href=\"https://github.com/benoitc/gunicorn/discussions/3556\"\u003e#3556\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eRequest Line Limit\u003c/strong\u003e: Fix \u003ccode\u003e--limit-request-line 0\u003c/code\u003e to mean unlimited as documented,\ninstead of using default maximum. Works with both Python and fast C parser.\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3563\"\u003e#3563\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Parser Header Validation\u003c/strong\u003e: Add security checks per RFC 9110/9112:\n\u003cul\u003e\n\u003cli\u003eReject duplicate Content-Length headers\u003c/li\u003e\n\u003cli\u003eReject requests with both Content-Length and Transfer-Encoding\u003c/li\u003e\n\u003cli\u003eReject chunked transfer encoding in HTTP/1.0\u003c/li\u003e\n\u003cli\u003eReject stacked chunked encoding\u003c/li\u003e\n\u003cli\u003eValidate Transfer-Encoding values\u003c/li\u003e\n\u003cli\u003eStrict chunk size validation\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFast HTTP Parser\u003c/strong\u003e: Update to gunicorn_h1c \u0026gt;= 0.6.3 for \u003ccode\u003easgi_headers\u003c/code\u003e property\nand \u003ccode\u003eInvalidChunkExtension\u003c/code\u003e validation for bare CR rejection\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eASGI PROXY Protocol\u003c/strong\u003e: Add PROXY protocol v1/v2 support to callback parser\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eDocker Images\u003c/strong\u003e: Update to Python 3.14\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eGunicorn 25.2.0\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFast HTTP Parser (gunicorn_h1c 0.4.1)\u003c/strong\u003e: Integrate new exception types and limit parameters from gunicorn_h1c 0.4.1 for both WSGI and ASGI workers\n\u003cul\u003e\n\u003cli\u003eRequires gunicorn_h1c \u0026gt;= 0.4.1 for \u003ccode\u003ehttp_parser='fast'\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFalls back to Python parser in \u003ccode\u003eauto\u003c/code\u003e mode if version not met\u003c/li\u003e\n\u003cli\u003eProper HTTP status codes for limit errors (414, 431)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003euWSGI Async Workers\u003c/strong\u003e: Fix \u003ccode\u003eInvalidUWSGIHeader: incomplete header\u003c/code\u003e error when using gevent or gthread workers with uwsgi protocol behind nginx. (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3552\"\u003e#3552\u003c/a\u003e, [PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3554\"\u003e#3554\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3554\"\u003ebenoitc/gunicorn#3554\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/9bce72cfc3985aba7e0c47bf3c00fa681b2847e4\"\u003e\u003ccode\u003e9bce72c\u003c/code\u003e\u003c/a\u003e Update changelog with missing 25.3.0 changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/2a15fdb93ab136e5776692d620852f481c89d610\"\u003e\u003ccode\u003e2a15fdb\u003c/code\u003e\u003c/a\u003e Fix pylint isinstance-second-argument-not-valid-type warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/8d08aaa2cbd38fdfa2ca6fb94094c47b9c16730a\"\u003e\u003ccode\u003e8d08aaa\u003c/code\u003e\u003c/a\u003e Fix --limit-request-line 0 to mean unlimited\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/d40a37454736e40916eb51e35895f1c22c0cd34a\"\u003e\u003ccode\u003ed40a374\u003c/code\u003e\u003c/a\u003e Fix pytest-asyncio configuration and treq_asgi hex escapes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/da8bd4850ac0f2d0df215390dad88392eb538d74\"\u003e\u003ccode\u003eda8bd48\u003c/code\u003e\u003c/a\u003e Remove unused AsyncRequest class\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/b00f125755ec3f509a3e82dc5568d9f2d8bddba7\"\u003e\u003ccode\u003eb00f125\u003c/code\u003e\u003c/a\u003e Integrate gunicorn_h1c 0.6.3 with InvalidChunkExtension support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/bdb2ebd5a4913fff1e92800f3763e4a879526d3e\"\u003e\u003ccode\u003ebdb2ebd\u003c/code\u003e\u003c/a\u003e Reject chunk extensions with bare CR bytes (RFC 9112)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/7057fc9f89f0ce4d9ac01a12ea2f39768fb32be6\"\u003e\u003ccode\u003e7057fc9\u003c/code\u003e\u003c/a\u003e Fix http_protocols documentation to use string syntax\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/d43acb8fe0910b6669c163e2f4a439e464eab012\"\u003e\u003ccode\u003ed43acb8\u003c/code\u003e\u003c/a\u003e Update to gunicorn_h1c \u0026gt;= 0.6.2 for asgi_headers support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/cbd27e82a238cb1326336c6aa4b8ae058e2c9ff9\"\u003e\u003ccode\u003ecbd27e8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3559\"\u003e#3559\u003c/a\u003e from benleembruggen/fix/http2-asgi-body-duplication\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/23.0.0...25.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nh3` from 0.3.3 to 0.3.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/messense/nh3/releases\"\u003enh3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.3.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pyo3 from 0.28.1 to 0.28.2 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/messense/nh3/pull/114\"\u003emessense/nh3#114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate rel attribute conflict with link_rel by \u003ca href=\"https://github.com/gghez\"\u003e\u003ccode\u003e@​gghez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/messense/nh3/pull/117\"\u003emessense/nh3#117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose default clean_content_tags as module constant by \u003ca href=\"https://github.com/gghez\"\u003e\u003ccode\u003e@​gghez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/messense/nh3/pull/118\"\u003emessense/nh3#118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept frozenset and Mapping in type stubs by \u003ca href=\"https://github.com/gghez\"\u003e\u003ccode\u003e@​gghez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/messense/nh3/pull/119\"\u003emessense/nh3#119\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/gghez\"\u003e\u003ccode\u003e@​gghez\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/messense/nh3/pull/117\"\u003emessense/nh3#117\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/messense/nh3/compare/v0.3.3...v0.3.4\"\u003ehttps://github.com/messense/nh3/compare/v0.3.3...v0.3.4\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/messense/nh3/commit/c2ddb81e29ceee428a49b621994098e4e490d172\"\u003e\u003ccode\u003ec2ddb81\u003c/code\u003e\u003c/a\u003e Bump version to 0.3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/d19279a664798d898ee68c73998d1d4a979bb97f\"\u003e\u003ccode\u003ed19279a\u003c/code\u003e\u003c/a\u003e Accept frozenset and Mapping in type stubs (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/119\"\u003e#119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/b98f2c5f4a023c9281f4a2037931de4c73a3266b\"\u003e\u003ccode\u003eb98f2c5\u003c/code\u003e\u003c/a\u003e Expose default clean_content_tags as module constant (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/118\"\u003e#118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/9fdfa76988dda100ae69a657f017655b86821b8a\"\u003e\u003ccode\u003e9fdfa76\u003c/code\u003e\u003c/a\u003e Validate rel attribute conflict with link_rel (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/117\"\u003e#117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/8af5eeeb6b1c8a391c0c6f4e0634f3f859b75446\"\u003e\u003ccode\u003e8af5eee\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/115\"\u003e#115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/613bdaeedcd259ef76bef4f130c2ad14cdb9a293\"\u003e\u003ccode\u003e613bdae\u003c/code\u003e\u003c/a\u003e Bump pyo3 from 0.28.1 to 0.28.2 (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/114\"\u003e#114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/565c231d895692d7728b7d1588aed350bace8a5f\"\u003e\u003ccode\u003e565c231\u003c/code\u003e\u003c/a\u003e Bump pyo3 from 0.28.0 to 0.28.1 (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/113\"\u003e#113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/messense/nh3/compare/v0.3.3...v0.3.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phonenumbers` from 9.0.25 to 9.0.27\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/3b082bf38fac2ac2a1556b9b416562f464c9d780\"\u003e\u003ccode\u003e3b082bf\u003c/code\u003e\u003c/a\u003e Prep for 9.0.27 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/c496532280afda5778e45d23d5feb621e55fc397\"\u003e\u003ccode\u003ec496532\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/ee29e8518101d039dbaf4463087a786e7c11e01d\"\u003e\u003ccode\u003eee29e85\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.27\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/07e2c75b1dc1d94c806755e4842410e19cd1e17e\"\u003e\u003ccode\u003e07e2c75\u003c/code\u003e\u003c/a\u003e Prep for 9.0.26 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/55522da42bff8bd7eefd08b17c978971bc60e135\"\u003e\u003ccode\u003e55522da\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/8ca762b2309a1df12f2eadf601ce413bf3cd1826\"\u003e\u003ccode\u003e8ca762b\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.26\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.25...v9.0.27\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.11.0 to 2.12.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.12.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd typing_extensions dependency for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/jpadilla\"\u003e\u003ccode\u003e@​jpadilla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1151\"\u003ejpadilla/pyjwt#1151\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.12.0\u003c/h2\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. by \u003ca href=\"https://github.com/dmbs335\"\u003e\u003ccode\u003e@​dmbs335\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-752w-5fwx-jx9f\"\u003eGHSA-752w-5fwx-jx9f\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1132\"\u003ejpadilla/pyjwt#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(docs): fix docs build by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1137\"\u003ejpadilla/pyjwt#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAnnotate PyJWKSet.keys for pyright by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1134\"\u003ejpadilla/pyjwt#1134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: close HTTPError to prevent ResourceWarning on Python 3.14 by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1133\"\u003ejpadilla/pyjwt#1133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove superfluous constants by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1136\"\u003ejpadilla/pyjwt#1136\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1135\"\u003ejpadilla/pyjwt#1135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(tests): enable mypy by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1138\"\u003ejpadilla/pyjwt#1138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 7 to 8 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/jpadilla/pyjwt/pull/1142\"\u003ejpadilla/pyjwt#1142\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1141\"\u003ejpadilla/pyjwt#1141\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1145\"\u003ejpadilla/pyjwt#1145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: do not store reference to algorithms dict on PyJWK by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1143\"\u003ejpadilla/pyjwt#1143\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse PyJWK algorithm when encoding without explicit algorithm by \u003ca href=\"https://github.com/jpadilla\"\u003e\u003ccode\u003e@​jpadilla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1148\"\u003ejpadilla/pyjwt#1148\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/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1137\"\u003ejpadilla/pyjwt#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1133\"\u003ejpadilla/pyjwt#1133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.12.1 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Add missing ``typing_extensions`` dependency for Python \u0026lt; 3.11 in `[#1150](https://github.com/jpadilla/pyjwt/issues/1150) \u0026lt;https://github.com/jpadilla/pyjwt/issues/1150\u0026gt;`__\n\u003ch2\u003e\u003ccode\u003ev2.12.0 \u0026amp;lt;https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\u0026amp;gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAnnotate PyJWKSet.keys for pyright by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1134](https://github.com/jpadilla/pyjwt/issues/1134) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1134\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eClose \u003ccode\u003eHTTPError\u003c/code\u003e response to prevent \u003ccode\u003eResourceWarning\u003c/code\u003e on Python 3.14 by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1133](https://github.com/jpadilla/pyjwt/issues/1133) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1133\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDo not keep \u003ccode\u003ealgorithms\u003c/code\u003e dict in PyJWK instances by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1143](https://github.com/jpadilla/pyjwt/issues/1143) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1143\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eValidate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. by \u003ca href=\"https://github.com/dmbs335\"\u003e\u003ccode\u003e@​dmbs335\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003eGHSA-752w-5fwx-jx9f \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-752w-5fwx-jx9f\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eUse PyJWK algorithm when encoding without explicit algorithm in \u003ccode\u003e[#1148](https://github.com/jpadilla/pyjwt/issues/1148) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1148\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAdded\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Docs: Add ``PyJWKClient`` API reference and document the two-tier caching system (JWK Set cache and signing key LRU cache).\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/a4e1a3d1218b01c5806420b8f16d9308ac4adc30\"\u003e\u003ccode\u003ea4e1a3d\u003c/code\u003e\u003c/a\u003e Add typing_extensions dependency for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/bd9700cca7f9258fadcc429c1034e508025931f2\"\u003e\u003ccode\u003ebd9700c\u003c/code\u003e\u003c/a\u003e Use PyJWK algorithm when encoding without explicit algorithm (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1148\"\u003e#1148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/051ea341b5573fe3edcd53042f347929b92c2b92\"\u003e\u003ccode\u003e051ea34\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/1451d70eca2059bc472703692f0bb0777bc0fe93\"\u003e\u003ccode\u003e1451d70\u003c/code\u003e\u003c/a\u003e fix: do not store reference to algorithms dict on PyJWK (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1143\"\u003e#1143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/f3ba74c106df9ce10e272dfaad96acb4ab3ef5a5\"\u003e\u003ccode\u003ef3ba74c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1145\"\u003e#1145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/0318ffa7b156b01600376e38952bf961382e0724\"\u003e\u003ccode\u003e0318ffa\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1141\"\u003e#1141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/a52753db3c1075ac01337fa8b7cc92b13a19ac09\"\u003e\u003ccode\u003ea52753d\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7 to 8 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1142\"\u003e#1142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/b85050f1d444c6828bb4618ee764443b0a3f5d18\"\u003e\u003ccode\u003eb85050f\u003c/code\u003e\u003c/a\u003e chore(tests): enable mypy (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1138\"\u003e#1138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/1272b264779717cc481c8341f321a7fc8b3aaba6\"\u003e\u003ccode\u003e1272b26\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1135\"\u003e#1135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/99a87287c26cb97c94399084ee4186ee52207a7f\"\u003e\u003ccode\u003e99a8728\u003c/code\u003e\u003c/a\u003e chore: remove superfluous constants (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1136\"\u003e#1136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyopenssl` from 25.3.0 to 26.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/pyopenssl/blob/main/CHANGELOG.rst\"\u003epyopenssl's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0.0 (2026-03-15)\u003c/h2\u003e\n\u003cp\u003eBackward-incompatible changes:\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.7.\u003c/li\u003e\n\u003cli\u003eThe minimum \u003ccode\u003ecryptography\u003c/code\u003e version is now 46.0.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDeprecations:\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eChanges:\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for using aws-lc instead of OpenSSL.\u003c/li\u003e\n\u003cli\u003eProperly raise an error if a DTLS cookie callback returned a cookie longer than \u003ccode\u003eDTLS1_COOKIE_LENGTH\u003c/code\u003e bytes. Previously this would result in a buffer-overflow. Credit to \u003cstrong\u003edark_haxor\u003c/strong\u003e for reporting the issue. \u003cstrong\u003eCVE-2026-27459\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eOpenSSL.SSL.Connection.get_group_name\u003c/code\u003e to determine which group name was negotiated.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.set_tlsext_servername_callback\u003c/code\u003e now handles exceptions raised in the callback by calling \u003ccode\u003esys.excepthook\u003c/code\u003e and returning a fatal TLS alert. Previously, exceptions were silently swallowed and the handshake would proceed as if the callback had succeeded. Credit to \u003cstrong\u003eLeury Castillo\u003c/strong\u003e for reporting this issue. \u003cstrong\u003eCVE-2026-27448\u003c/strong\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/pyca/pyopenssl/commit/358cbf29c4e364c59930e53a270116249581eaa3\"\u003e\u003ccode\u003e358cbf2\u003c/code\u003e\u003c/a\u003e Prepare for 26.0.0 release (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1487\"\u003e#1487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/a8d28e7069ca213049ccfbcc227ed9ef6080a15b\"\u003e\u003ccode\u003ea8d28e7\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4 to 5 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1486\"\u003e#1486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/6fefff05561c0a5e8f668b4e029a6ba3adb7d89e\"\u003e\u003ccode\u003e6fefff0\u003c/code\u003e\u003c/a\u003e Add aws-lc compatibility to tests and CI (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1476\"\u003e#1476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/a739f9661d09ec6cda448ad71ca3e6df0dce9d75\"\u003e\u003ccode\u003ea739f96\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 8.0.0 to 8.0.1 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1485\"\u003e#1485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/8b4c66b1b5649ce046665b151772d40c1cddd66a\"\u003e\u003ccode\u003e8b4c66b\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact in /.github/actions/upload-coverage (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1484\"\u003e#1484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/02a5c78435cd445a7d5ef20b354dba2b6abdac64\"\u003e\u003ccode\u003e02a5c78\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/d9733878d67ee2ad94327768bb6dc416f7827443\"\u003e\u003ccode\u003ed973387\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7.0.0 to 8.0.0 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1482\"\u003e#1482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/57f09bb4bb051d3bc2a1abd36e9525313d5cd408\"\u003e\u003ccode\u003e57f09bb\u003c/code\u003e\u003c/a\u003e Fix buffer overflow in DTLS cookie generation callback (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1479\"\u003e#1479\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/d41a814759a9fb49584ca8ab3f7295de49a85aa0\"\u003e\u003ccode\u003ed41a814\u003c/code\u003e\u003c/a\u003e Handle exceptions in set_tlsext_servername_callback callbacks (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1478\"\u003e#1478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/7b29beba7759f0b810b5d5375a50469c4f8947b3\"\u003e\u003ccode\u003e7b29beb\u003c/code\u003e\u003c/a\u003e Fix not using a cryptography wheel on uv (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1475\"\u003e#1475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/pyopenssl/compare/25.3.0...26.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.5 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\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/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.48 to 2.0.49\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.49\u003c/h1\u003e\n\u003cp\u003eReleased: April 3, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where \u003ccode\u003e_orm.Session.get()\u003c/code\u003e would bypass the identity map\nand emit unnecessary SQL when \u003ccode\u003ewith_for_update=False\u003c/code\u003e was passed,\nrather than treating it equivalently to the default of \u003ccode\u003eNone\u003c/code\u003e.\nPull request courtesy of Joshua Swanson.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13176\"\u003e#13176\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where chained \u003ccode\u003e_orm.joinedload()\u003c/code\u003e options would not be\napplied correctly when the final relationship in the chain is declared on a\nbase mapper and accessed through a subclass mapper in a\n\u003ccode\u003e_orm.with_polymorphic()\u003c/code\u003e query. The path registry now correctly\ncomputes the natural path when a property declared on a base class is\naccessed through a path containing a subclass mapper, ensuring the loader\noption can be located during query compilation.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13193\"\u003e#13193\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using \u003ccode\u003e_orm.Load.options()\u003c/code\u003e to apply a chained loader\noption such as \u003ccode\u003e_orm.joinedload()\u003c/code\u003e or \u003ccode\u003e_orm.selectinload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot generate the necessary clauses for the polymorphic subclasses. The\npolymorphic loading strategy is now correctly propagated when using a call\nsuch as \u003ccode\u003ejoinedload(A.b).options(joinedload(B.c.of_type(poly)))\u003c/code\u003e to match\nthe behavior of direct chaining e.g.\n\u003ccode\u003ejoinedload(A.b).joinedload(B.c.of_type(poly))\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13202\"\u003e#13202\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using chained loader options such as\n\u003ccode\u003e_orm.selectinload()\u003c/code\u003e after \u003ccode\u003e_orm.joinedload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot properly apply ...\n\n_Description has been truncated_","html_url":"https://github.com/brendanbank/bcource/pull/49","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/brendanbank%2Fbcource/issues/49","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/49/packages"},{"uuid":"4210465264","node_id":"PR_kwDOK5vSp87QJgDE","number":802,"state":"open","title":"deps(deps): bump the python-production group across 1 directory with 2 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-06T08:14:37.000Z","updated_at":"2026-04-20T08:37:51.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps): bump","group_name":"python-production","update_count":2,"packages":[{"name":"phonenumbers","old_version":"9.0.26","new_version":"9.0.27","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"},{"name":"regex","old_version":"2026.2.28","new_version":"2026.4.4","repository_url":"https://github.com/mrabarnett/mrab-regex"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-production group with 2 updates in the / directory: [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) and [regex](https://github.com/mrabarnett/mrab-regex).\n\nUpdates `phonenumbers` from 9.0.26 to 9.0.27\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/3b082bf38fac2ac2a1556b9b416562f464c9d780\"\u003e\u003ccode\u003e3b082bf\u003c/code\u003e\u003c/a\u003e Prep for 9.0.27 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/c496532280afda5778e45d23d5feb621e55fc397\"\u003e\u003ccode\u003ec496532\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/ee29e8518101d039dbaf4463087a786e7c11e01d\"\u003e\u003ccode\u003eee29e85\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.27\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.26...v9.0.27\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `regex` from 2026.2.28 to 2026.4.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2aff2db5542ec5b58705be6ddb7b69a99d3e38a8\"\u003e\u003ccode\u003e2aff2db\u003c/code\u003e\u003c/a\u003e Fixed bug again.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/16af8aed2b3211e90588d2ac96f7c588ed477b2c\"\u003e\u003ccode\u003e16af8ae\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2356563bbfd51b3986320a866c35a50b89833949\"\u003e\u003ccode\u003e2356563\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/f579e8ff60e2993a11cf4fd96748e4b7866c9fed\"\u003e\u003ccode\u003ef579e8f\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/55315a0497722898bed8286a596a64db698f498e\"\u003e\u003ccode\u003e55315a0\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/923d78e39b8ff92db67606be3bfbc2e595b6475a\"\u003e\u003ccode\u003e923d78e\u003c/code\u003e\u003c/a\u003e Various fixes, including ones to improve free-threading support.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/softwareone-platform/swo-adobe-vipm-extension/pull/802","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/softwareone-platform%2Fswo-adobe-vipm-extension/issues/802","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/802/packages"},{"uuid":"4168606490","node_id":"PR_kwDOQ466oc7OiD5y","number":14,"state":"closed","title":"deps(deps): bump the python-production group across 1 directory with 13 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-06T08:16:29.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-30T08:20:17.000Z","updated_at":"2026-04-06T08:16:30.000Z","time_to_close":604572,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps): bump","group_name":"python-production","update_count":13,"packages":[{"name":"azure-identity","old_version":"1.25.1","new_version":"1.25.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"debugpy","old_version":"1.8.19","new_version":"1.8.20","repository_url":"https://github.com/microsoft/debugpy"},{"name":"gunicorn","old_version":"23.0.0","new_version":"25.3.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"phonenumbers","old_version":"9.0.21","new_version":"9.0.26","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"},{"name":"pyjwt","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"rich","old_version":"14.2.0","new_version":"14.3.3","repository_url":"https://github.com/Textualize/rich"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-production group with 7 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.1` | `1.25.3` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.19` | `1.8.20` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `25.3.0` |\n| [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) | `9.0.21` | `9.0.26` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.10.1` | `2.12.1` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.0` |\n| [rich](https://github.com/Textualize/rich) | `14.2.0` | `14.3.3` |\n\n\nUpdates `azure-identity` from 1.25.1 to 1.25.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-identity's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-identity_1.25.3\u003c/h2\u003e\n\u003ch2\u003e1.25.3 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an expired token could skip refresh when a recent token request was made, due to the retry delay taking precedence over expiration. (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/pull/45496\"\u003e#45496\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBumped minimum dependency on \u003ccode\u003emsal\u003c/code\u003e to \u003ccode\u003e\u0026gt;=1.35.1\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eazure-identity_1.25.2\u003c/h2\u003e\n\u003ch2\u003e1.25.2 (2026-02-10)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue with certain credentials not bypassing the token cache when claims are provided in \u003ccode\u003eget_token\u003c/code\u003e or \u003ccode\u003eget_token_info\u003c/code\u003e calls. (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/pull/44552\"\u003e#44552\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/pull/44815\"\u003e#44815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed an issue where an unhelpful TypeError was raised during Entra ID token requests that returned empty responses. Now, a ClientAuthenticationError is raised with the full response for better troubleshooting. (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/pull/44258\"\u003e#44258\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBumped minimum dependency on \u003ccode\u003emsal\u003c/code\u003e to \u003ccode\u003e\u0026gt;=1.31.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdded debug logging of access token cache hits in several credentials to improve troubleshooting of token cache behavior. (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/pull/44963\"\u003e#44963\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace instances of \u003ccode\u003eazure.core.pipeline.transport.HttpRequest\u003c/code\u003e with \u003ccode\u003eazure.core.rest.HttpRequest\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/pull/44993\"\u003e#44993\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/Azure/azure-sdk-for-python/commit/a989ea467731265fdf097b622ba254703187746b\"\u003e\u003ccode\u003ea989ea4\u003c/code\u003e\u003c/a\u003e [Identity] Prep patch release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/79728834e7f38018d372860cf9117bf51d9ed417\"\u003e\u003ccode\u003e7972883\u003c/code\u003e\u003c/a\u003e [Identity] Adjust refresh logic (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45496\"\u003e#45496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/04764a9a8a0cb59aab6421b41152246853dfcfe8\"\u003e\u003ccode\u003e04764a9\u003c/code\u003e\u003c/a\u003e add psscript to convert apiview json files to md (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45589\"\u003e#45589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/50e01659d7204865dfa07c5ece1019ed9a229b4f\"\u003e\u003ccode\u003e50e0165\u003c/code\u003e\u003c/a\u003e Sync eng/common directory with azure-sdk-tools for PR 14461 (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45646\"\u003e#45646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/5333117e0e181404ff4deaa757e9b6ef86dabf8b\"\u003e\u003ccode\u003e5333117\u003c/code\u003e\u003c/a\u003e Add Bo to /sdk/ai/azure-ai-projects owner list (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45664\"\u003e#45664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/775d6942e4335422fc69da8e997a6069e356b104\"\u003e\u003ccode\u003e775d694\u003c/code\u003e\u003c/a\u003e Doc and automation updates for .github sync directory changes (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45630\"\u003e#45630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/c6e48b5cd71adf5728a5e2f33bc9f62fb221221f\"\u003e\u003ccode\u003ec6e48b5\u003c/code\u003e\u003c/a\u003e [Core] Prepare release (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45656\"\u003e#45656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/ae769c4e9379c8d309bffa5ccb76dcfba64e1f71\"\u003e\u003ccode\u003eae769c4\u003c/code\u003e\u003c/a\u003e Fix custom Memory Stores LRO poller operation (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45662\"\u003e#45662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/6074492844d670316eb171756483f1394a6c94c7\"\u003e\u003ccode\u003e6074492\u003c/code\u003e\u003c/a\u003e Add asset id none check in dt (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45618\"\u003e#45618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/e1a986aeb7a8001bd3a4f336cf096c2b050aa480\"\u003e\u003ccode\u003ee1a986a\u003c/code\u003e\u003c/a\u003e Bump tar from 7.5.10 to 7.5.11 in /eng/common/tsp-client (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45640\"\u003e#45640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-identity_1.25.1...azure-identity_1.25.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `debugpy` from 1.8.19 to 1.8.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/debugpy/releases\"\u003edebugpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003edebugpy v1.8.20\u003c/h2\u003e\n\u003cp\u003eFixes for:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eannotate in 3.14 causing exceptions: \u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1971\"\u003emicrosoft/debugpy#1971\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eEnhancements:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse remote_exec if available: \u003ca href=\"https://github.com/microsoft/debugpy/commit/c7e86a1954381ceadb2ea398fc60079deef91358\"\u003ehttps://github.com/microsoft/debugpy/commit/c7e86a1954381ceadb2ea398fc60079deef91358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport more architectures: \u003ca href=\"https://github.com/microsoft/debugpy/commit/1bbecdf366016c58e62a076b46d4f3c00aea097f\"\u003ehttps://github.com/microsoft/debugpy/commit/1bbecdf366016c58e62a076b46d4f3c00aea097f\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInfrastructure work:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport devcontainers for development: \u003ca href=\"https://github.com/microsoft/debugpy/commit/7dbc2292b1a23e5ae80db67a1b25f002bd104776\"\u003ehttps://github.com/microsoft/debugpy/commit/7dbc2292b1a23e5ae80db67a1b25f002bd104776\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/rameshvarun\"\u003e\u003ccode\u003e@​rameshvarun\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Xeonacid\"\u003e\u003ccode\u003e@​Xeonacid\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/pdepetro\"\u003e\u003ccode\u003e@​pdepetro\u003c/code\u003e\u003c/a\u003e for the commits\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/microsoft/debugpy/commit/7ac3d1f2c65ccf6b2e62a762863093f0242179f0\"\u003e\u003ccode\u003e7ac3d1f\u003c/code\u003e\u003c/a\u003e Try 6 on this file (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1995\"\u003e#1995\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/e1646137a8346292a528b2899c7c8a8fe8d60224\"\u003e\u003ccode\u003ee164613\u003c/code\u003e\u003c/a\u003e O365 new advice (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1994\"\u003e#1994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/4cbf8b1ce99a856b032470c19c3261195e137ca2\"\u003e\u003ccode\u003e4cbf8b1\u003c/code\u003e\u003c/a\u003e Try another suppression (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1993\"\u003e#1993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/ea9fcaeb59482ad97c51cbe584247f30a0c7ae2d\"\u003e\u003ccode\u003eea9fcae\u003c/code\u003e\u003c/a\u003e Try a different way to suppress binskim problems (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1992\"\u003e#1992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/ea2746aafcd830a96a2144c3f636ba587f90a15d\"\u003e\u003ccode\u003eea2746a\u003c/code\u003e\u003c/a\u003e Add LTCG flags to compile_windows.bat for BinSkim BA6006 compliance (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1991\"\u003e#1991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/7dbc2292b1a23e5ae80db67a1b25f002bd104776\"\u003e\u003ccode\u003e7dbc229\u003c/code\u003e\u003c/a\u003e Added devcontainer specification (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1989\"\u003e#1989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/bb450fc27202cdf0676343dc0150be962b627233\"\u003e\u003ccode\u003ebb450fc\u003c/code\u003e\u003c/a\u003e Fix: Treat \u003cstrong\u003eannotate\u003c/strong\u003e functions as library code in Python 3.14+ (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1988\"\u003e#1988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/1bbecdf366016c58e62a076b46d4f3c00aea097f\"\u003e\u003ccode\u003e1bbecdf\u003c/code\u003e\u003c/a\u003e Better experience for unsupported arch (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1984\"\u003e#1984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/c7e86a1954381ceadb2ea398fc60079deef91358\"\u003e\u003ccode\u003ec7e86a1\u003c/code\u003e\u003c/a\u003e Use sys.remote_exec() to attach to pid, if available (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1986\"\u003e#1986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/microsoft/debugpy/compare/v1.8.19...v1.8.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 23.0.0 to 25.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eGunicorn 25.3.0\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eHTTP/2 ASGI Body Duplication\u003c/strong\u003e: Fix request body being received twice in HTTP/2\nASGI requests, causing JSON parsing errors with \u0026quot;Extra data\u0026quot; messages\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3558\"\u003e#3558\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eASGI Chunked EOF Handling\u003c/strong\u003e: Add \u003ccode\u003efinish()\u003c/code\u003e method to callback parser to handle\nchunked encoding edge case where connection closes before final CRLF after zero-chunk\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eHTTP/2 Documentation\u003c/strong\u003e: Fix \u003ccode\u003ehttp_protocols\u003c/code\u003e examples to use comma-separated string\ninstead of list syntax (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3561\"\u003e#3561\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eChunked Encoding\u003c/strong\u003e: Reject chunk extensions containing bare CR bytes per RFC 9112\n(\u003ca href=\"https://github.com/benoitc/gunicorn/discussions/3556\"\u003e#3556\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eRequest Line Limit\u003c/strong\u003e: Fix \u003ccode\u003e--limit-request-line 0\u003c/code\u003e to mean unlimited as documented,\ninstead of using default maximum. Works with both Python and fast C parser.\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3563\"\u003e#3563\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Parser Header Validation\u003c/strong\u003e: Add security checks per RFC 9110/9112:\n\u003cul\u003e\n\u003cli\u003eReject duplicate Content-Length headers\u003c/li\u003e\n\u003cli\u003eReject requests with both Content-Length and Transfer-Encoding\u003c/li\u003e\n\u003cli\u003eReject chunked transfer encoding in HTTP/1.0\u003c/li\u003e\n\u003cli\u003eReject stacked chunked encoding\u003c/li\u003e\n\u003cli\u003eValidate Transfer-Encoding values\u003c/li\u003e\n\u003cli\u003eStrict chunk size validation\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFast HTTP Parser\u003c/strong\u003e: Update to gunicorn_h1c \u0026gt;= 0.6.3 for \u003ccode\u003easgi_headers\u003c/code\u003e property\nand \u003ccode\u003eInvalidChunkExtension\u003c/code\u003e validation for bare CR rejection\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eASGI PROXY Protocol\u003c/strong\u003e: Add PROXY protocol v1/v2 support to callback parser\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eDocker Images\u003c/strong\u003e: Update to Python 3.14\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eGunicorn 25.2.0\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFast HTTP Parser (gunicorn_h1c 0.4.1)\u003c/strong\u003e: Integrate new exception types and limit parameters from gunicorn_h1c 0.4.1 for both WSGI and ASGI workers\n\u003cul\u003e\n\u003cli\u003eRequires gunicorn_h1c \u0026gt;= 0.4.1 for \u003ccode\u003ehttp_parser='fast'\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFalls back to Python parser in \u003ccode\u003eauto\u003c/code\u003e mode if version not met\u003c/li\u003e\n\u003cli\u003eProper HTTP status codes for limit errors (414, 431)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003euWSGI Async Workers\u003c/strong\u003e: Fix \u003ccode\u003eInvalidUWSGIHeader: incomplete header\u003c/code\u003e error when using gevent or gthread workers with uwsgi protocol behind nginx. (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3552\"\u003e#3552\u003c/a\u003e, [PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3554\"\u003e#3554\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3554\"\u003ebenoitc/gunicorn#3554\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/9bce72cfc3985aba7e0c47bf3c00fa681b2847e4\"\u003e\u003ccode\u003e9bce72c\u003c/code\u003e\u003c/a\u003e Update changelog with missing 25.3.0 changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/2a15fdb93ab136e5776692d620852f481c89d610\"\u003e\u003ccode\u003e2a15fdb\u003c/code\u003e\u003c/a\u003e Fix pylint isinstance-second-argument-not-valid-type warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/8d08aaa2cbd38fdfa2ca6fb94094c47b9c16730a\"\u003e\u003ccode\u003e8d08aaa\u003c/code\u003e\u003c/a\u003e Fix --limit-request-line 0 to mean unlimited\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/d40a37454736e40916eb51e35895f1c22c0cd34a\"\u003e\u003ccode\u003ed40a374\u003c/code\u003e\u003c/a\u003e Fix pytest-asyncio configuration and treq_asgi hex escapes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/da8bd4850ac0f2d0df215390dad88392eb538d74\"\u003e\u003ccode\u003eda8bd48\u003c/code\u003e\u003c/a\u003e Remove unused AsyncRequest class\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/b00f125755ec3f509a3e82dc5568d9f2d8bddba7\"\u003e\u003ccode\u003eb00f125\u003c/code\u003e\u003c/a\u003e Integrate gunicorn_h1c 0.6.3 with InvalidChunkExtension support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/bdb2ebd5a4913fff1e92800f3763e4a879526d3e\"\u003e\u003ccode\u003ebdb2ebd\u003c/code\u003e\u003c/a\u003e Reject chunk extensions with bare CR bytes (RFC 9112)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/7057fc9f89f0ce4d9ac01a12ea2f39768fb32be6\"\u003e\u003ccode\u003e7057fc9\u003c/code\u003e\u003c/a\u003e Fix http_protocols documentation to use string syntax\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/d43acb8fe0910b6669c163e2f4a439e464eab012\"\u003e\u003ccode\u003ed43acb8\u003c/code\u003e\u003c/a\u003e Update to gunicorn_h1c \u0026gt;= 0.6.2 for asgi_headers support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/cbd27e82a238cb1326336c6aa4b8ae058e2c9ff9\"\u003e\u003ccode\u003ecbd27e8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3559\"\u003e#3559\u003c/a\u003e from benleembruggen/fix/http2-asgi-body-duplication\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/23.0.0...25.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-api` from 1.30.0 to 1.39.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/v1.39.1/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.39.1/0.60b1 (2025-12-11)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSilence events API warnings for internal users\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4847\"\u003e#4847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.39.0/0.60b0 (2025-12-03)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e: Convert objects of any type other than AnyValue in attributes to string to be exportable\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4808\"\u003e#4808\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edocs: Added sqlcommenter example\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4734\"\u003e#4734\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ebuild: bump ruff to 0.14.1\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4782\"\u003e#4782\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eopentelemetry-exporter-credential-provider-gcp\u003c/code\u003e as an optional dependency to \u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e\nand \u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4760\"\u003e#4760\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003esemantic-conventions: Bump to 1.38.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4791\"\u003e#4791\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[BREAKING] Remove LogData and extend SDK LogRecord to have instrumentation scope\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4676\"\u003e#4676\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[BREAKING] Rename several classes from Log to LogRecord\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4647\"\u003e#4647\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMigration Guide:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eLogData\u003c/code\u003e has been removed. Users should update their code as follows:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFor Log Exporters:\u003c/strong\u003e Change from \u003ccode\u003eSequence[LogData]\u003c/code\u003e to \u003ccode\u003eSequence[ReadableLogRecord]\u003c/code\u003e\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before\nfrom opentelemetry.sdk._logs import LogData\ndef export(self, batch: Sequence[LogData]) -\u0026gt; LogRecordExportResult:\n    ...\n\u003ch1\u003eAfter\u003c/h1\u003e\n\u003cp\u003efrom opentelemetry.sdk._logs import ReadableLogRecord\ndef export(self, batch: Sequence[ReadableLogRecord]) -\u0026gt; LogRecordExportResult:\n...\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFor Log Processors:\u003c/strong\u003e Use \u003ccode\u003eReadWriteLogRecord\u003c/code\u003e for processing, \u003ccode\u003eReadableLogRecord\u003c/code\u003e for exporting\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before\nfrom opentelemetry.sdk._logs import LogData\ndef on_emit(self, log_data: LogData):\n    ...\n\u003ch1\u003eAfter\u003c/h1\u003e\n\u003cp\u003efrom opentelemetry.sdk._logs import ReadWriteLogRecord, ReadableLogRecord\ndef on_emit(self, log_record: ReadWriteLogRecord):\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\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/open-telemetry/opentelemetry-python/commit/b4c13279187941b561de5d62e6483a91759ba123\"\u003e\u003ccode\u003eb4c1327\u003c/code\u003e\u003c/a\u003e Prepare release 1.39.1/0.60b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4851\"\u003e#4851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/2fdd6587582febe0978d4b841c0f9ec92596d89b\"\u003e\u003ccode\u003e2fdd658\u003c/code\u003e\u003c/a\u003e Silence events warnings for internal users (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4850\"\u003e#4850\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/dc0a9b340446b985cdebb6f45d70eab3e042c92a\"\u003e\u003ccode\u003edc0a9b3\u003c/code\u003e\u003c/a\u003e Prepare release 1.39.0/0.60b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4833\"\u003e#4833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/cd150c3a201df6ff55c5a9b40ee877717d973a82\"\u003e\u003ccode\u003ecd150c3\u003c/code\u003e\u003c/a\u003e Fix changelog before the release (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4831\"\u003e#4831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/382fa46621953a80a6659bc4fb0a8266c4c982fc\"\u003e\u003ccode\u003e382fa46\u003c/code\u003e\u003c/a\u003e Mark events API/SDK as deprecated (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4654\"\u003e#4654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/5307dd0a6cabea2877a67e067cf81be5285d586b\"\u003e\u003ccode\u003e5307dd0\u003c/code\u003e\u003c/a\u003e Fix errors on serialization of values that are not AnyValue in LogRecord attr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/8615ba0a0bc675d6ccad6693c637f009fec727eb\"\u003e\u003ccode\u003e8615ba0\u003c/code\u003e\u003c/a\u003e Fix type checking for built in metric exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4820\"\u003e#4820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/62da90eda4b1348730180ce2fa0aeae72e09c7ed\"\u003e\u003ccode\u003e62da90e\u003c/code\u003e\u003c/a\u003e Add lmolkova to approvers (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4812\"\u003e#4812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/61bda605d71498b15a13a106ed7564eaea9f642b\"\u003e\u003ccode\u003e61bda60\u003c/code\u003e\u003c/a\u003e Fix meeting and typos (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4817\"\u003e#4817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/546e47b0001b40ca777515325953106e81ed8dbd\"\u003e\u003ccode\u003e546e47b\u003c/code\u003e\u003c/a\u003e [logs-api/sdk] Rename several classes from Log to LogRecord (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4647\"\u003e#4647\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.30.0...v1.39.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-django` from 0.51b0 to 0.60b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-django's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.0.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to \u003ca href=\"https://semver.org/spec/v2.0.0.html\"\u003eSemantic Versioning\u003c/a\u003e.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!NOTE]\nThe following components are released independently and maintain individual CHANGELOG files.\nUse \u003ca href=\"https://github.com/search?q=repo%3Aopen-telemetry%2Fopentelemetry-python-contrib+path%3A**%2FCHANGELOG.md\u0026amp;type=code\"\u003ethis search for a list of all CHANGELOG.md files in this repo\u003c/a\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eUnreleased\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-confluent-kafka\u003c/code\u003e: Loosen confluent-kafka upper bound to \u0026lt;3.0.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4289\"\u003e#4289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add support for wrapt 2.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4203\"\u003e#4203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-psycopg2\u003c/code\u003e: Add parameter \u003ccode\u003ecapture_parameters\u003c/code\u003e to instrumentor.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4212\"\u003e#4212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-botocore\u003c/code\u003e: Add support for instrumenting \u003ccode\u003eaiobotocore\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4049\"\u003e#4049\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: Replace deprecated \u003ccode\u003eSpanAttributes\u003c/code\u003e from \u003ccode\u003eopentelemetry.semconv.trace\u003c/code\u003e with \u003ccode\u003eopentelemetry.semconv._incubating.attributes\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4339\"\u003e#4339\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-confluent-kafka\u003c/code\u003e: Skip \u003ccode\u003erecv\u003c/code\u003e span creation when \u003ccode\u003epoll()\u003c/code\u003e returns no message or \u003ccode\u003econsume()\u003c/code\u003e returns an empty list, avoiding empty spans on idle polls\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4349\"\u003e#4349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix intermittent \u003ccode\u003eCore Contrib Test\u003c/code\u003e CI failures caused by GitHub git CDN SHA propagation lag by installing core packages from the already-checked-out local copy instead of a second git clone\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4305\"\u003e#4305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't import module in unwrap if not already imported\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4321\"\u003e#4321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add recursion guard in LoggingHandler.emit to prevent deadlock\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4302\"\u003e#4302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-grpc\u003c/code\u003e: Fix bidirectional streaming RPCs raising \u003ccode\u003eAttributeError: 'generator' object has no attribute 'add_done_callback'\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4259\"\u003e#4259\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-boto\u003c/code\u003e: Remove instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4303\"\u003e#4303\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.40.0/0.61b0 (2026-03-04)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4193\"\u003e#4193\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\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-logging` from 0.51b0 to 0.60b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-logging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.0.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to \u003ca href=\"https://semver.org/spec/v2.0.0.html\"\u003eSemantic Versioning\u003c/a\u003e.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!NOTE]\nThe following components are released independently and maintain individual CHANGELOG files.\nUse \u003ca href=\"https://github.com/search?q=repo%3Aopen-telemetry%2Fopentelemetry-python-contrib+path%3A**%2FCHANGELOG.md\u0026amp;type=code\"\u003ethis search for a list of all CHANGELOG.md files in this repo\u003c/a\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eUnreleased\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-confluent-kafka\u003c/code\u003e: Loosen confluent-kafka upper bound to \u0026lt;3.0.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4289\"\u003e#4289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add support for wrapt 2.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4203\"\u003e#4203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-psycopg2\u003c/code\u003e: Add parameter \u003ccode\u003ecapture_parameters\u003c/code\u003e to instrumentor.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4212\"\u003e#4212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-botocore\u003c/code\u003e: Add support for instrumenting \u003ccode\u003eaiobotocore\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4049\"\u003e#4049\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: Replace deprecated \u003ccode\u003eSpanAttributes\u003c/code\u003e from \u003ccode\u003eopentelemetry.semconv.trace\u003c/code\u003e with \u003ccode\u003eopentelemetry.semconv._incubating.attributes\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4339\"\u003e#4339\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-confluent-kafka\u003c/code\u003e: Skip \u003ccode\u003erecv\u003c/code\u003e span creation when \u003ccode\u003epoll()\u003c/code\u003e returns no message or \u003ccode\u003econsume()\u003c/code\u003e returns an empty list, avoiding empty spans on idle polls\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4349\"\u003e#4349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix intermittent \u003ccode\u003eCore Contrib Test\u003c/code\u003e CI failures caused by GitHub git CDN SHA propagation lag by installing core packages from the already-checked-out local copy instead of a second git clone\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4305\"\u003e#4305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't import module in unwrap if not already imported\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4321\"\u003e#4321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add recursion guard in LoggingHandler.emit to prevent deadlock\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4302\"\u003e#4302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-grpc\u003c/code\u003e: Fix bidirectional streaming RPCs raising \u003ccode\u003eAttributeError: 'generator' object has no attribute 'add_done_callback'\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4259\"\u003e#4259\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-boto\u003c/code\u003e: Remove instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4303\"\u003e#4303\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.40.0/0.61b0 (2026-03-04)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4193\"\u003e#4193\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\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-requests` from 0.51b0 to 0.60b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-requests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.0.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to \u003ca href=\"https://semver.org/spec/v2.0.0.html\"\u003eSemantic Versioning\u003c/a\u003e.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!NOTE]\nThe following components are released independently and maintain individual CHANGELOG files.\nUse \u003ca href=\"https://github.com/search?q=repo%3Aopen-telemetry%2Fopentelemetry-python-contrib+path%3A**%2FCHANGELOG.md\u0026amp;type=code\"\u003ethis search for a list of all CHANGELOG.md files in this repo\u003c/a\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eUnreleased\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-confluent-kafka\u003c/code\u003e: Loosen confluent-kafka upper bound to \u0026lt;3.0.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4289\"\u003e#4289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add support for wrapt 2.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4203\"\u003e#4203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-psycopg2\u003c/code\u003e: Add parameter \u003ccode\u003ecapture_parameters\u003c/code\u003e to instrumentor.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4212\"\u003e#4212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-botocore\u003c/code\u003e: Add support for instrumenting \u003ccode\u003eaiobotocore\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4049\"\u003e#4049\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: Replace deprecated \u003ccode\u003eSpanAttributes\u003c/code\u003e from \u003ccode\u003eopentelemetry.semconv.trace\u003c/code\u003e with \u003ccode\u003eopentelemetry.semconv._incubating.attributes\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4339\"\u003e#4339\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-confluent-kafka\u003c/code\u003e: Skip \u003ccode\u003erecv\u003c/code\u003e span creation when \u003ccode\u003epoll()\u003c/code\u003e returns no message or \u003ccode\u003econsume()\u003c/code\u003e returns an empty list, avoiding empty spans on idle polls\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4349\"\u003e#4349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix intermittent \u003ccode\u003eCore Contrib Test\u003c/code\u003e CI failures caused by GitHub git CDN SHA propagation lag by installing core packages from the already-checked-out local copy instead of a second git clone\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4305\"\u003e#4305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't import module in unwrap if not already imported\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4321\"\u003e#4321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add recursion guard in LoggingHandler.emit to prevent deadlock\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4302\"\u003e#4302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-grpc\u003c/code\u003e: Fix bidirectional streaming RPCs raising \u003ccode\u003eAttributeError: 'generator' object has no attribute 'add_done_callback'\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4259\"\u003e#4259\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-boto\u003c/code\u003e: Remove instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4303\"\u003e#4303\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.40.0/0.61b0 (2026-03-04)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4193\"\u003e#4193\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\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-sdk` from 1.30.0 to 1.39.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/v1.39.1/CHANGELOG.md\"\u003eopentelemetry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.39.1/0.60b1 (2025-12-11)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSilence events API warnings for internal users\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4847\"\u003e#4847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.39.0/0.60b0 (2025-12-03)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e: Convert objects of any type other than AnyValue in attributes to string to be exportable\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4808\"\u003e#4808\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edocs: Added sqlcommenter example\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4734\"\u003e#4734\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ebuild: bump ruff to 0.14.1\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4782\"\u003e#4782\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eopentelemetry-exporter-credential-provider-gcp\u003c/code\u003e as an optional dependency to \u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e\nand \u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4760\"\u003e#4760\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003esemantic-conventions: Bump to 1.38.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4791\"\u003e#4791\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[BREAKING] Remove LogData and extend SDK LogRecord to have instrumentation scope\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4676\"\u003e#4676\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[BREAKING] Rename several classes from Log to LogRecord\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4647\"\u003e#4647\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMigration Guide:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eLogData\u003c/code\u003e has been removed. Users should update their code as follows:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFor Log Exporters:\u003c/strong\u003e Change from \u003ccode\u003eSequence[LogData]\u003c/code\u003e to \u003ccode\u003eSequence[ReadableLogRecord]\u003c/code\u003e\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before\nfrom opentelemetry.sdk._logs import LogData\ndef export(self, batch: Sequence[LogData]) -\u0026gt; LogRecordExportResult:\n    ...\n\u003ch1\u003eAfter\u003c/h1\u003e\n\u003cp\u003efrom opentelemetry.sdk._logs import ReadableLogRecord\ndef export(self, batch: Sequence[ReadableLogRecord]) -\u0026gt; LogRecordExportResult:\n...\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFor Log Processors:\u003c/strong\u003e Use \u003ccode\u003eReadWriteLogRecord\u003c/code\u003e for processing, \u003ccode\u003eReadableLogRecord\u003c/code\u003e for exporting\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before\nfrom opentelemetry.sdk._logs import LogData\ndef on_emit(self, log_data: LogData):\n    ...\n\u003ch1\u003eAfter\u003c/h1\u003e\n\u003cp\u003efrom opentelemetry.sdk._logs import ReadWriteLogRecord, ReadableLogRecord\ndef on_emit(self, log_record: ReadWriteLogRecord):\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\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/open-telemetry/opentelemetry-python/commit/b4c13279187941b561de5d62e6483a91759ba123\"\u003e\u003ccode\u003eb4c1327\u003c/code\u003e\u003c/a\u003e Prepare release 1.39.1/0.60b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4851\"\u003e#4851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/2fdd6587582febe0978d4b841c0f9ec92596d89b\"\u003e\u003ccode\u003e2fdd658\u003c/code\u003e\u003c/a\u003e Silence events warnings for internal users (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4850\"\u003e#4850\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/dc0a9b340446b985cdebb6f45d70eab3e042c92a\"\u003e\u003ccode\u003edc0a9b3\u003c/code\u003e\u003c/a\u003e Prepare release 1.39.0/0.60b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4833\"\u003e#4833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/cd150c3a201df6ff55c5a9b40ee877717d973a82\"\u003e\u003ccode\u003ecd150c3\u003c/code\u003e\u003c/a\u003e Fix changelog before the release (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4831\"\u003e#4831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/382fa46621953a80a6659bc4fb0a8266c4c982fc\"\u003e\u003ccode\u003e382fa46\u003c/code\u003e\u003c/a\u003e Mark events API/SDK as deprecated (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4654\"\u003e#4654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/5307dd0a6cabea2877a67e067cf81be5285d586b\"\u003e\u003ccode\u003e5307dd0\u003c/code\u003e\u003c/a\u003e Fix errors on serialization of values that are not AnyValue in LogRecord attr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/8615ba0a0bc675d6ccad6693c637f009fec727eb\"\u003e\u003ccode\u003e8615ba0\u003c/code\u003e\u003c/a\u003e Fix type checking for built in metric exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4820\"\u003e#4820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/62da90eda4b1348730180ce2fa0aeae72e09c7ed\"\u003e\u003ccode\u003e62da90e\u003c/code\u003e\u003c/a\u003e Add lmolkova to approvers (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4812\"\u003e#4812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/61bda605d71498b15a13a106ed7564eaea9f642b\"\u003e\u003ccode\u003e61bda60\u003c/code\u003e\u003c/a\u003e Fix meeting and typos (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4817\"\u003e#4817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/546e47b0001b40ca777515325953106e81ed8dbd\"\u003e\u003ccode\u003e546e47b\u003c/code\u003e\u003c/a\u003e [logs-api/sdk] Rename several classes from Log to LogRecord (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4647\"\u003e#4647\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.30.0...v1.39.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phonenumbers` from 9.0.21 to 9.0.26\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/07e2c75b1dc1d94c806755e4842410e19cd1e17e\"\u003e\u003ccode\u003e07e2c75\u003c/code\u003e\u003c/a\u003e Prep for 9.0.26 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/55522da42bff8bd7eefd08b17c978971bc60e135\"\u003e\u003ccode\u003e55522da\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/8ca762b2309a1df12f2eadf601ce413bf3cd1826\"\u003e\u003ccode\u003e8ca762b\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.26\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/c4d8bac7ec270537b05834520c8cee08dedf2743\"\u003e\u003ccode\u003ec4d8bac\u003c/code\u003e\u003c/a\u003e Prep for 9.0.25 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/17db64648ac55e3e519716bb9d2cdf568737b102\"\u003e\u003ccode\u003e17db646\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/d08f6b4b541f7b5811469ad883db1daf620e259b\"\u003e\u003ccode\u003ed08f6b4\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/69451b21e20b240e715d63c20353c2ad13ffee82\"\u003e\u003ccode\u003e69451b2\u003c/code\u003e\u003c/a\u003e Prep for 9.0.24 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/f59bdd69ee750f680250cce67f82c824f648c734\"\u003e\u003ccode\u003ef59bdd6\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/3ceb9f5fec321768c5d940d9cdc41672a4236301\"\u003e\u003ccode\u003e3ceb9f5\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.24\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/d439fae6fdeee53fab86534737be8eb8deff7371\"\u003e\u003ccode\u003ed439fae\u003c/code\u003e\u003c/a\u003e tools: add cd - to instructions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.21...v9.0.26\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.10.1 to 2.12.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.12.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd typing_extensions dependency for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/jpadilla\"\u003e\u003ccode\u003e@​jpadilla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1151\"\u003ejpadilla/pyjwt#1151\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.12.0\u003c/h2\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. by \u003ca href=\"https://github.com/dmbs335\"\u003e\u003ccode\u003e@​dmbs335\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-752w-5fwx-jx9f\"\u003eGHSA-752w-5fwx-jx9f\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1132\"\u003ejpadilla/pyjwt#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(docs): fix docs build by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1137\"\u003ejpadilla/pyjwt#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAnnotate PyJWKSet.keys for pyright by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1134\"\u003ejpadilla/pyjwt#1134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: close HTTPError to prevent ResourceWarning on Python 3.14 by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1133\"\u003ejpadilla/pyjwt#1133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove superfluous constants by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1136\"\u003ejpadilla/pyjwt#1136\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1135\"\u003ejpadilla/pyjwt#1135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(tests): enable mypy by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1138\"\u003ejpadilla/pyjwt#1138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 7 to 8 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/jpadilla/pyjwt/pull/1142\"\u003ejpadilla/pyjwt#1142\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1141\"\u003ejpadilla/pyjwt#1141\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1145\"\u003ejpadilla/pyjwt#1145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: do not store reference to algorithms dict on PyJWK by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1143\"\u003ejpadilla/pyjwt#1143\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse PyJWK algorithm when encoding without explicit algorithm by \u003ca href=\"https://github.com/jpadilla\"\u003e\u003ccode\u003e@​jpadilla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1148\"\u003ejpadilla/pyjwt#1148\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/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1137\"\u003ejpadilla/pyjwt#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1133\"\u003ejpadilla/pyjwt#1133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed type error in comment by \u003ca href=\"https://github.com/shuhaib-aot\"\u003e\u003ccode\u003e@​shuhaib-aot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1026\"\u003ejpadilla/pyjwt#1026\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1018\"\u003ejpadilla/pyjwt#1018\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1033\"\u003ejpadilla/pyjwt#1033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake note of use of leeway with nbf by \u003ca href=\"https://github.com/djw8605\"\u003e\u003ccode\u003e@​djw8605\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1034\"\u003ejpadilla/pyjwt#1034\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1035\"\u003ejpadilla/pyjwt#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/964\"\u003e#964\u003c/a\u003e: Validate key against allowed types for Algorithm family by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/985\"\u003ejpadilla/pyjwt#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1024\"\u003e#1024\u003c/a\u003e: Add iterator for PyJWKSet by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1041\"\u003ejpadilla/pyjwt#1041\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1039\"\u003e#1039\u003c/a\u003e: Add iss, issuer type checks by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1040\"\u003ejpadilla/pyjwt#1040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/660\"\u003e#660\u003c/a\u003e: Improve typing/logic for \u003ccode\u003eoptions\u003c/code\u003e in decode, decode_complete; Improve docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1045\"\u003ejpadilla/pyjwt#1045\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1042\"\u003ejpadilla/pyjwt#1042\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1052\"\u003ejpadilla/pyjwt#1052\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1053\"\u003ejpadilla/pyjwt#1053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1022\"\u003e#1022\u003c/a\u003e: Map \u003ccode\u003ealgorithm=None\u003c/code\u003e to \u0026quot;none\u0026quot; by \u003ca href=\"https://github.com/qqii\"\u003e\u003ccode\u003e@​qqii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1056\"\u003ejpadilla/pyjwt#1056\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1055\"\u003ejpadilla/pyjwt#1055\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1058\"\u003ejpadilla/pyjwt#1058\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1060\"\u003ejpadilla/pyjwt#1060\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1061\"\u003ejpadilla/pyjwt#1061\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/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.12.1 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Add missing ``typing_extensions`` dependency for Python \u0026lt; 3.11 in `[#1150](https://github.com/jpadilla/pyjwt/issues/1150) \u0026lt;https://github.com/jpadilla/pyjwt/issues/1150\u0026gt;`__\n\u003ch2\u003e\u003ccode\u003ev2.12.0 \u0026amp;lt;https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\u0026amp;gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAnnotate PyJWKSet.keys for pyright by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1134](https://github.com/jpadilla/pyjwt/issues/1134) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1134\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eClose \u003ccode\u003eHTTPError\u003c/code\u003e response to prevent \u003ccode\u003eResourceWarning\u003c/code\u003e on Python 3.14 by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1133](https://github.com/jpadilla/pyjwt/issues/1133) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1133\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDo not keep \u003ccode\u003ealgorithms\u003c/code\u003e dict in PyJWK instances by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1143](https://github.com/jpadilla/pyjwt/issues/1143) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1143\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eValidate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. by \u003ca href=\"https://github.com/dmbs335\"\u003e\u003ccode\u003e@​dmbs335\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003eGHSA-752w-5fwx-jx9f \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-752w-5fwx-jx9f\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eUse PyJWK algorithm when encoding without explicit algorithm in \u003ccode\u003e[#1148](https://github.com/jpadilla/pyjwt/issues/1148) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1148\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAdded\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Docs: Add ``PyJWKClient`` API reference and document the two-tier caching system (JWK Set cache and signing key LRU cache).\n\u003ch2\u003e\u003ccode\u003ev2.11.0 \u0026amp;lt;https://github.com/jpadilla/pyjwt/compare/2.10.1...2.11.0\u0026amp;gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnforce ECDSA curve validation per RFC 7518 Section 3.4.\u003c/li\u003e\n\u003cli\u003eFix build system warnings by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1105](https://github.com/jpadilla/pyjwt/issues/1105) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1105\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eValidate key against allowed types for Algorithm family in \u003ccode\u003e[#964](https://github.com/jpadilla/pyjwt/issues/964) \u0026lt;https://github.com/jpadilla/pyjwt/pull/964\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eAdd iterator for JWKSet in \u003ccode\u003e[#1041](https://github.com/jpadilla/pyjwt/issues/1041) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1041\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eValidate \u003ccode\u003eiss\u003c/code\u003e claim is a string during encoding and decoding by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1040](https://github.com/jpadilla/pyjwt/issues/1040) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1040\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eImprove typing/logic for \u003ccode\u003eoptions\u003c/code\u003e in decode, decode_complete by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1045](https://github.com/jpadilla/pyjwt/issues/1045) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1045\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDeclare float supported type for lifespan and timeout by \u003ca href=\"https://github.com/nikitagashkov\"\u003e\u003ccode\u003e@​nikitagashkov\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1068](https://github.com/jpadilla/pyjwt/issues/1068) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1068\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSyntaxWarning\u003c/code\u003e\\s/\u003ccode\u003eDeprecationWarning\u003c/code\u003e\\s caused by invalid escape sequences by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1103](https://github.com/jpadilla/pyjwt/issues/1103) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1103\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Build a shared wheel once to speed up test suite setup times by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1114](https://github.com/jpadilla/pyjwt/issues/1114) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1114\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Test type annotations across all supported Python versions,\nincrease the strictness of the type checking, and remove the mypy pre-commit hook\nby \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1112](https://github.com/jpadilla/pyjwt/issues/1112) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1112\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAdded\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Support Python 3.14, and test against PyPy 3.10 and 3.11 by @kurtmckee in `[#1104](https://github.com/jpadilla/pyjwt/issues/1104) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1104\u0026gt;`__\n- Development: Migrate to ``build`` to test package building in CI by @kurtmckee in `[#1108](https://github.com/jpadilla/pyjwt/issues/1108) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1108\u0026gt;`__\n- Development: Improve coverage config and eliminate unused test suite code by @kurtmckee in `[#1115](https://github.com/jpadilla/pyjwt/issues/1115) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1115\u0026gt;`__\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/jpadilla/pyjwt/commit/a4e1a3d1218b01c5806420b8f16d9308ac4adc30\"\u003e\u003ccode\u003ea4e1a3d\u003c/code\u003e\u003c/a\u003e Add typing_extensions dependency for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/bd9700cca7f9258fadcc429c1034e508025931f2\"\u003e\u003ccode\u003ebd9700c\u003c/code\u003e\u003c/a\u003e Use PyJWK algorithm when encoding without explicit algorithm (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1148\"\u003e#1148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/051ea341b5573fe3edcd53042f347929b92c2b92\"\u003e\u003ccode\u003e051ea34\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/1451d70eca2059bc472703692f0bb0777bc0fe93\"\u003e\u003ccode\u003e1451d70\u003c/code\u003e\u003c/a\u003e fix: do not store reference to algorithms dict on PyJWK (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1143\"\u003e#1143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/f3ba74c106df9ce10e272dfaad96acb4ab3ef5a5\"\u003e\u003ccode\u003ef3ba74c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1145\"\u003e#1145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/0318ffa7b156b01600376e38952bf961382e0724\"\u003e\u003ccode\u003e0318ffa\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1141\"\u003e#1141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/a52753db3c1075ac01337fa8b7cc92b13a19ac09\"\u003e\u003ccode\u003ea52753d\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7 to 8 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1142\"\u003e#1142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/b85050f1d444c6828bb4618ee764443b0a3f5d18\"\u003e\u003ccode\u003eb85050f\u003c/code\u003e\u003c/a\u003e chore(tests): enable mypy (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1138\"\u003e#1138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/1272b264779717cc481c8341f321a7fc8b3aaba6\"\u003e\u003ccode\u003e1272b26\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1135\"\u003e#1135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/99a87287c26cb97c94399084ee4186ee52207a7f\"\u003e\u003ccode\u003e99a8728\u003c/code\u003e\u003c/a\u003e chore: remove superfluous constants (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1136\"\u003e#1136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.10.1...2.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `regex` from 2024.11.6 to 2025.11.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt\"\u003eregex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReplaced atomic operations with mutex on pattern object for free-threaded Python.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.26\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ePR [#598](https://github.com/mrabarnett/mrab-regex/issues/598): Fix race condition in storage caching with atomic operations.\n\u003cp\u003eReplaced use of PyUnicode_GET_LENGTH with PyUnicode_GetLength.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.2.19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eAdded \\z as alias of \\Z, like in re module.\n\u003cp\u003eAdded prefixmatch as alias of match, like in re module.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.1.15\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eRe-uploaded.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.1.14\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eGit issue 596: Specifying {e\u0026lt;=0} causes ca 210× slow-down.\n\u003cp\u003eAdded RISC-V wheels.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2025.11.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eGit issue 594: Support relative PARNO in recursive subpatterns.\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b01d6e7349f1f754f9576e85aa19575acff0c839\"\u003e\u003ccode\u003eb01d6e7\u003c/code\u003e\u003c/a\u003e Git issue 594: Support relative PARNO in recursive subpatterns\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/dd256cd36e6d7da215bb82be8e9b6e846e1140e5\"\u003e\u003ccode\u003edd256cd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mrabarnett/mrab-regex/issues/591\"\u003e#591\u003c/a\u003e from foosel/ci-tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/26454da3a67572197648032fe5e7f9a288fa4a0f\"\u003e\u003ccode\u003e26454da\u003c/code\u003e\u003c/a\u003e 'setup.py' was missing from the source distribution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/1b2ca8c31d8d256f398576ddd3b8c27033d72a63\"\u003e\u003ccode\u003e1b2ca8c\u003c/code\u003e\u003c/a\u003e ci: run tests against sdist\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/609733abe4d957b02406eeec59240850b03ff34d\"\u003e\u003ccode\u003e609733a\u003c/code\u003e\u003c/a\u003e ci: only release if the tests are green\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/fa08ff1ed46ffeb7e618a7def415ddf89d888112\"\u003e\u003ccode\u003efa08ff1\u003c/code\u003e\u003c/a\u003e ci: make sure to always run tests against full matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/f2d31b0844789ec19123aa1b5eb19e070018a981\"\u003e\u003ccode\u003ef2d31b0\u003c/code\u003e\u003c/a\u003e Fixed test in main.yml.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2fd4dc061617b317d0f760f93756a6ae742f055f\"\u003e\u003ccode\u003e2fd4dc0\u003c/code\u003e\u003c/a\u003e Moved tests into subfolder.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/54fa96c29247056b1e9a76eab9dafd929587bbfc\"\u003e\u003ccode\u003e54fa96c\u003c/code\u003e\u003c/a\u003e Re-organised files.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/4359a6a565e6725a899a4e1179c75fdad09030ae\"\u003e\u003ccode\u003e4359a6a\u003c/code\u003e\u003c/a\u003e Enable free-threading support in cibuildwheel in another place.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2024.11.6...2025.11.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.5 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca ...\n\n_Description has been truncated_","html_url":"https://github.com/d3rky/mpt-extension-sdk/pull/14","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3rky%2Fmpt-extension-sdk/issues/14","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/14/packages"},{"uuid":"4166387371","node_id":"PR_kwDOQ-6P2s7Oc7QS","number":249,"state":"open","title":"chore(deps): bump the minor-and-patch group across 1 directory with 2 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-30T01:30:56.000Z","updated_at":"2026-03-30T01:30:56.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"minor-and-patch","update_count":2,"packages":[{"name":"pyjwt","old_version":"2.11.0","new_version":"2.12.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"phonenumbers","old_version":"9.0.25","new_version":"9.0.26","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-and-patch group with 2 updates in the /backend directory: [pyjwt](https://github.com/jpadilla/pyjwt) and [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers).\n\nUpdates `pyjwt` from 2.11.0 to 2.12.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.12.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd typing_extensions dependency for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/jpadilla\"\u003e\u003ccode\u003e@​jpadilla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1151\"\u003ejpadilla/pyjwt#1151\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.12.0\u003c/h2\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. by \u003ca href=\"https://github.com/dmbs335\"\u003e\u003ccode\u003e@​dmbs335\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-752w-5fwx-jx9f\"\u003eGHSA-752w-5fwx-jx9f\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1132\"\u003ejpadilla/pyjwt#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(docs): fix docs build by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1137\"\u003ejpadilla/pyjwt#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAnnotate PyJWKSet.keys for pyright by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1134\"\u003ejpadilla/pyjwt#1134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: close HTTPError to prevent ResourceWarning on Python 3.14 by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1133\"\u003ejpadilla/pyjwt#1133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove superfluous constants by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1136\"\u003ejpadilla/pyjwt#1136\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1135\"\u003ejpadilla/pyjwt#1135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(tests): enable mypy by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1138\"\u003ejpadilla/pyjwt#1138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 7 to 8 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/jpadilla/pyjwt/pull/1142\"\u003ejpadilla/pyjwt#1142\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1141\"\u003ejpadilla/pyjwt#1141\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1145\"\u003ejpadilla/pyjwt#1145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: do not store reference to algorithms dict on PyJWK by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1143\"\u003ejpadilla/pyjwt#1143\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse PyJWK algorithm when encoding without explicit algorithm by \u003ca href=\"https://github.com/jpadilla\"\u003e\u003ccode\u003e@​jpadilla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1148\"\u003ejpadilla/pyjwt#1148\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/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1137\"\u003ejpadilla/pyjwt#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1133\"\u003ejpadilla/pyjwt#1133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.12.1 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Add missing ``typing_extensions`` dependency for Python \u0026lt; 3.11 in `[#1150](https://github.com/jpadilla/pyjwt/issues/1150) \u0026lt;https://github.com/jpadilla/pyjwt/issues/1150\u0026gt;`__\n\u003ch2\u003e\u003ccode\u003ev2.12.0 \u0026amp;lt;https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\u0026amp;gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAnnotate PyJWKSet.keys for pyright by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1134](https://github.com/jpadilla/pyjwt/issues/1134) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1134\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eClose \u003ccode\u003eHTTPError\u003c/code\u003e response to prevent \u003ccode\u003eResourceWarning\u003c/code\u003e on Python 3.14 by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1133](https://github.com/jpadilla/pyjwt/issues/1133) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1133\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDo not keep \u003ccode\u003ealgorithms\u003c/code\u003e dict in PyJWK instances by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1143](https://github.com/jpadilla/pyjwt/issues/1143) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1143\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eValidate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. by \u003ca href=\"https://github.com/dmbs335\"\u003e\u003ccode\u003e@​dmbs335\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003eGHSA-752w-5fwx-jx9f \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-752w-5fwx-jx9f\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eUse PyJWK algorithm when encoding without explicit algorithm in \u003ccode\u003e[#1148](https://github.com/jpadilla/pyjwt/issues/1148) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1148\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAdded\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Docs: Add ``PyJWKClient`` API reference and document the two-tier caching system (JWK Set cache and signing key LRU cache).\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/a4e1a3d1218b01c5806420b8f16d9308ac4adc30\"\u003e\u003ccode\u003ea4e1a3d\u003c/code\u003e\u003c/a\u003e Add typing_extensions dependency for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/bd9700cca7f9258fadcc429c1034e508025931f2\"\u003e\u003ccode\u003ebd9700c\u003c/code\u003e\u003c/a\u003e Use PyJWK algorithm when encoding without explicit algorithm (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1148\"\u003e#1148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/051ea341b5573fe3edcd53042f347929b92c2b92\"\u003e\u003ccode\u003e051ea34\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/1451d70eca2059bc472703692f0bb0777bc0fe93\"\u003e\u003ccode\u003e1451d70\u003c/code\u003e\u003c/a\u003e fix: do not store reference to algorithms dict on PyJWK (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1143\"\u003e#1143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/f3ba74c106df9ce10e272dfaad96acb4ab3ef5a5\"\u003e\u003ccode\u003ef3ba74c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1145\"\u003e#1145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/0318ffa7b156b01600376e38952bf961382e0724\"\u003e\u003ccode\u003e0318ffa\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1141\"\u003e#1141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/a52753db3c1075ac01337fa8b7cc92b13a19ac09\"\u003e\u003ccode\u003ea52753d\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7 to 8 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1142\"\u003e#1142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/b85050f1d444c6828bb4618ee764443b0a3f5d18\"\u003e\u003ccode\u003eb85050f\u003c/code\u003e\u003c/a\u003e chore(tests): enable mypy (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1138\"\u003e#1138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/1272b264779717cc481c8341f321a7fc8b3aaba6\"\u003e\u003ccode\u003e1272b26\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1135\"\u003e#1135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/99a87287c26cb97c94399084ee4186ee52207a7f\"\u003e\u003ccode\u003e99a8728\u003c/code\u003e\u003c/a\u003e chore: remove superfluous constants (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1136\"\u003e#1136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phonenumbers` from 9.0.25 to 9.0.26\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/07e2c75b1dc1d94c806755e4842410e19cd1e17e\"\u003e\u003ccode\u003e07e2c75\u003c/code\u003e\u003c/a\u003e Prep for 9.0.26 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/55522da42bff8bd7eefd08b17c978971bc60e135\"\u003e\u003ccode\u003e55522da\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/8ca762b2309a1df12f2eadf601ce413bf3cd1826\"\u003e\u003ccode\u003e8ca762b\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.26\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.25...v9.0.26\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/lcacchiani/siutindei/pull/249","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/lcacchiani%2Fsiutindei/issues/249","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/249/packages"},{"uuid":"4157370711","node_id":"PR_kwDORnH83s7ON3L8","number":7,"state":"open","title":"chore(deps): bump the minor-and-patches group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":9,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-28T04:05:54.000Z","updated_at":"2026-05-30T09:32:10.381Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"minor-and-patches","update_count":5,"packages":[{"name":"ruff","old_version":"0.14.6","new_version":"0.15.6","repository_url":"https://github.com/astral-sh/ruff"},{"name":"phonenumbers","old_version":"9.0.25","new_version":"9.0.26","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"},{"name":"pysaml2","old_version":"7.5.0","new_version":"7.5.4","repository_url":"https://github.com/IdentityPython/pysaml2"},{"name":"tornado","old_version":"6.5.4","new_version":"6.5.5","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"pympler","old_version":"1.0.1","new_version":"1.1","repository_url":"https://github.com/pympler/pympler"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-and-patches group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.6` | `0.15.6` |\n| [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) | `9.0.25` | `9.0.26` |\n| [pysaml2](https://github.com/IdentityPython/pysaml2) | `7.5.0` | `7.5.4` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.4` | `6.5.5` |\n| [pympler](https://github.com/pympler/pympler) | `1.0.1` | `1.1` |\n\n\nUpdates `ruff` from 0.14.6 to 0.15.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.6\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-12.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for \u003ccode\u003elazy\u003c/code\u003e import parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23755\"\u003e#23755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for star-unpacking of comprehensions (PEP 798) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23788\"\u003e#23788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject semantic syntax errors for lazy imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23757\"\u003e#23757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop a few rules from the preview default set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23879\"\u003e#23879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Flag \u003ccode\u003eVariable.get()\u003c/code\u003e calls outside of task execution context (\u003ccode\u003eAIR003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23584\"\u003e#23584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Flag runtime-varying values in DAG/task constructor arguments (\u003ccode\u003eAIR304\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23631\"\u003e#23631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003edelattr-with-constant\u003c/code\u003e (\u003ccode\u003eB043\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23737\"\u003e#23737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Add \u003ccode\u003eTID254\u003c/code\u003e to enforce lazy imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23777\"\u003e#23777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Allow users to ban lazy imports with \u003ccode\u003eTID254\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23847\"\u003e#23847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Retain \u003ccode\u003elazy\u003c/code\u003e keyword when sorting imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23762\"\u003e#23762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Add \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e automatically (\u003ccode\u003eUP006\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23260\"\u003e#23260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Support \u003ccode\u003enewline\u003c/code\u003e parameter in \u003ccode\u003eFURB101\u003c/code\u003e for Python 3.13+ (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23754\"\u003e#23754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eos-path-commonprefix\u003c/code\u003e (\u003ccode\u003eRUF071\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23814\"\u003e#23814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add unsafe fix for os-path-commonprefix (\u003ccode\u003eRUF071\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23852\"\u003e#23852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Limit \u003ccode\u003eRUF036\u003c/code\u003e to typing contexts; make it unsafe for non-typing-only (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23765\"\u003e#23765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Use starred unpacking for \u003ccode\u003eRUF017\u003c/code\u003e in Python 3.15+ (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23789\"\u003e#23789\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--add-noqa\u003c/code\u003e creating unwanted leading whitespace (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23773\"\u003e#23773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e--add-noqa\u003c/code\u003e breaking shebangs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23577\"\u003e#23577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Fix lambda body formatting for multiline calls and subscripts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23866\"\u003e#23866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Preserve required annotation parentheses in annotated assignments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23865\"\u003e#23865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Preserve type-expression parentheses in the formatter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23867\"\u003e#23867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-annotations\u003c/code\u003e] Fix stack overflow in \u003ccode\u003eANN401\u003c/code\u003e on quoted annotations with escape sequences (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23912\"\u003e#23912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epep8-naming\u003c/code\u003e] Check naming conventions in \u003ccode\u003ematch\u003c/code\u003e pattern bindings (\u003ccode\u003eN806\u003c/code\u003e, \u003ccode\u003eN815\u003c/code\u003e, \u003ccode\u003eN816\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23899\"\u003e#23899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Fix comment duplication in fixes (\u003ccode\u003ePERF401\u003c/code\u003e, \u003ccode\u003ePERF403\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23729\"\u003e#23729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Properly trigger \u003ccode\u003esuper\u003c/code\u003e change in nested class (\u003ccode\u003eUP008\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22677\"\u003e#22677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Avoid syntax errors in \u003ccode\u003eRUF036\u003c/code\u003e fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23764\"\u003e#23764\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Flag \u003ccode\u003eS501\u003c/code\u003e with \u003ccode\u003erequests.request\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23873\"\u003e#23873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-executable\u003c/code\u003e] Fix WSL detection in non-Docker containers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22879\"\u003e#22879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-print\u003c/code\u003e] Ignore \u003ccode\u003epprint\u003c/code\u003e calls with \u003ccode\u003estream=\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23787\"\u003e#23787\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate docs for Markdown code block formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23871\"\u003e#23871\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix misleading description for \u003ccode\u003eB904\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23731\"\u003e#23731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\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/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.6\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-12.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for \u003ccode\u003elazy\u003c/code\u003e import parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23755\"\u003e#23755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for star-unpacking of comprehensions (PEP 798) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23788\"\u003e#23788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject semantic syntax errors for lazy imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23757\"\u003e#23757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop a few rules from the preview default set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23879\"\u003e#23879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Flag \u003ccode\u003eVariable.get()\u003c/code\u003e calls outside of task execution context (\u003ccode\u003eAIR003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23584\"\u003e#23584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Flag runtime-varying values in DAG/task constructor arguments (\u003ccode\u003eAIR304\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23631\"\u003e#23631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003edelattr-with-constant\u003c/code\u003e (\u003ccode\u003eB043\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23737\"\u003e#23737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Add \u003ccode\u003eTID254\u003c/code\u003e to enforce lazy imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23777\"\u003e#23777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Allow users to ban lazy imports with \u003ccode\u003eTID254\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23847\"\u003e#23847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Retain \u003ccode\u003elazy\u003c/code\u003e keyword when sorting imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23762\"\u003e#23762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Add \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e automatically (\u003ccode\u003eUP006\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23260\"\u003e#23260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Support \u003ccode\u003enewline\u003c/code\u003e parameter in \u003ccode\u003eFURB101\u003c/code\u003e for Python 3.13+ (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23754\"\u003e#23754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eos-path-commonprefix\u003c/code\u003e (\u003ccode\u003eRUF071\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23814\"\u003e#23814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add unsafe fix for os-path-commonprefix (\u003ccode\u003eRUF071\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23852\"\u003e#23852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Limit \u003ccode\u003eRUF036\u003c/code\u003e to typing contexts; make it unsafe for non-typing-only (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23765\"\u003e#23765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Use starred unpacking for \u003ccode\u003eRUF017\u003c/code\u003e in Python 3.15+ (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23789\"\u003e#23789\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--add-noqa\u003c/code\u003e creating unwanted leading whitespace (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23773\"\u003e#23773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e--add-noqa\u003c/code\u003e breaking shebangs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23577\"\u003e#23577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Fix lambda body formatting for multiline calls and subscripts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23866\"\u003e#23866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Preserve required annotation parentheses in annotated assignments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23865\"\u003e#23865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Preserve type-expression parentheses in the formatter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23867\"\u003e#23867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-annotations\u003c/code\u003e] Fix stack overflow in \u003ccode\u003eANN401\u003c/code\u003e on quoted annotations with escape sequences (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23912\"\u003e#23912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epep8-naming\u003c/code\u003e] Check naming conventions in \u003ccode\u003ematch\u003c/code\u003e pattern bindings (\u003ccode\u003eN806\u003c/code\u003e, \u003ccode\u003eN815\u003c/code\u003e, \u003ccode\u003eN816\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23899\"\u003e#23899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Fix comment duplication in fixes (\u003ccode\u003ePERF401\u003c/code\u003e, \u003ccode\u003ePERF403\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23729\"\u003e#23729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Properly trigger \u003ccode\u003esuper\u003c/code\u003e change in nested class (\u003ccode\u003eUP008\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22677\"\u003e#22677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Avoid syntax errors in \u003ccode\u003eRUF036\u003c/code\u003e fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23764\"\u003e#23764\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Flag \u003ccode\u003eS501\u003c/code\u003e with \u003ccode\u003erequests.request\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23873\"\u003e#23873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-executable\u003c/code\u003e] Fix WSL detection in non-Docker containers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22879\"\u003e#22879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-print\u003c/code\u003e] Ignore \u003ccode\u003epprint\u003c/code\u003e calls with \u003ccode\u003estream=\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23787\"\u003e#23787\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate docs for Markdown code block formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23871\"\u003e#23871\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix misleading description for \u003ccode\u003eB904\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23731\"\u003e#23731\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/zsol\"\u003e\u003ccode\u003e@​zsol\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/e4c7f357777a2fdd34dbe6a98b1b7d3e7488f675\"\u003e\u003ccode\u003ee4c7f35\u003c/code\u003e\u003c/a\u003e Bump 0.15.6 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23919\"\u003e#23919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/edfe6c17a493669227da45ce7edc786208d9d0b0\"\u003e\u003ccode\u003eedfe6c1\u003c/code\u003e\u003c/a\u003e [ty] Narrow type context during collection literal inference (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23844\"\u003e#23844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/dd16d689abd9d0fa1caf4316e70479fd422b6142\"\u003e\u003ccode\u003edd16d68\u003c/code\u003e\u003c/a\u003e Exclude broken symlink in ecosystem check (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23921\"\u003e#23921\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/3f94c6ac6397cdc3160459d9d6e3892e3f3242dd\"\u003e\u003ccode\u003e3f94c6a\u003c/code\u003e\u003c/a\u003e Fix stack overflow in ANN401 on quoted annotations with escape sequences (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23\"\u003e#23\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/91fc7bd3f936974d7107ba8fd0668bc251a55c58\"\u003e\u003ccode\u003e91fc7bd\u003c/code\u003e\u003c/a\u003e [ty] Fix false-positive diagnostics for PEP-604 union annotations on attribut...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/04229cffb44dfe8c64a0879eb3cea472a08d1565\"\u003e\u003ccode\u003e04229cf\u003c/code\u003e\u003c/a\u003e [ty] Initial test suite for PEP-728 \u003ccode\u003eTypedDict\u003c/code\u003e features (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23832\"\u003e#23832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/728b9d6fd300d492fc2572bcfade170141296f97\"\u003e\u003ccode\u003e728b9d6\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epep8-naming\u003c/code\u003e] Check naming conventions in \u003ccode\u003ematch\u003c/code\u003e pattern bindings (\u003ccode\u003eN806\u003c/code\u003e,...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/88d1eecd261679fc9d1d10f30d814230a7f28513\"\u003e\u003ccode\u003e88d1eec\u003c/code\u003e\u003c/a\u003e [ty] Ensure a \u003ccode\u003etype[]\u003c/code\u003e type \u003ccode\u003eT\u003c/code\u003e is always considered assignable to a union th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/37cdd61406ad4965847c9baa7c3f6ca633887d68\"\u003e\u003ccode\u003e37cdd61\u003c/code\u003e\u003c/a\u003e Fix lambda body formatting for multiline calls and subscripts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23866\"\u003e#23866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a25a4df54aca67d23b4867ddad634fe0768fd6a2\"\u003e\u003ccode\u003ea25a4df\u003c/code\u003e\u003c/a\u003e [ty] Disambiguate duplicate-looking overloaded callables in union display (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.6...0.15.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phonenumbers` from 9.0.25 to 9.0.26\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/07e2c75b1dc1d94c806755e4842410e19cd1e17e\"\u003e\u003ccode\u003e07e2c75\u003c/code\u003e\u003c/a\u003e Prep for 9.0.26 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/55522da42bff8bd7eefd08b17c978971bc60e135\"\u003e\u003ccode\u003e55522da\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/8ca762b2309a1df12f2eadf601ce413bf3cd1826\"\u003e\u003ccode\u003e8ca762b\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.26\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.25...v9.0.26\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pysaml2` from 7.5.0 to 7.5.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/IdentityPython/pysaml2/releases\"\u003epysaml2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion v7.5.4\u003c/h2\u003e\n\u003ch2\u003ev7.5.4 (2025-10-07)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMinor refactor to handle \u003ccode\u003eshelve.open\u003c/code\u003e and \u003ccode\u003edbm\u003c/code\u003e errors\u003c/li\u003e\n\u003cli\u003eRemove import of deprecated \u003ccode\u003ecgi\u003c/code\u003e module\u003c/li\u003e\n\u003cli\u003eReplace deprecated \u003ccode\u003edatetime.utcnow()\u003c/code\u003e by \u003ccode\u003edatetime.now(timezone.utc)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003edeps: Remove the \u003ccode\u003eimportlib_metadata\u003c/code\u003e dependency\u003c/li\u003e\n\u003cli\u003edeps: Remove the \u003ccode\u003eimportlib_resources\u003c/code\u003e dependency\u003c/li\u003e\n\u003cli\u003edeps: Update dependency versions and lockfile\u003c/li\u003e\n\u003cli\u003ebuild: Update pyproject and lockfile to be compatible with PEP 621\u003c/li\u003e\n\u003cli\u003edocs: Correct spelling mistakes\u003c/li\u003e\n\u003cli\u003edocs: Fix interal references/links\u003c/li\u003e\n\u003cli\u003edocs: Clarify units for accepted_time_diff config param\u003c/li\u003e\n\u003cli\u003edocs: Correct documentation for contact_person\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 7.5.3\u003c/h2\u003e\n\u003ch2\u003e7.5.3 (2025-10-04)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/IdentityPython/pysaml2/issues/973\"\u003e#973\u003c/a\u003e Fix prepare_for_negotiated_authenticate to avoid double signing redirect requests\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 7.5.2\u003c/h2\u003e\n\u003ch2\u003e7.5.2 (2025-02-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInclude the XSD of the XML Encryption Syntax and Processing Version 1.1 to the schema validator\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 7.5.1\u003c/h2\u003e\n\u003ch2\u003e7.5.1 (2025-02-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edeps: restrict pyOpenSSL up to v24.2.1 until it is replaced\u003c/li\u003e\n\u003cli\u003edeps: update dependncies for the lockfile and examples\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/IdentityPython/pysaml2/blob/master/CHANGELOG.md\"\u003epysaml2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.5.4 (2025-10-07)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMinor refactor to handle \u003ccode\u003eshelve.open\u003c/code\u003e and \u003ccode\u003edbm\u003c/code\u003e errors\u003c/li\u003e\n\u003cli\u003eRemove import of deprecated \u003ccode\u003ecgi\u003c/code\u003e module\u003c/li\u003e\n\u003cli\u003eReplace deprecated \u003ccode\u003edatetime.utcnow()\u003c/code\u003e by \u003ccode\u003edatetime.now(timezone.utc)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003edeps: Remove the \u003ccode\u003eimportlib_metadata\u003c/code\u003e dependency\u003c/li\u003e\n\u003cli\u003edeps: Remove the \u003ccode\u003eimportlib_resources\u003c/code\u003e dependency\u003c/li\u003e\n\u003cli\u003edeps: Update dependency versions and lockfile\u003c/li\u003e\n\u003cli\u003ebuild: Update pyproject and lockfile to be compatible with PEP 621\u003c/li\u003e\n\u003cli\u003edocs: Correct spelling mistakes\u003c/li\u003e\n\u003cli\u003edocs: Fix interal references/links\u003c/li\u003e\n\u003cli\u003edocs: Clarify units for accepted_time_diff config param\u003c/li\u003e\n\u003cli\u003edocs: Correct documentation for contact_person\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.5.3 (2025-10-04)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/IdentityPython/pysaml2/issues/973\"\u003e#973\u003c/a\u003e Fix prepare_for_negotiated_authenticate to avoid double signing redirect requests\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.5.2 (2025-02-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInclude the XSD of the XML Encryption Syntax and Processing Version 1.1 to the schema validator\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.5.1 (2025-02-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edeps: restrict pyOpenSSL up to v24.2.1 until it is replaced\u003c/li\u003e\n\u003cli\u003edeps: update dependencies for the lockfile and examples\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/IdentityPython/pysaml2/commit/9cf71f7f9e37e2bfa10d885ffe6252743b84bfb8\"\u003e\u003ccode\u003e9cf71f7\u003c/code\u003e\u003c/a\u003e Release version 7.5.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IdentityPython/pysaml2/commit/c3ec7199d117c2918b5e5057ee608636c12579ac\"\u003e\u003ccode\u003ec3ec719\u003c/code\u003e\u003c/a\u003e Refactor _shelve_compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IdentityPython/pysaml2/commit/1d6ea6024efc84486b668a9d375b8eb9d983a80a\"\u003e\u003ccode\u003e1d6ea60\u003c/code\u003e\u003c/a\u003e Remove import of deprecated cgi module\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IdentityPython/pysaml2/commit/c45eb9df8248ad983b220bb1fd2b4e8ed779a40d\"\u003e\u003ccode\u003ec45eb9d\u003c/code\u003e\u003c/a\u003e Replace deprecated datetime.utcnow() by datetime.now(timezone.utc)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IdentityPython/pysaml2/commit/178f6d12b43a52a37b59b2ed1fee308af3537082\"\u003e\u003ccode\u003e178f6d1\u003c/code\u003e\u003c/a\u003e Remove unneeded dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IdentityPython/pysaml2/commit/1f0a25a5cf122e47aaafbfd93397d095ca9005e4\"\u003e\u003ccode\u003e1f0a25a\u003c/code\u003e\u003c/a\u003e remove importlib_metadata import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IdentityPython/pysaml2/commit/099f716ae7245732dfb302a69074a331914136ff\"\u003e\u003ccode\u003e099f716\u003c/code\u003e\u003c/a\u003e remove importlib_resources imports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IdentityPython/pysaml2/commit/3fa11ee15db1a69426db3546586ac59056cc6c2c\"\u003e\u003ccode\u003e3fa11ee\u003c/code\u003e\u003c/a\u003e spelling updates.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IdentityPython/pysaml2/commit/4b7887f59a5e24650ad52d05c2285bd5dbb53a3e\"\u003e\u003ccode\u003e4b7887f\u003c/code\u003e\u003c/a\u003e update link.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IdentityPython/pysaml2/commit/bc8d3b4ecce7753f2473100127581c895134541a\"\u003e\u003ccode\u003ebc8d3b4\u003c/code\u003e\u003c/a\u003e update link.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/IdentityPython/pysaml2/compare/v7.5.0...v7.5.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tornado` from 6.5.4 to 6.5.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tornadoweb/tornado/blob/master/docs/releases.rst\"\u003etornado's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease notes\u003c/h1\u003e\n\u003cp\u003e.. toctree::\n:maxdepth: 2\u003c/p\u003e\n\u003cp\u003ereleases/v6.5.5\nreleases/v6.5.4\nreleases/v6.5.3\nreleases/v6.5.2\nreleases/v6.5.1\nreleases/v6.5.0\nreleases/v6.4.2\nreleases/v6.4.1\nreleases/v6.4.0\nreleases/v6.3.3\nreleases/v6.3.2\nreleases/v6.3.1\nreleases/v6.3.0\nreleases/v6.2.0\nreleases/v6.1.0\nreleases/v6.0.4\nreleases/v6.0.3\nreleases/v6.0.2\nreleases/v6.0.1\nreleases/v6.0.0\nreleases/v5.1.1\nreleases/v5.1.0\nreleases/v5.0.2\nreleases/v5.0.1\nreleases/v5.0.0\nreleases/v4.5.3\nreleases/v4.5.2\nreleases/v4.5.1\nreleases/v4.5.0\nreleases/v4.4.3\nreleases/v4.4.2\nreleases/v4.4.1\nreleases/v4.4.0\nreleases/v4.3.0\nreleases/v4.2.1\nreleases/v4.2.0\nreleases/v4.1.0\nreleases/v4.0.2\nreleases/v4.0.1\nreleases/v4.0.0\nreleases/v3.2.2\nreleases/v3.2.1\nreleases/v3.2.0\nreleases/v3.1.1\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/tornadoweb/tornado/commit/7d6465056ceb7a054b3f64cf1c18271753b10482\"\u003e\u003ccode\u003e7d64650\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3586\"\u003e#3586\u003c/a\u003e from bdarnell/update-cibw\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/d05d59b8080a0d5d6a260994c7aad7049209d345\"\u003e\u003ccode\u003ed05d59b\u003c/code\u003e\u003c/a\u003e build: Bump cibuildwheel to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/c2f46732b0ad14bf0db4219c96a945f4b60205f5\"\u003e\u003ccode\u003ec2f4673\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3585\"\u003e#3585\u003c/a\u003e from bdarnell/release-655\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/e5f1aa4b6fa2c16b29024830227838fcb0c79b6f\"\u003e\u003ccode\u003ee5f1aa4\u003c/code\u003e\u003c/a\u003e Release notes and version bump for v6.5.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/78a046f99f89977dfc8ff5a1fe16d298afbeeaca\"\u003e\u003ccode\u003e78a046f\u003c/code\u003e\u003c/a\u003e httputil: Add CRLF to _FORBIDDEN_HEADER_CHARS_RE\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/24a2d96ea115f663b223887deb0060f13974c104\"\u003e\u003ccode\u003e24a2d96\u003c/code\u003e\u003c/a\u003e web: Validate characters in all cookie attributes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/119a195e290c43ad2d63a2cf012c29d43d6ed839\"\u003e\u003ccode\u003e119a195\u003c/code\u003e\u003c/a\u003e httputil: Add limits on multipart form data parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tornadoweb/tornado/compare/v6.5.4...v6.5.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pympler` from 1.0.1 to 1.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pympler/pympler/blob/master/CHANGELOG.md\"\u003epympler's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1 - 2024-06-28\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.11 and 3.12 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRequire pywin32 on Windows\u003c/li\u003e\n\u003cli\u003eUpdate bottle.py to 0.12.25  -- Reported by Ben Poweski, fixed by Chris Adams (\u003ca href=\"https://redirect.github.com/pympler/pympler/issues/158\"\u003e#158\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle sizing of numpy.str and numpy.str_ -- Reported by Rui Xue (\u003ca href=\"https://redirect.github.com/pympler/pympler/issues/155\"\u003e#155\u003c/a\u003e), fixed by Jean Brouwers\u003c/li\u003e\n\u003cli\u003eFix sizing of multiple objects with references to each other\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/pympler/pympler/commit/25578c386cb21231a81066b5262e6101f8e16315\"\u003e\u003ccode\u003e25578c3\u003c/code\u003e\u003c/a\u003e Update version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pympler/pympler/commit/1f588bc12d9623cca86361a49c2e891a42e40abc\"\u003e\u003ccode\u003e1f588bc\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pympler/pympler/commit/c9560b421f9ec5ca447103ff9ba9a4566c348867\"\u003e\u003ccode\u003ec9560b4\u003c/code\u003e\u003c/a\u003e Update changelog and version requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pympler/pympler/commit/b674075c8de622d5f8ec3f6db2080872075e647c\"\u003e\u003ccode\u003eb674075\u003c/code\u003e\u003c/a\u003e Remove Python 3.13 support for now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pympler/pympler/commit/07c31b73f17cccff75032d03cf2976521285eb5b\"\u003e\u003ccode\u003e07c31b7\u003c/code\u003e\u003c/a\u003e Fix RefBrowser on Python 3.11+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pympler/pympler/commit/dd1fecd43c0b4fed77cd16e843bcd37ab9a525eb\"\u003e\u003ccode\u003edd1fecd\u003c/code\u003e\u003c/a\u003e Adapt the garbage collector test to Python 3.11+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pympler/pympler/commit/11c4632318eac0e8eace8b67c1fbf24605b77ced\"\u003e\u003ccode\u003e11c4632\u003c/code\u003e\u003c/a\u003e Catch errors on numpy attribute check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pympler/pympler/commit/3fabce2c5d46e05d3748bb224e42d9e9bd3f9576\"\u003e\u003ccode\u003e3fabce2\u003c/code\u003e\u003c/a\u003e Fix sizing of objects with references to each other\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pympler/pympler/commit/c73234d1e864069e323f0ad47d271d3b83f83244\"\u003e\u003ccode\u003ec73234d\u003c/code\u003e\u003c/a\u003e Install setuptools for all Python versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pympler/pympler/commit/c1d28bd6633d82f9974c3ae93bf6ca8a657fd9c3\"\u003e\u003ccode\u003ec1d28bd\u003c/code\u003e\u003c/a\u003e Temporarily disable build cancellations\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pympler/pympler/compare/1.0.1...1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/sisyphus1212/synapse/pull/7","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/sisyphus1212%2Fsynapse/issues/7","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7/packages"},{"uuid":"4146150306","node_id":"PR_kwDOGfc8987Nz2FI","number":621,"state":"closed","title":"Bump the minor group across 1 directory with 11 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-18T18:44:27.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-26T17:55:41.000Z","updated_at":"2026-04-18T18:44:29.000Z","time_to_close":1990126,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor","update_count":11,"packages":[{"name":"pymongo","old_version":"4.14.0","new_version":"4.16.0","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"pydantic","old_version":"2.12.3","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"phonenumbers","old_version":"9.0.11","new_version":"9.0.26","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"},{"name":"mypy","old_version":"1.17.1","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"openapi-spec-validator","old_version":"0.7.2","new_version":"0.8.4","repository_url":"https://github.com/python-openapi/openapi-spec-validator"},{"name":"ruff","old_version":"0.12.9","new_version":"0.15.7","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pyenchant","old_version":"3.2.2","new_version":"3.3.0","repository_url":"https://github.com/pyenchant/pyenchant"},{"name":"sphinx-autoapi","old_version":"3.6.0","new_version":"3.8.0","repository_url":"https://github.com/readthedocs/sphinx-autoapi"},{"name":"sphinxcontrib-spelling","old_version":"8.0.1","new_version":"8.0.2","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"sphinxext-opengraph","old_version":"0.12.0","new_version":"0.13.0","repository_url":"https://github.com/sphinx-doc/sphinxext-opengraph"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor group with 11 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.14.0` | `4.16.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.3` | `2.12.5` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) | `9.0.11` | `9.0.26` |\n| [mypy](https://github.com/python/mypy) | `1.17.1` | `1.19.1` |\n| [openapi-spec-validator](https://github.com/python-openapi/openapi-spec-validator) | `0.7.2` | `0.8.4` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.12.9` | `0.15.7` |\n| [pyenchant](https://github.com/pyenchant/pyenchant) | `3.2.2` | `3.3.0` |\n| [sphinx-autoapi](https://github.com/readthedocs/sphinx-autoapi) | `3.6.0` | `3.8.0` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.1` | `8.0.2` |\n| [sphinxext-opengraph](https://github.com/sphinx-doc/sphinxext-opengraph) | `0.12.0` | `0.13.0` |\n\n\nUpdates `pymongo` from 4.14.0 to 4.16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/releases\"\u003epymongo's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyMongo 4.16.0\u003c/h2\u003e\n\u003cp\u003eCommunity notes: \u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003ePyMongo 4.15.5\u003c/h2\u003e\n\u003cp\u003eCommunity notes: \u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-15-5-released/332185\"\u003ehttps://www.mongodb.com/community/forums/t/pymongo-4-15-5-released/332185\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ePyMongo 4.15.4\u003c/h2\u003e\n\u003cp\u003eCommunity notes: \u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-15-4-released/331292\"\u003ehttps://www.mongodb.com/community/forums/t/pymongo-4-15-4-released/331292\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ePyMongo 4.15.3\u003c/h2\u003e\n\u003cp\u003eCommunity notes: \u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-15-3-released/329778\"\u003ehttps://www.mongodb.com/community/forums/t/pymongo-4-15-3-released/329778\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ePyMongo 4.15.2\u003c/h2\u003e\n\u003cp\u003eCommunity notes: \u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-15-2-released/329543\"\u003ehttps://www.mongodb.com/community/forums/t/pymongo-4-15-2-released/329543\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ePyMongo 4.15.1\u003c/h2\u003e\n\u003cp\u003eCommunity notes: \u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-15-1-released/328837\"\u003ehttps://www.mongodb.com/community/forums/t/pymongo-4-15-1-released/328837\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ePyMongo 4.15.0\u003c/h2\u003e\n\u003cp\u003eCommunity notes: \u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-15-released/328574\"\u003ehttps://www.mongodb.com/community/forums/t/pymongo-4-15-released/328574\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ePyMongo 4.14.1\u003c/h2\u003e\n\u003cp\u003eCommunity notes: \u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-14-1-released/327511\"\u003ehttps://www.mongodb.com/community/forums/t/pymongo-4-14-1-released/327511\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/mongodb/mongo-python-driver/blob/master/doc/changelog.rst\"\u003epymongo's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChanges in Version 4.16.0 (2026/01/07)\u003c/h2\u003e\n\u003cp\u003ePyMongo 4.16 brings a number of changes including:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved invalid documents from :class:\u003ccode\u003ebson.errors.InvalidDocument\u003c/code\u003e error messages as\ndoing so may leak sensitive user data.\nInstead, invalid documents are stored in :attr:\u003ccode\u003ebson.errors.InvalidDocument.document\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003ePyMongo now requires \u003ccode\u003ednspython\u0026gt;=2.6.1\u003c/code\u003e, since \u003ccode\u003ednspython\u003c/code\u003e 1.0 is no longer maintained.\nThe minimum version is \u003ccode\u003e2.6.1\u003c/code\u003e to account for \u003ccode\u003eCVE-2023-29483 \u0026lt;https://www.cve.org/CVERecord?id=CVE-2023-29483\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eRemoved support for Eventlet.\nEventlet is actively being sunset by its maintainers and has compatibility issues with PyMongo's dnspython dependency.\u003c/li\u003e\n\u003cli\u003eUse Zstandard support from the standard library for Python 3.14+, and use \u003ccode\u003ebackports.zstd\u003c/code\u003e for older versions.\u003c/li\u003e\n\u003cli\u003eFixed return type annotation for \u003ccode\u003efind_one_and_*\u003c/code\u003e methods on :class:\u003ccode\u003e~pymongo.asynchronous.collection.AsyncCollection\u003c/code\u003e\nand :class:\u003ccode\u003e~pymongo.synchronous.collection.Collection\u003c/code\u003e to include \u003ccode\u003eNone\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdded support for NumPy 1D-arrays in :class:\u003ccode\u003ebson.binary.BinaryVector\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003ePrevented :class:\u003ccode\u003e~pymongo.encryption.ClientEncryption\u003c/code\u003e from loading the crypt\nshared library to fix \u0026quot;MongoCryptError: An existing crypt_shared library is\nloaded by the application\u0026quot; unless the linked library search path is set.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanges in Version 4.15.5 (2025/12/02)\u003c/h2\u003e\n\u003cp\u003eVersion 4.15.5 is a bug fix release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug that could cause \u003ccode\u003eAutoReconnect(\u0026quot;connection pool paused\u0026quot;)\u003c/code\u003e errors when cursors fetched more documents from the database after SDAM heartbeat failures.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanges in Version 4.15.4 (2025/10/21)\u003c/h2\u003e\n\u003cp\u003eVersion 4.15.4 is a bug fix release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRelaxed the callback type of :meth:\u003ccode\u003e~pymongo.asynchronous.client_session.AsyncClientSession.with_transaction\u003c/code\u003e to allow the broader Awaitable type rather than only Coroutine objects.\u003c/li\u003e\n\u003cli\u003eAdded the missing Python 3.14 trove classifier to the package metadata.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIssues Resolved\n...............\u003c/p\u003e\n\u003cp\u003eSee the \u003ccode\u003ePyMongo 4.15.4 release notes in JIRA\u003c/code\u003e_ for the list of resolved issues\nin this release.\u003c/p\u003e\n\u003cp\u003e.. _PyMongo 4.15.4 release notes in JIRA: \u003ca href=\"https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=10004\u0026amp;version=47237\"\u003ehttps://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=10004\u0026amp;version=47237\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eChanges in Version 4.15.3 (2025/10/07)\u003c/h2\u003e\n\u003cp\u003eVersion 4.15.3 is a bug fix release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a memory leak when raising :class:\u003ccode\u003ebson.errors.InvalidDocument\u003c/code\u003e with C extensions.\u003c/li\u003e\n\u003cli\u003eFixed the return type of the  :meth:\u003ccode\u003e~pymongo.asynchronous.collection.AsyncCollection.distinct\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/mongodb/mongo-python-driver/commit/32901018ca14d9acb05004a88d65b6ab0b29c877\"\u003e\u003ccode\u003e3290101\u003c/code\u003e\u003c/a\u003e Prepare 4.16.0 release (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2672\"\u003e#2672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/1be94d262dd0281b032b6f9e56d381cac3a7a6d9\"\u003e\u003ccode\u003e1be94d2\u003c/code\u003e\u003c/a\u003e PYTHON-5685 Fix unified spec sync metadata for csot and sessions tests (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2669\"\u003e#2669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/6585d9cb51d5c9b2d85eec4f49b8196612d9e8ee\"\u003e\u003ccode\u003e6585d9c\u003c/code\u003e\u003c/a\u003e PYTHON-2442: Refactor: use _asdict() in _options_dict() (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2670\"\u003e#2670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/fdb1f7ea4abe128ae4e59e3d063fd95d7daaa964\"\u003e\u003ccode\u003efdb1f7e\u003c/code\u003e\u003c/a\u003e PYTHON-5677 Prevent ClientEncryption from loading crypt shared library (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2659\"\u003e#2659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/0cd9763423b85cd37779ea934bf7b1f8be8bbf8e\"\u003e\u003ccode\u003e0cd9763\u003c/code\u003e\u003c/a\u003e Bump zizmorcore/zizmor-action from cb3d8e846e148d1111d90b03375b9c03deceda37 t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/2f263d4d3f11eb4a2b32ace467fd2767c371f4d7\"\u003e\u003ccode\u003e2f263d4\u003c/code\u003e\u003c/a\u003e PYTHON-5680 Fix handling of expectedDocuments in Unified Test Runner (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2665\"\u003e#2665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/e9658b2406232b6bd6ac1d961b368142f8819479\"\u003e\u003ccode\u003ee9658b2\u003c/code\u003e\u003c/a\u003e Add 4.15.5 release date to changelog (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2666\"\u003e#2666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/10dd20405ba19c643a1b305ff84f742b19c40daf\"\u003e\u003ccode\u003e10dd204\u003c/code\u003e\u003c/a\u003e Update coverage[toml] requirement from \u0026lt;=7.10.6,\u0026gt;=5 to \u0026gt;=5,\u0026lt;=7.10.7 (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2662\"\u003e#2662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/130067799cc671d4dcc2f34dafff73c4ef5ddeaf\"\u003e\u003ccode\u003e1300677\u003c/code\u003e\u003c/a\u003e [Spec Resync] 12-22-2025 (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2663\"\u003e#2663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/18c1f142b5b3fd179a677b2736332dc17770b7c2\"\u003e\u003ccode\u003e18c1f14\u003c/code\u003e\u003c/a\u003e PYTHON-5529 Introduce optin setting to await for MinPoolSize population (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2664\"\u003e#2664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mongodb/mongo-python-driver/compare/4.14.0...4.16.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.12.3 to 2.12.5\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.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes 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/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields 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/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\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-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types 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/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict 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/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries 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/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 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/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\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.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\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/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.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes 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/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields 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/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types 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/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict 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/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries 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/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 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/1864\"\u003epydantic-core#1864\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/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-extra-types` from 2.10.5 to 2.11.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-extra-types/releases\"\u003epydantic-extra-types's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix Cron Tests (Happy New Year 🎉 ) by \u003ca href=\"https://github.com/anthonycicc\"\u003e\u003ccode\u003e@​anthonycicc\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/361\"\u003epydantic/pydantic-extra-types#361\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact 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-extra-types/pull/362\"\u003epydantic/pydantic-extra-types#362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/download-artifact from 6 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-extra-types/pull/363\"\u003epydantic/pydantic-extra-types#363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump 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-extra-types/pull/365\"\u003epydantic/pydantic-extra-types#365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd UUID v7 support (and v6/v8) by \u003ca href=\"https://github.com/sshaheerkhann\"\u003e\u003ccode\u003e@​sshaheerkhann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/367\"\u003epydantic/pydantic-extra-types#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: migrate DSN types from pydantic.networks by \u003ca href=\"https://github.com/bBlazewavE\"\u003e\u003ccode\u003e@​bBlazewavE\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/368\"\u003epydantic/pydantic-extra-types#368\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExport \u003ccode\u003eColor\u003c/code\u003e from package \u003ccode\u003e__init__.py\u003c/code\u003e by \u003ca href=\"https://github.com/bBlazewavE\"\u003e\u003ccode\u003e@​bBlazewavE\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/373\"\u003epydantic/pydantic-extra-types#373\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump 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-extra-types/pull/371\"\u003epydantic/pydantic-extra-types#371\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/download-artifact from 7 to 8 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-extra-types/pull/370\"\u003epydantic/pydantic-extra-types#370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 6 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-extra-types/pull/369\"\u003epydantic/pydantic-extra-types#369\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add IBAN (International Bank Account Number) type by \u003ca href=\"https://github.com/toroleapinc\"\u003e\u003ccode\u003e@​toroleapinc\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/372\"\u003epydantic/pydantic-extra-types#372\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔖 Release version 2.11.1  by \u003ca href=\"https://github.com/yezz123\"\u003e\u003ccode\u003e@​yezz123\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/375\"\u003epydantic/pydantic-extra-types#375\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/anthonycicc\"\u003e\u003ccode\u003e@​anthonycicc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/361\"\u003epydantic/pydantic-extra-types#361\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sshaheerkhann\"\u003e\u003ccode\u003e@​sshaheerkhann\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/367\"\u003epydantic/pydantic-extra-types#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bBlazewavE\"\u003e\u003ccode\u003e@​bBlazewavE\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/368\"\u003epydantic/pydantic-extra-types#368\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/toroleapinc\"\u003e\u003ccode\u003e@​toroleapinc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/372\"\u003epydantic/pydantic-extra-types#372\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-extra-types/compare/v2.11.0...v2.11.1\"\u003ehttps://github.com/pydantic/pydantic-extra-types/compare/v2.11.0...v2.11.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs: improve example formatting in PhoneNumber documentation by \u003ca href=\"https://github.com/hengky-kurniawan-1\"\u003e\u003ccode\u003e@​hengky-kurniawan-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/347\"\u003epydantic/pydantic-extra-types#347\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix import typo in the script code's documentation by \u003ca href=\"https://github.com/wesley312\"\u003e\u003ccode\u003e@​wesley312\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/349\"\u003epydantic/pydantic-extra-types#349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/350\"\u003epydantic/pydantic-extra-types#350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump astral-sh/setup-uv from 6 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-extra-types/pull/352\"\u003epydantic/pydantic-extra-types#352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/download-artifact 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-extra-types/pull/351\"\u003epydantic/pydantic-extra-types#351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix: url typo in docstring by \u003ca href=\"https://github.com/lch\"\u003e\u003ccode\u003e@​lch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/355\"\u003epydantic/pydantic-extra-types#355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e♻️ raise \u003ccode\u003eValueError\u003c/code\u003e instead of \u003ccode\u003eAttributeError\u003c/code\u003e on wrong \u003ccode\u003eS3Path\u003c/code\u003e value by \u003ca href=\"https://github.com/Danipulok\"\u003e\u003ccode\u003e@​Danipulok\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/354\"\u003epydantic/pydantic-extra-types#354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/checkout 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-extra-types/pull/357\"\u003epydantic/pydantic-extra-types#357\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor type hints to use built-in tuple syntax  by \u003ca href=\"https://github.com/yezz123\"\u003e\u003ccode\u003e@​yezz123\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/359\"\u003epydantic/pydantic-extra-types#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate version number for release 2.11.0 by \u003ca href=\"https://github.com/yezz123\"\u003e\u003ccode\u003e@​yezz123\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/360\"\u003epydantic/pydantic-extra-types#360\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/wesley312\"\u003e\u003ccode\u003e@​wesley312\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/349\"\u003epydantic/pydantic-extra-types#349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lch\"\u003e\u003ccode\u003e@​lch\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/355\"\u003epydantic/pydantic-extra-types#355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Danipulok\"\u003e\u003ccode\u003e@​Danipulok\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/354\"\u003epydantic/pydantic-extra-types#354\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-extra-types/compare/v2.10.6...v2.11.0\"\u003ehttps://github.com/pydantic/pydantic-extra-types/compare/v2.10.6...v2.11.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.10.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: update credit card brands by \u003ca href=\"https://github.com/LorhanSohaky\"\u003e\u003ccode\u003e@​LorhanSohaky\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/325\"\u003epydantic/pydantic-extra-types#325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix various documentation layout issues 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-extra-types/pull/328\"\u003epydantic/pydantic-extra-types#328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded test coverage for DomainStr validation including punycode and invalid inputs by \u003ca href=\"https://github.com/rhealakhotia\"\u003e\u003ccode\u003e@​rhealakhotia\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/330\"\u003epydantic/pydantic-extra-types#330\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ Add time parsing to \u003ccode\u003ependulum\u003c/code\u003e by \u003ca href=\"https://github.com/yezz123\"\u003e\u003ccode\u003e@​yezz123\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/331\"\u003epydantic/pydantic-extra-types#331\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative path creation on Windows for fixtures by \u003ca href=\"https://github.com/denini08\"\u003e\u003ccode\u003e@​denini08\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/333\"\u003epydantic/pydantic-extra-types#333\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-extra-types/blob/main/HISTORY.md\"\u003epydantic-extra-types's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eCHANGELOG\u003c/h1\u003e\n\u003ch2\u003eLatest Changes\u003c/h2\u003e\n\u003ch2\u003e2.11.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs: improve example formatting in PhoneNumber documentation by \u003ca href=\"https://github.com/hengky-kurniawan-1\"\u003e\u003ccode\u003e@​hengky-kurniawan-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/347\"\u003epydantic/pydantic-extra-types#347\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix import typo in the script code's documentation by \u003ca href=\"https://github.com/wesley312\"\u003e\u003ccode\u003e@​wesley312\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/349\"\u003epydantic/pydantic-extra-types#349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/350\"\u003epydantic/pydantic-extra-types#350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump astral-sh/setup-uv from 6 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-extra-types/pull/352\"\u003epydantic/pydantic-extra-types#352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/download-artifact 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-extra-types/pull/351\"\u003epydantic/pydantic-extra-types#351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix: url typo in docstring by \u003ca href=\"https://github.com/lch\"\u003e\u003ccode\u003e@​lch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/355\"\u003epydantic/pydantic-extra-types#355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e♻️ raise \u003ccode\u003eValueError\u003c/code\u003e instead of \u003ccode\u003eAttributeError\u003c/code\u003e on wrong \u003ccode\u003eS3Path\u003c/code\u003e value by \u003ca href=\"https://github.com/Danipulok\"\u003e\u003ccode\u003e@​Danipulok\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/354\"\u003epydantic/pydantic-extra-types#354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/checkout 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-extra-types/pull/357\"\u003epydantic/pydantic-extra-types#357\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor type hints to use built-in tuple syntax  by \u003ca href=\"https://github.com/yezz123\"\u003e\u003ccode\u003e@​yezz123\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/359\"\u003epydantic/pydantic-extra-types#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate version number for release 2.11.0 by \u003ca href=\"https://github.com/yezz123\"\u003e\u003ccode\u003e@​yezz123\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/360\"\u003epydantic/pydantic-extra-types#360\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.10.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: update credit card brands by \u003ca href=\"https://github.com/LorhanSohaky\"\u003e\u003ccode\u003e@​LorhanSohaky\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/325\"\u003epydantic/pydantic-extra-types#325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix various documentation layout issues 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-extra-types/pull/328\"\u003epydantic/pydantic-extra-types#328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded test coverage for DomainStr validation including punycode and invalid inputs by \u003ca href=\"https://github.com/rhealakhotia\"\u003e\u003ccode\u003e@​rhealakhotia\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/330\"\u003epydantic/pydantic-extra-types#330\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ Add time parsing to \u003ccode\u003ependulum\u003c/code\u003e by \u003ca href=\"https://github.com/yezz123\"\u003e\u003ccode\u003e@​yezz123\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/331\"\u003epydantic/pydantic-extra-types#331\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative path creation on Windows for fixtures by \u003ca href=\"https://github.com/denini08\"\u003e\u003ccode\u003e@​denini08\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/333\"\u003epydantic/pydantic-extra-types#333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump 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-extra-types/pull/336\"\u003epydantic/pydantic-extra-types#336\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/334\"\u003epydantic/pydantic-extra-types#334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/download-artifact from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/335\"\u003epydantic/pydantic-extra-types#335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix-isbn-typos by \u003ca href=\"https://github.com/gem7318\"\u003e\u003ccode\u003e@​gem7318\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/337\"\u003epydantic/pydantic-extra-types#337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e♻️ refactor \u003ccode\u003emac_address\u003c/code\u003e validation logic by \u003ca href=\"https://github.com/Stormageddon37\"\u003e\u003ccode\u003e@​Stormageddon37\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/338\"\u003epydantic/pydantic-extra-types#338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 set \u003ccode\u003e@classmethod\u003c/code\u003e in \u003ccode\u003ephone_numbers\u003c/code\u003e schema by \u003ca href=\"https://github.com/Stormageddon37\"\u003e\u003ccode\u003e@​Stormageddon37\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/339\"\u003epydantic/pydantic-extra-types#339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📝 chore: fix random typos by \u003ca href=\"https://github.com/Stormageddon37\"\u003e\u003ccode\u003e@​Stormageddon37\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/340\"\u003epydantic/pydantic-extra-types#340\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📝 docs: enhance docstring for \u003ccode\u003ePhoneNumber\u003c/code\u003e class with usage examples by \u003ca href=\"https://github.com/hengky-kurniawan-1\"\u003e\u003ccode\u003e@​hengky-kurniawan-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/341\"\u003epydantic/pydantic-extra-types#341\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded cron type by \u003ca href=\"https://github.com/Neko1313\"\u003e\u003ccode\u003e@​Neko1313\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/343\"\u003epydantic/pydantic-extra-types#343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔖 Release version 2.10.6 by \u003ca href=\"https://github.com/yezz123\"\u003e\u003ccode\u003e@​yezz123\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/344\"\u003epydantic/pydantic-extra-types#344\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/efe22fb050b6020950bb4797d36c4aca3c5340ec\"\u003e\u003ccode\u003eefe22fb\u003c/code\u003e\u003c/a\u003e 🔖 Release version 2.11.1  (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/6fc6756c43eb6045eab29c9ab6f37d03f17cc650\"\u003e\u003ccode\u003e6fc6756\u003c/code\u003e\u003c/a\u003e feat: add IBAN (International Bank Account Number) type (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/558e5c891bf86f9dc09fe1bfa47a93bec3f1cd2e\"\u003e\u003ccode\u003e558e5c8\u003c/code\u003e\u003c/a\u003e ⬆ Bump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/369\"\u003e#369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/aab5a5a6a19accb3905cb2825f55a8d10f056186\"\u003e\u003ccode\u003eaab5a5a\u003c/code\u003e\u003c/a\u003e ⬆ Bump actions/download-artifact from 7 to 8 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/89b2a1615d7411f3fbab2319ef77845aee02b3d4\"\u003e\u003ccode\u003e89b2a16\u003c/code\u003e\u003c/a\u003e ⬆ Bump the python-packages group with 2 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/371\"\u003e#371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/496cf00733b33304ea0b8dae97c8b0e6c9c02c94\"\u003e\u003ccode\u003e496cf00\u003c/code\u003e\u003c/a\u003e Export Color from package \u003cstrong\u003einit\u003c/strong\u003e.py (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/07628d1099aa2751d3e9661134a28fa85fe6e2f8\"\u003e\u003ccode\u003e07628d1\u003c/code\u003e\u003c/a\u003e feat: migrate DSN types from pydantic.networks (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/368\"\u003e#368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/b999077b5609188f8634d24a9961b1baeff7b64d\"\u003e\u003ccode\u003eb999077\u003c/code\u003e\u003c/a\u003e Add UUID v7 support (and v6/v8) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/712421fd49fc49f68b68f74913d5e15d346fbcce\"\u003e\u003ccode\u003e712421f\u003c/code\u003e\u003c/a\u003e ⬆ Bump the python-packages group with 4 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/a99dd63e81652f9e51082f6fc27d6997dbf0f070\"\u003e\u003ccode\u003ea99dd63\u003c/code\u003e\u003c/a\u003e ⬆ Bump actions/download-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/363\"\u003e#363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-extra-types/compare/v2.10.5...v2.11.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phonenumbers` from 9.0.11 to 9.0.26\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/07e2c75b1dc1d94c806755e4842410e19cd1e17e\"\u003e\u003ccode\u003e07e2c75\u003c/code\u003e\u003c/a\u003e Prep for 9.0.26 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/55522da42bff8bd7eefd08b17c978971bc60e135\"\u003e\u003ccode\u003e55522da\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/8ca762b2309a1df12f2eadf601ce413bf3cd1826\"\u003e\u003ccode\u003e8ca762b\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.26\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/c4d8bac7ec270537b05834520c8cee08dedf2743\"\u003e\u003ccode\u003ec4d8bac\u003c/code\u003e\u003c/a\u003e Prep for 9.0.25 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/17db64648ac55e3e519716bb9d2cdf568737b102\"\u003e\u003ccode\u003e17db646\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/d08f6b4b541f7b5811469ad883db1daf620e259b\"\u003e\u003ccode\u003ed08f6b4\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/69451b21e20b240e715d63c20353c2ad13ffee82\"\u003e\u003ccode\u003e69451b2\u003c/code\u003e\u003c/a\u003e Prep for 9.0.24 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/f59bdd69ee750f680250cce67f82c824f648c734\"\u003e\u003ccode\u003ef59bdd6\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/3ceb9f5fec321768c5d940d9cdc41672a4236301\"\u003e\u003ccode\u003e3ceb9f5\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.24\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/d439fae6fdeee53fab86534737be8eb8deff7371\"\u003e\u003ccode\u003ed439fae\u003c/code\u003e\u003c/a\u003e tools: add cd - to instructions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.11...v9.0.26\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.17.1 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\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\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/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.17.1...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openapi-spec-validator` from 0.7.2 to 0.8.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-openapi/openapi-spec-validator/releases\"\u003eopenapi-spec-validator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.8.4\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eJsonschema-rs backend \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/478\"\u003e#478\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.8.3\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse resolved cache feature of jsonschema-path \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/479\"\u003e#479\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.8.2\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOpenAPI 3.2 support \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/472\"\u003e#472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OAS 3.1 jsonSchemaDialect-aware schema meta-validation \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/471\"\u003e#471\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.8.1\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCLI version option \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/466\"\u003e#466\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit CLI error controls into validation and subschema modes \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/469\"\u003e#469\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix malformed schema traversal to report validation errors instead of internal exceptions \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/467\"\u003e#467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate declared path parameters against path template \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/470\"\u003e#470\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecates \u003ccode\u003e--error\u003c/code\u003e/\u003ccode\u003e--errors\u003c/code\u003e CLI options \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/469\"\u003e#469\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.8.0\u003c/h2\u003e\n\u003ch2\u003eUpgrades\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eJsonschema-path 0.4 and openapi-schema-validator 0.7 upgrades \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/459\"\u003e#459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 3.13 and 3.14 support \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/392\"\u003e#392\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/457\"\u003e#457\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate openapi-schema-validator version constraint \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/439\"\u003e#439\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBackward incompatibilities\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 and 3.9 drop \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/392\"\u003e#392\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/456\"\u003e#456\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.8.0b3\u003c/h2\u003e\n\u003ch2\u003eUpgrades\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eJsonschema-path 0.4.0b8 upgrade \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/455\"\u003e#455\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/python-openapi/openapi-spec-validator/commit/cca400fbe29ebaea5c3b3e7db04548db260690ea\"\u003e\u003ccode\u003ecca400f\u003c/code\u003e\u003c/a\u003e Version 0.8.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-openapi/openapi-spec-validator/commit/33585eab47df9c3d6bd18479463da15fb0007f36\"\u003e\u003ccode\u003e33585ea\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/478\"\u003e#478\u003c/a\u003e from python-openapi/poc/rust-backend\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-openapi/openapi-spec-validator/commit/a10dfe6ce166865eb36c75b2a473d470cc5bb0e1\"\u003e\u003ccode\u003ea10dfe6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/480\"\u003e#480\u003c/a\u003e from python-openapi/copilot/sub-pr-478\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-openapi/openapi-spec-validator/commit/da9c9cbce67e12764db36886a850eb5a9017dc51\"\u003e\u003ccode\u003eda9c9cb\u003c/code\u003e\u003c/a\u003e Address review feedback: fix docstring, trailing whitespace, f-string, instal...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-openapi/openapi-spec-validator/commit/629f4e2bdfe60ce54c51f8e8cdce54f6f83f1da7\"\u003e\u003ccode\u003e629f4e2\u003c/code\u003e\u003c/a\u003e Initial plan\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-openapi/openapi-spec-validator/commit/df9ba9b77384f1102e98033219feddb64b4e85fa\"\u003e\u003ccode\u003edf9ba9b\u003c/code\u003e\u003c/a\u003e Rust backend\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-openapi/openapi-spec-validator/commit/a093f9c4783792da2b181c03e718844b57cdb19c\"\u003e\u003ccode\u003ea093f9c\u003c/code\u003e\u003c/a\u003e Version 0.8.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-openapi/openapi-spec-validator/commit/0d757b58adc86d3b939b048aa4263ddea6462fd3\"\u003e\u003ccode\u003e0d757b5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/479\"\u003e#479\u003c/a\u003e from python-openapi/feature/upgrade-jsonschema-path-0...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-openapi/openapi-spec-validator/commit/0bbd76166fcd1833dcbe63cf335a3da26fdc9015\"\u003e\u003ccode\u003e0bbd761\u003c/code\u003e\u003c/a\u003e Expose resolved cache\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-openapi/openapi-spec-validator/commit/023da9563279a37bcedb5ffb6208f663e46a53cc\"\u003e\u003ccode\u003e023da95\u003c/code\u003e\u003c/a\u003e Upgrade jsonschema-path 0.4.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-openapi/openapi-spec-validator/compare/0.7.2...0.8.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.12.9 to 0.15.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.7\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisplay output severity in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23845\"\u003e#23845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't show \u003ccode\u003enoqa\u003c/code\u003e hover for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24040\"\u003e#24040\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Recognize \u003ccode\u003epyrefly:\u003c/code\u003e as a pragma comment (\u003ccode\u003eE501\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24019\"\u003e#24019\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't return code actions for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23905\"\u003e#23905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd company AI policy to contributing guide (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24021\"\u003e#24021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument editor features for Markdown code formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23924\"\u003e#23924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Improve phrasing (\u003ccode\u003ePLC0208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24033\"\u003e#24033\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse PEP 639 license information (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19661\"\u003e#19661\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tmimmanuel\"\u003e\u003ccode\u003e@​tmimmanuel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statxc\"\u003e\u003ccode\u003e@​statxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.7\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.7/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/ruff/releases/download/0.15.7/ruff-installer.ps1 | iex\u0026quot;\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.7\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisplay output severity in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23845\"\u003e#23845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't show \u003ccode\u003enoqa\u003c/code\u003e hover for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24040\"\u003e#24040\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Recognize \u003ccode\u003epyrefly:\u003c/code\u003e as a pragma comment (\u003ccode\u003eE501\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24019\"\u003e#24019\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't return code actions for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23905\"\u003e#23905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd company AI policy to contributing guide (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24021\"\u003e#24021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument editor features for Markdown code formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23924\"\u003e#23924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Improve phrasing (\u003ccode\u003ePLC0208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24033\"\u003e#24033\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse PEP 639 license information (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19661\"\u003e#19661\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tmimmanuel\"\u003e\u003ccode\u003e@​tmimmanuel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statxc\"\u003e\u003ccode\u003e@​statxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.6\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-12.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for \u003ccode\u003elazy\u003c/code\u003e import parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23755\"\u003e#23755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for star-unpacking of comprehensions (PEP 798) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23788\"\u003e#23788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject semantic syntax errors for lazy imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23757\"\u003e#23757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop a few rules from the preview default set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23879\"\u003e#23879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Flag \u003ccode\u003eVariable.get()\u003c/code\u003e calls outside of task execution context (\u003ccode\u003eAIR003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23584\"\u003e#23584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Flag runtime-varying values in DAG/task constructor arguments (\u003ccode\u003eAIR304\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23631\"\u003e#23631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003edelattr-with-constant\u003c/code\u003e (\u003ccode\u003eB043\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23737\"\u003e#23737\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/0ef39de46c006994fb1e90f7bd4ba09c0b2c1f79\"\u003e\u003ccode\u003e0ef39de\u003c/code\u003e\u003c/a\u003e Bump 0.15.7 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24049\"\u003e#24049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/beb543b5c666be9fd3f13c88df818f202b63e9d0\"\u003e\u003ccode\u003ebeb543b\u003c/code\u003e\u003c/a\u003e [ty] ecosystem-analyzer: Fail on newly panicking projects (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24043\"\u003e#24043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/378fe730929ccd67a7f2426b3012093da814b31d\"\u003e\u003ccode\u003e378fe73\u003c/code\u003e\u003c/a\u003e Don't show noqa hover for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24040\"\u003e#24040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b5665bd18eecab4d3b5ab1256b36904cd99a4c57\"\u003e\u003ccode\u003eb5665bd\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epylint\u003c/code\u003e] Improve phrasing (\u003ccode\u003ePLC0208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24033\"\u003e#24033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6e20f2219020e61eeae29458013d2d3684f75a79\"\u003e\u003ccode\u003e6e20f22\u003c/code\u003e\u003c/a\u003e test: migrate \u003ccode\u003eshow_settings\u003c/code\u003e and \u003ccode\u003eversion\u003c/code\u003e tests to use \u003ccode\u003eCliTest\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23702\"\u003e#23702\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f99b284c1fe1399a82da7f6669467488017d44a7\"\u003e\u003ccode\u003ef99b284\u003c/code\u003e\u003c/a\u003e Drain file watcher events during test setup (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24030\"\u003e#24030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/744c996c35016a8c0e05aa2823f4f822ac7b842c\"\u003e\u003ccode\u003e744c996\u003c/code\u003e\u003c/a\u003e [ty] Filter out unsatisfiable inference attempts during generic call narrowin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/16160958bdafb6106b6fffc72ffe2e4db0c0ac33\"\u003e\u003ccode\u003e1616095\u003c/code\u003e\u003c/a\u003e [ty] Avoid inferring intersection types for call arguments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23933\"\u003e#23933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7f275f431bf8c60d59601b74d441e9f4bef89f35\"\u003e\u003ccode\u003e7f275f4\u003c/code\u003e\u003c/a\u003e [ty] Pin mypy_primer in \u003ccode\u003esetup_primer_project.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24020\"\u003e#24020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7255e362e4b171a641222279cd28d2ca88a74fdc\"\u003e\u003ccode\u003e7255e36\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epycodestyle\u003c/code\u003e] Recognize \u003ccode\u003epyrefly:\u003c/code\u003e as a pragma comment (\u003ccode\u003eE501\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24019\"\u003e#24019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.12.9...0.15.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyenchant` from 3.2.2 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyenchant/pyenchant/commit/f8b40fdf543dea52e043a89bfbd5d0e0b8ed3c99\"\u003e\u003ccode\u003ef8b40fd\u003c/code\u003e\u003c/a\u003e Bump to 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyenchant/pyenchant/commit/07928e1be608a2b8b33f36594329eb02559e030c\"\u003e\u003ccode\u003e07928e1\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyenchant/pyenchant/commit/bc49633f76781885dea3d1e06422e250347fba50\"\u003e\u003ccode\u003ebc49633\u003c/code\u003e\u003c/a\u003e Bump to 3.3.0rc4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyenchant/pyenchant/commit/f74975f419f79c12b7bf265998114bc85b854a2d\"\u003e\u003ccode\u003ef74975f\u003c/code\u003e\u003c/a\u003e tbump: don't try and make a release after the push\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyenchant/pyenchant/commit/6f32de5ac51d46ab5abdad67306d43abf92001d5\"\u003e\u003ccode\u003e6f32de5\u003c/code\u003e\u003c/a\u003e Bump to 3.3.0rc3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyenchant/pyenchant/commit/86ae615568c368030342c8e38c68ea696b5919dc\"\u003e\u003ccode\u003e86ae615\u003c/code\u003e\u003c/a\u003e Try to publish to pypi.org from GitHub\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyenchant/pyenchant/commit/1dd14706cfcc7439fe6e825ca4e7d4870c0316c2\"\u003e\u003ccode\u003e1dd1470\u003c/code\u003e\u003c/a\u003e Rename build.py -\u0026gt; build_artifacts.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyenchant/pyenchant/commit/6283bcea20bb65522a25af52530c2710a1198f6a\"\u003e\u003ccode\u003e6283bce\u003c/code\u003e\u003c/a\u003e Add workflow to publish to testpypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyenchant/pyenchant/commit/53ab967f5fa7ac7b149793d64d43bf4e812b86e7\"\u003e\u003ccode\u003e53ab967\u003c/code\u003e\u003c/a\u003e Bump to 3.3.0rc2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyenchant/pyenchant/commit/640a82a3c93a5c79bff263720677b417cb9fffd8\"\u003e\u003ccode\u003e640a82a\u003c/code\u003e\u003c/a\u003e rename release -\u0026gt; build, don't use setup.py do build\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyenchant/pyenchant/compare/v3.2.2...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-autoapi` from 3.6.0 to 3.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/releases\"\u003esphinx-autoapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.8.0\u003c/h2\u003e\n\u003ch1\u003eFeatures\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAutodoc-style directives can access members excluded by autoapi_options\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eMisc\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/553\"\u003e#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.7.0\u003c/h2\u003e\n\u003ch1\u003eFeatures\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded autoapi.import warning for when AutoAPI directives are given non-existent objects\u003c/li\u003e\n\u003cli\u003eAdding autoapi_follow_symlinks, which allows api to traverse into symlinked directories when generating the API documentation.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 and officially support Python 3.14\u003c/li\u003e\n\u003cli\u003eSupport rendering PEP-695 type parameters\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBugfixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRender typing_extensions.TypeAlias like other type aliases (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix PythonFunction.overloads typing when source code overload(s) do not provide a return type (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eMisc\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix deprecation warnings raised by astroid and sphinx\u003c/li\u003e\n\u003cli\u003eHandling case where match returns None to fix mypy unit test.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.6.1\u003c/h2\u003e\n\u003ch1\u003eBugfixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate the supported versions of astroid. Fix the breaking change to Import and pass in the AstroidManager to the AstroidBuilder (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/536\"\u003e#536\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/readthedocs/sphinx-autoapi/blob/main/CHANGELOG.rst\"\u003esphinx-autoapi's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.8.0 (2026-03-07)\u003c/h2\u003e\n\u003cp\u003eFeatures\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAutodoc-style directives can access members excluded by autoapi_options\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eMisc\n^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/553\"\u003e#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.7.0 (2026-02-10)\u003c/h2\u003e\n\u003cp\u003eFeatures\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded autoapi.import warning for when AutoAPI directives are given non-existent objects\u003c/li\u003e\n\u003cli\u003eAdding \u003ccode\u003eautoapi_follow_symlinks\u003c/code\u003e, which allows api to traverse into symlinked directories when generating the API documentation.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 and officially support Python 3.14\u003c/li\u003e\n\u003cli\u003eSupport rendering PEP-695 type parameters\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRender typing_extensions.TypeAlias like other type aliases (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ePythonFunction.overloads\u003c/code\u003e typing when source code overload(s) do not provide a return type (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eMisc\n^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix deprecation warnings raised by astroid and sphinx\u003c/li\u003e\n\u003cli\u003eHandling case where match returns None to fix mypy unit test.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.6.1 (2025-10-06)\u003c/h2\u003e\n\u003cp\u003eBugfixes\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate the supported versions of astroid.\nFix the breaking change to Import and pass in the AstroidManager to the AstroidBuilder (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/536\"\u003e#536\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/readthedocs/sphinx-autoapi/commit/75cbff...\n\n_Description has been truncated_","html_url":"https://github.com/KittyCAD/kittycad.py/pull/621","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/KittyCAD%2Fkittycad.py/issues/621","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/621/packages"},{"uuid":"4084893007","node_id":"PR_kwDOGTov7c7LC1zZ","number":260,"state":"closed","title":"build(deps): bump the production-dependencies group across 1 directory with 3 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-30T22:08:50.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-16T21:33:12.000Z","updated_at":"2026-03-30T22:08:52.000Z","time_to_close":1211738,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"production-dependencies","update_count":3,"packages":[{"name":"peewee","old_version":"4.0.0","new_version":"4.0.2","repository_url":"https://github.com/coleifer/peewee"},{"name":"phonenumbers","old_version":"9.0.24","new_version":"9.0.26","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"},{"name":"pyopenssl","old_version":"25.3.0","new_version":"26.0.0","repository_url":"https://github.com/pyca/pyopenssl"}],"path":null,"ecosystem":"pip"},"body":"Bumps the production-dependencies group with 3 updates in the / directory: [peewee](https://github.com/coleifer/peewee), [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) and [pyopenssl](https://github.com/pyca/pyopenssl).\n\nUpdates `peewee` from 4.0.0 to 4.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coleifer/peewee/releases\"\u003epeewee's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove all Python 2.x compatibility code.\u003c/li\u003e\n\u003cli\u003eAdd streaming result cursors to pwasyncio module via \u003ccode\u003edb.iterate(query)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eBetter serialization and deserialization of datetimes and binary data in the DataSet module. Previously binary data was encoded as base64, going forward hex is the new default. For base64 specify \u003ccode\u003ebase64_bytes=True\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eImprovements to Postgres \u003ccode\u003eBinaryJSONField\u003c/code\u003e, support atomic removal of sub-elements, as well as alternate helper for extracting sub-elements and querying array length.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.peewee-orm.com/en/latest/peewee/orm_utils.html#module-playhouse.pydantic_utils\"\u003ePydantic integration\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.1...4.0.2\"\u003eView commits\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure \u003ccode\u003egr_context\u003c/code\u003e is set on greenlet in \u003ccode\u003egreenlet_spawn\u003c/code\u003e so that contextvars will be operable in sync handlers.\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eSqliteExtDatabase\u003c/code\u003e (it basically served no purpose in 4.0). Use \u003ccode\u003eSqliteDatabase\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eMoved driver and extension-specific pooled implementations into the corresponding extension module rather than putting all into \u003ccode\u003eplayhouse.pool\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRestore custom \u003ccode\u003edumps\u003c/code\u003e option for postgres JSON fields.\u003c/li\u003e\n\u003cli\u003eMajor docs rewrite / reorganization.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.0...4.0.1\"\u003eView commits\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/coleifer/peewee/blob/master/CHANGELOG.md\"\u003epeewee's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove all Python 2.x compatibility code.\u003c/li\u003e\n\u003cli\u003eAdd streaming result cursors to pwasyncio module via \u003ccode\u003edb.iterate(query)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eBetter serialization and deserialization of datetimes and binary data in the\nDataSet module. Previously binary data was encoded as base64, going forward\nhex is the new default. For base64 specify \u003ccode\u003ebase64_bytes=True\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eImprovements to Postgres \u003ccode\u003eBinaryJSONField\u003c/code\u003e, support atomic removal of\nsub-elements, as well as alternate helper for extracting sub-elements and\nquerying array length.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.peewee-orm.com/en/latest/peewee/orm_utils.html#module-playhouse.pydantic_utils\"\u003ePydantic integration\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.1...4.0.2\"\u003eView commits\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure \u003ccode\u003egr_context\u003c/code\u003e is set on greenlet in \u003ccode\u003egreenlet_spawn\u003c/code\u003e so that\ncontextvars will be operable in sync handlers.\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eSqliteExtDatabase\u003c/code\u003e (it basically served no purpose in 4.0). Use\n\u003ccode\u003eSqliteDatabase\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eMoved driver and extension-specific pooled implementations into the\ncorresponding extension module rather than putting all into \u003ccode\u003eplayhouse.pool\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRestore custom \u003ccode\u003edumps\u003c/code\u003e option for postgres JSON fields.\u003c/li\u003e\n\u003cli\u003eMajor docs rewrite / reorganization.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.0...4.0.1\"\u003eView commits\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/coleifer/peewee/commit/a285042db7961d8c3c2357afccde0fdc79df4528\"\u003e\u003ccode\u003ea285042\u003c/code\u003e\u003c/a\u003e 4.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/e7b30916810e879b9bdd92a11c60b5457a58c5d2\"\u003e\u003ccode\u003ee7b3091\u003c/code\u003e\u003c/a\u003e More idiomatic usage in doc examples.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/7f85343a7b681ff946576516582a635b969d4976\"\u003e\u003ccode\u003e7f85343\u003c/code\u003e\u003c/a\u003e Fix misnamed method in examples.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/c505a135237dfe8433ab60fcb8461eac83b7e6da\"\u003e\u003ccode\u003ec505a13\u003c/code\u003e\u003c/a\u003e Update flaky tests that were relying on async callback ordering.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/90d469127c1c246a0ceb1b7ad5c345b622cd93dd\"\u003e\u003ccode\u003e90d4691\u003c/code\u003e\u003c/a\u003e Small cleanups to pydantic doc.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/2ee08ef9307cd36d6247593dd5c060fa28380281\"\u003e\u003ccode\u003e2ee08ef\u003c/code\u003e\u003c/a\u003e Attempt fix for hung cursors w/postgres in tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/e87d2ad96072d51143c91cde83b5aefa22ed84c2\"\u003e\u003ccode\u003ee87d2ad\u003c/code\u003e\u003c/a\u003e Doc cleanups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/afb6d8bbcec8e937e3d81787843383a0f2eb2200\"\u003e\u003ccode\u003eafb6d8b\u003c/code\u003e\u003c/a\u003e Add additional server-side cursor concurrency test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/2f0b39106d8bc9ec6f1e05264ed975a4371ba175\"\u003e\u003ccode\u003e2f0b391\u003c/code\u003e\u003c/a\u003e Update changelog as well.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/3cf0b6556f0ae18ee1d39d3b4a3a59c299a54f9b\"\u003e\u003ccode\u003e3cf0b65\u003c/code\u003e\u003c/a\u003e Update readme/doc index to mention pydantic integration.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.0...4.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phonenumbers` from 9.0.24 to 9.0.26\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/07e2c75b1dc1d94c806755e4842410e19cd1e17e\"\u003e\u003ccode\u003e07e2c75\u003c/code\u003e\u003c/a\u003e Prep for 9.0.26 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/55522da42bff8bd7eefd08b17c978971bc60e135\"\u003e\u003ccode\u003e55522da\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/8ca762b2309a1df12f2eadf601ce413bf3cd1826\"\u003e\u003ccode\u003e8ca762b\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.26\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/c4d8bac7ec270537b05834520c8cee08dedf2743\"\u003e\u003ccode\u003ec4d8bac\u003c/code\u003e\u003c/a\u003e Prep for 9.0.25 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/17db64648ac55e3e519716bb9d2cdf568737b102\"\u003e\u003ccode\u003e17db646\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/d08f6b4b541f7b5811469ad883db1daf620e259b\"\u003e\u003ccode\u003ed08f6b4\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.25\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.24...v9.0.26\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyopenssl` from 25.3.0 to 26.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/pyopenssl/blob/main/CHANGELOG.rst\"\u003epyopenssl's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0.0 (2026-03-15)\u003c/h2\u003e\n\u003cp\u003eBackward-incompatible changes:\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.7.\u003c/li\u003e\n\u003cli\u003eThe minimum \u003ccode\u003ecryptography\u003c/code\u003e version is now 46.0.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDeprecations:\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eChanges:\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for using aws-lc instead of OpenSSL.\u003c/li\u003e\n\u003cli\u003eProperly raise an error if a DTLS cookie callback returned a cookie longer than \u003ccode\u003eDTLS1_COOKIE_LENGTH\u003c/code\u003e bytes. Previously this would result in a buffer-overflow. Credit to \u003cstrong\u003edark_haxor\u003c/strong\u003e for reporting the issue. \u003cstrong\u003eCVE-2026-27459\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eOpenSSL.SSL.Connection.get_group_name\u003c/code\u003e to determine which group name was negotiated.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.set_tlsext_servername_callback\u003c/code\u003e now handles exceptions raised in the callback by calling \u003ccode\u003esys.excepthook\u003c/code\u003e and returning a fatal TLS alert. Previously, exceptions were silently swallowed and the handshake would proceed as if the callback had succeeded. Credit to \u003cstrong\u003eLeury Castillo\u003c/strong\u003e for reporting this issue. \u003cstrong\u003eCVE-2026-27448\u003c/strong\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/pyca/pyopenssl/commit/358cbf29c4e364c59930e53a270116249581eaa3\"\u003e\u003ccode\u003e358cbf2\u003c/code\u003e\u003c/a\u003e Prepare for 26.0.0 release (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1487\"\u003e#1487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/a8d28e7069ca213049ccfbcc227ed9ef6080a15b\"\u003e\u003ccode\u003ea8d28e7\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4 to 5 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1486\"\u003e#1486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/6fefff05561c0a5e8f668b4e029a6ba3adb7d89e\"\u003e\u003ccode\u003e6fefff0\u003c/code\u003e\u003c/a\u003e Add aws-lc compatibility to tests and CI (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1476\"\u003e#1476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/a739f9661d09ec6cda448ad71ca3e6df0dce9d75\"\u003e\u003ccode\u003ea739f96\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 8.0.0 to 8.0.1 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1485\"\u003e#1485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/8b4c66b1b5649ce046665b151772d40c1cddd66a\"\u003e\u003ccode\u003e8b4c66b\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact in /.github/actions/upload-coverage (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1484\"\u003e#1484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/02a5c78435cd445a7d5ef20b354dba2b6abdac64\"\u003e\u003ccode\u003e02a5c78\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/d9733878d67ee2ad94327768bb6dc416f7827443\"\u003e\u003ccode\u003ed973387\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7.0.0 to 8.0.0 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1482\"\u003e#1482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/57f09bb4bb051d3bc2a1abd36e9525313d5cd408\"\u003e\u003ccode\u003e57f09bb\u003c/code\u003e\u003c/a\u003e Fix buffer overflow in DTLS cookie generation callback (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1479\"\u003e#1479\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/d41a814759a9fb49584ca8ab3f7295de49a85aa0\"\u003e\u003ccode\u003ed41a814\u003c/code\u003e\u003c/a\u003e Handle exceptions in set_tlsext_servername_callback callbacks (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1478\"\u003e#1478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/7b29beba7759f0b810b5d5375a50469c4f8947b3\"\u003e\u003ccode\u003e7b29beb\u003c/code\u003e\u003c/a\u003e Fix not using a cryptography wheel on uv (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1475\"\u003e#1475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/pyopenssl/compare/25.3.0...26.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \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/smswithoutborders/RelaySMS-Gateway-Server/pull/260","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/smswithoutborders%2FRelaySMS-Gateway-Server/issues/260","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/260/packages"},{"uuid":"4080317702","node_id":"PR_kwDORMoXSc7Kz9dV","number":741,"state":"open","title":"chore(deps): bump the minor-and-patch group in /backend with 2 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":"2026-03-16T05:28:53.000Z","updated_at":"2026-03-16T05:28:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"minor-and-patch","update_count":2,"packages":[{"name":"pyjwt","old_version":"2.12.0","new_version":"2.12.1"},{"name":"phonenumbers","old_version":"9.0.25","new_version":"9.0.26","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps the minor-and-patch group in /backend with 2 updates: [pyjwt[crypto]](https://github.com/jpadilla/pyjwt) and [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers).\n\nUpdates `pyjwt[crypto]` from 2.12.0 to 2.12.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt[crypto]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.12.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd typing_extensions dependency for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/jpadilla\"\u003e\u003ccode\u003e@​jpadilla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1151\"\u003ejpadilla/pyjwt#1151\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt[crypto]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.12.1 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Add missing ``typing_extensions`` dependency for Python \u0026lt; 3.11 in `[#1150](https://github.com/jpadilla/pyjwt/issues/1150) \u0026lt;https://github.com/jpadilla/pyjwt/issues/1150\u0026gt;`__\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/a4e1a3d1218b01c5806420b8f16d9308ac4adc30\"\u003e\u003ccode\u003ea4e1a3d\u003c/code\u003e\u003c/a\u003e Add typing_extensions dependency for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phonenumbers` from 9.0.25 to 9.0.26\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/07e2c75b1dc1d94c806755e4842410e19cd1e17e\"\u003e\u003ccode\u003e07e2c75\u003c/code\u003e\u003c/a\u003e Prep for 9.0.26 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/55522da42bff8bd7eefd08b17c978971bc60e135\"\u003e\u003ccode\u003e55522da\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/8ca762b2309a1df12f2eadf601ce413bf3cd1826\"\u003e\u003ccode\u003e8ca762b\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.26\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.25...v9.0.26\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/lcacchiani/evolvesprouts/pull/741","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/lcacchiani%2Fevolvesprouts/issues/741","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/741/packages"},{"uuid":"4079714579","node_id":"PR_kwDOQ-6P2s7KyGdN","number":238,"state":"closed","title":"chore(deps): bump the minor-and-patch group in /backend with 2 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-03-30T01:30:47.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-16T01:26:58.000Z","updated_at":"2026-03-30T01:30:53.000Z","time_to_close":1209829,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"minor-and-patch","update_count":2,"packages":[{"name":"pyjwt","old_version":"2.11.0","new_version":"2.12.1"},{"name":"phonenumbers","old_version":"9.0.25","new_version":"9.0.26","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps the minor-and-patch group in /backend with 2 updates: [pyjwt[crypto]](https://github.com/jpadilla/pyjwt) and [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers).\n\nUpdates `pyjwt[crypto]` from 2.11.0 to 2.12.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt[crypto]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.12.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd typing_extensions dependency for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/jpadilla\"\u003e\u003ccode\u003e@​jpadilla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1151\"\u003ejpadilla/pyjwt#1151\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.12.0\u003c/h2\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. by \u003ca href=\"https://github.com/dmbs335\"\u003e\u003ccode\u003e@​dmbs335\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-752w-5fwx-jx9f\"\u003eGHSA-752w-5fwx-jx9f\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1132\"\u003ejpadilla/pyjwt#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(docs): fix docs build by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1137\"\u003ejpadilla/pyjwt#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAnnotate PyJWKSet.keys for pyright by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1134\"\u003ejpadilla/pyjwt#1134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: close HTTPError to prevent ResourceWarning on Python 3.14 by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1133\"\u003ejpadilla/pyjwt#1133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove superfluous constants by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1136\"\u003ejpadilla/pyjwt#1136\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1135\"\u003ejpadilla/pyjwt#1135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(tests): enable mypy by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1138\"\u003ejpadilla/pyjwt#1138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 7 to 8 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/jpadilla/pyjwt/pull/1142\"\u003ejpadilla/pyjwt#1142\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1141\"\u003ejpadilla/pyjwt#1141\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1145\"\u003ejpadilla/pyjwt#1145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: do not store reference to algorithms dict on PyJWK by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1143\"\u003ejpadilla/pyjwt#1143\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse PyJWK algorithm when encoding without explicit algorithm by \u003ca href=\"https://github.com/jpadilla\"\u003e\u003ccode\u003e@​jpadilla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1148\"\u003ejpadilla/pyjwt#1148\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/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1137\"\u003ejpadilla/pyjwt#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1133\"\u003ejpadilla/pyjwt#1133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt[crypto]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.12.1 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Add missing ``typing_extensions`` dependency for Python \u0026lt; 3.11 in `[#1150](https://github.com/jpadilla/pyjwt/issues/1150) \u0026lt;https://github.com/jpadilla/pyjwt/issues/1150\u0026gt;`__\n\u003ch2\u003e\u003ccode\u003ev2.12.0 \u0026amp;lt;https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\u0026amp;gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAnnotate PyJWKSet.keys for pyright by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1134](https://github.com/jpadilla/pyjwt/issues/1134) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1134\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eClose \u003ccode\u003eHTTPError\u003c/code\u003e response to prevent \u003ccode\u003eResourceWarning\u003c/code\u003e on Python 3.14 by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1133](https://github.com/jpadilla/pyjwt/issues/1133) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1133\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDo not keep \u003ccode\u003ealgorithms\u003c/code\u003e dict in PyJWK instances by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1143](https://github.com/jpadilla/pyjwt/issues/1143) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1143\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eValidate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. by \u003ca href=\"https://github.com/dmbs335\"\u003e\u003ccode\u003e@​dmbs335\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003eGHSA-752w-5fwx-jx9f \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-752w-5fwx-jx9f\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eUse PyJWK algorithm when encoding without explicit algorithm in \u003ccode\u003e[#1148](https://github.com/jpadilla/pyjwt/issues/1148) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1148\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAdded\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Docs: Add ``PyJWKClient`` API reference and document the two-tier caching system (JWK Set cache and signing key LRU cache).\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/a4e1a3d1218b01c5806420b8f16d9308ac4adc30\"\u003e\u003ccode\u003ea4e1a3d\u003c/code\u003e\u003c/a\u003e Add typing_extensions dependency for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/bd9700cca7f9258fadcc429c1034e508025931f2\"\u003e\u003ccode\u003ebd9700c\u003c/code\u003e\u003c/a\u003e Use PyJWK algorithm when encoding without explicit algorithm (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1148\"\u003e#1148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/051ea341b5573fe3edcd53042f347929b92c2b92\"\u003e\u003ccode\u003e051ea34\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/1451d70eca2059bc472703692f0bb0777bc0fe93\"\u003e\u003ccode\u003e1451d70\u003c/code\u003e\u003c/a\u003e fix: do not store reference to algorithms dict on PyJWK (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1143\"\u003e#1143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/f3ba74c106df9ce10e272dfaad96acb4ab3ef5a5\"\u003e\u003ccode\u003ef3ba74c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1145\"\u003e#1145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/0318ffa7b156b01600376e38952bf961382e0724\"\u003e\u003ccode\u003e0318ffa\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1141\"\u003e#1141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/a52753db3c1075ac01337fa8b7cc92b13a19ac09\"\u003e\u003ccode\u003ea52753d\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7 to 8 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1142\"\u003e#1142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/b85050f1d444c6828bb4618ee764443b0a3f5d18\"\u003e\u003ccode\u003eb85050f\u003c/code\u003e\u003c/a\u003e chore(tests): enable mypy (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1138\"\u003e#1138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/1272b264779717cc481c8341f321a7fc8b3aaba6\"\u003e\u003ccode\u003e1272b26\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1135\"\u003e#1135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/99a87287c26cb97c94399084ee4186ee52207a7f\"\u003e\u003ccode\u003e99a8728\u003c/code\u003e\u003c/a\u003e chore: remove superfluous constants (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1136\"\u003e#1136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phonenumbers` from 9.0.25 to 9.0.26\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/07e2c75b1dc1d94c806755e4842410e19cd1e17e\"\u003e\u003ccode\u003e07e2c75\u003c/code\u003e\u003c/a\u003e Prep for 9.0.26 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/55522da42bff8bd7eefd08b17c978971bc60e135\"\u003e\u003ccode\u003e55522da\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/8ca762b2309a1df12f2eadf601ce413bf3cd1826\"\u003e\u003ccode\u003e8ca762b\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.26\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.25...v9.0.26\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/lcacchiani/siutindei/pull/238","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/lcacchiani%2Fsiutindei/issues/238","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/238/packages"}],"issue_packages":[{"old_version":"9.0.30","new_version":"9.0.31","update_type":"patch","path":null,"pr_created_at":"2026-05-25T23:19:16.000Z","version_change":"9.0.30 → 9.0.31","issue":{"uuid":"4520057263","node_id":"PR_kwDOFOOOy87fMnxS","number":152,"state":"closed","title":"chore(deps): bump the production-dependencies group with 4 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-03T01:18:57.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-25T23:19:16.000Z","updated_at":"2026-06-03T01:18:59.000Z","time_to_close":698381,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"production-dependencies","update_count":4,"packages":[{"name":"fastapi","old_version":"0.136.1","new_version":"0.136.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"phonenumbers","old_version":"9.0.30","new_version":"9.0.31","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"},{"name":"pymysql","old_version":"1.1.3","new_version":"1.2.0","repository_url":"https://github.com/PyMySQL/PyMySQL"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [fastapi](https://github.com/fastapi/fastapi), [peewee](https://github.com/coleifer/peewee), [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) and [pymysql](https://github.com/PyMySQL/PyMySQL) to permit the latest version.\nUpdates `fastapi` from 0.136.1 to 0.136.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.136.3\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Do not accept underscore headers when using \u003ccode\u003econvert_underscores=True\u003c/code\u003e (the default). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15589\"\u003e#15589\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.136.2\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Validate Server Sent Event fields to avoid applications from sending broken data. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15588\"\u003e#15588\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Document \u003ccode\u003e--entrypoint\u003c/code\u003e CLI option. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15464\"\u003e#15464\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update and simplify docs about help and management. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15583\"\u003e#15583\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add docs references to central contributing docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15580\"\u003e#15580\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 security policy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15577\"\u003e#15577\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🍱 Update sponsors: TalorData image. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15562\"\u003e#15562\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update docs, simplify usage of admonitions, only default ones. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15553\"\u003e#15553\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📝 Fix image URLs in \u003ccode\u003eindex.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15534\"\u003e#15534\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✏️ Fix Azkaban spelling typo in \u003ccode\u003evirtual-environments.md‎\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15463\"\u003e#15463\u003c/a\u003e by \u003ca href=\"https://github.com/isaacbernat\"\u003e\u003ccode\u003e@​isaacbernat\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Improve layout and styling. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15462\"\u003e#15462\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Refactor opinions section with interactive tabs and new logos. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15458\"\u003e#15458\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add FastAPI Conf '26 announcement to docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15457\"\u003e#15457\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Improve translation consistency in \u003ccode\u003e‎docs/pt/docs/advanced/generate-clients.md‎\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15456\"\u003e#15456\u003c/a\u003e by \u003ca href=\"https://github.com/Will-thom\"\u003e\u003ccode\u003e@​Will-thom\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15530\"\u003e#15530\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for uk (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15529\"\u003e#15529\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for pt (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15528\"\u003e#15528\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15527\"\u003e#15527\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for tr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15526\"\u003e#15526\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15525\"\u003e#15525\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15524\"\u003e#15524\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for fr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15522\"\u003e#15522\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for es (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15523\"\u003e#15523\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15520\"\u003e#15520\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ru (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15521\"\u003e#15521\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🌐 Fix typos in Spanish LLM-prompt. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15472\"\u003e#15472\u003c/a\u003e by \u003ca href=\"https://github.com/crr004\"\u003e\u003ccode\u003e@​crr004\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Update tests, don't double dispose the engine. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15587\"\u003e#15587\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⚡️ Speed up test suite via caching and fixture scopes to make it ~24% faster. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13583\"\u003e#13583\u003c/a\u003e by \u003ca href=\"https://github.com/dikos1337\"\u003e\u003ccode\u003e@​dikos1337\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove config files now in central GitHub repo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15585\"\u003e#15585\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump urllib3 from 2.6.3 to 2.7.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15502\"\u003e#15502\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump idna from 3.11 to 3.15. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15565\"\u003e#15565\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump cloudflare/wrangler-action from 3.15.0 to 4.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15571\"\u003e#15571\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Migrate docs from MkDocs to Zensical. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15563\"\u003e#15563\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🔒️ Only allow team members to modify dependencies. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15548\"\u003e#15548\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\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/82064857539e6286522c347b4b11331b48dd2378\"\u003e\u003ccode\u003e8206485\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c910e0139f983d0e04e2d1d235cd71803afeae34\"\u003e\u003ccode\u003ec910e01\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/063b5bf582d31fb155cc6bc6f88cf512329d0fd5\"\u003e\u003ccode\u003e063b5bf\u003c/code\u003e\u003c/a\u003e ♻️ Do not accept underscore headers when using \u003ccode\u003econvert_underscores=True\u003c/code\u003e (th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/22b02e26f9e8c7e32bd8266e2b0ebe8bb3a0db2b\"\u003e\u003ccode\u003e22b02e2\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3b252a2a22ba27a8ab83d6bde7d9cddbc5bf738e\"\u003e\u003ccode\u003e3b252a2\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c7fb7851b3389f24c51701d705458989be53ccbb\"\u003e\u003ccode\u003ec7fb785\u003c/code\u003e\u003c/a\u003e ♻️ Validate Server Sent Event fields to avoid applications from sending broke...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cb83b83dcf78eab4ea17d504db5abcda705fbdc4\"\u003e\u003ccode\u003ecb83b83\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/00f805cec94c0bf48c1f9a563535a3ab2e6f90ab\"\u003e\u003ccode\u003e00f805c\u003c/code\u003e\u003c/a\u003e ✅ Update tests, don't double dispose the engine (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15587\"\u003e#15587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3675137523dc167981aa3a3c44599b4f3079ccd8\"\u003e\u003ccode\u003e3675137\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7b57e42986bb4d40c9eb6580537d13fb8e76097e\"\u003e\u003ccode\u003e7b57e42\u003c/code\u003e\u003c/a\u003e 📝 Document \u003ccode\u003e--entrypoint\u003c/code\u003e CLI option (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15464\"\u003e#15464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.136.1...0.136.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `peewee` to 4.0.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coleifer/peewee/releases\"\u003epeewee's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.0.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd new methods to the postgres \u003ccode\u003eBinaryJSONField\u003c/code\u003e: helpers for in-place modifications (\u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, \u003ccode\u003einsert\u003c/code\u003e, \u003ccode\u003eappend\u003c/code\u003e, \u003ccode\u003eupdate\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAlso add json-path helpers to the postgres \u003ccode\u003eBinaryJSONField\u003c/code\u003e (\u003ccode\u003epath_exists\u003c/code\u003e, \u003ccode\u003epath_match\u003c/code\u003e, \u003ccode\u003epath_query\u003c/code\u003e, \u003ccode\u003epath_query_array\u003c/code\u003e, \u003ccode\u003epath_query_first\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eQuote path elements in SQLite's JSON field.\u003c/li\u003e\n\u003cli\u003eBetter and faster parsing of formatted date/times. Use the stdlib \u003ccode\u003efromisoformat\u003c/code\u003e as a first attempt since it's faster and more robust.\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003edb.connection_context()\u003c/code\u003e can be nested cleanly, \u003ca href=\"https://redirect.github.com/coleifer/peewee/issues/3046\"\u003e#3046\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix potential deadlock in \u003ccode\u003epool.close_all\u003c/code\u003e and \u003ccode\u003epool.manual_close\u003c/code\u003e, \u003ca href=\"https://redirect.github.com/coleifer/peewee/issues/3047\"\u003e#3047\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRestore whitespace stripping in \u003ccode\u003eFixedCharField\u003c/code\u003e, \u003ca href=\"https://redirect.github.com/coleifer/peewee/issues/3048\"\u003e#3048\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.5...4.0.6\"\u003eView commits\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\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/coleifer/peewee/blob/master/CHANGELOG.md\"\u003epeewee's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.0.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd new methods to the postgres \u003ccode\u003eBinaryJSONField\u003c/code\u003e: helpers for in-place\nmodifications (\u003ccode\u003eset\u003c/code\u003e, \u003ccode\u003ereplace\u003c/code\u003e, \u003ccode\u003einsert\u003c/code\u003e, \u003ccode\u003eappend\u003c/code\u003e, \u003ccode\u003eupdate\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAlso add json-path helpers to the postgres \u003ccode\u003eBinaryJSONField\u003c/code\u003e (\u003ccode\u003epath_exists\u003c/code\u003e,\n\u003ccode\u003epath_match\u003c/code\u003e, \u003ccode\u003epath_query\u003c/code\u003e, \u003ccode\u003epath_query_array\u003c/code\u003e, \u003ccode\u003epath_query_first\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eQuote path elements in SQLite's JSON field.\u003c/li\u003e\n\u003cli\u003eBetter and faster parsing of formatted date/times. Use the stdlib\n\u003ccode\u003efromisoformat\u003c/code\u003e as a first attempt since it's faster and more robust.\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003edb.connection_context()\u003c/code\u003e can be nested cleanly, \u003ca href=\"https://redirect.github.com/coleifer/peewee/issues/3046\"\u003e#3046\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix potential deadlock in \u003ccode\u003epool.close_all\u003c/code\u003e and \u003ccode\u003epool.manual_close\u003c/code\u003e, \u003ca href=\"https://redirect.github.com/coleifer/peewee/issues/3047\"\u003e#3047\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRestore whitespace stripping in \u003ccode\u003eFixedCharField\u003c/code\u003e, \u003ca href=\"https://redirect.github.com/coleifer/peewee/issues/3048\"\u003e#3048\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.5...4.0.6\"\u003eView commits\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where \u003ccode\u003edb_value()\u003c/code\u003e may not get called in subclasses of Postgres\nJSONField / BinaryJSONField, refs \u003ca href=\"https://redirect.github.com/coleifer/peewee/issues/3044\"\u003e#3044\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eFix bug where indexes for table may be defined on multiple schema, \u003ca href=\"https://redirect.github.com/coleifer/peewee/issues/3043\"\u003e#3043\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAlways fall-through to base exception class if exception is not recognized in\nDB drivers. This simplifies checking driver-specific subclasses of standard\nDB-API exceptions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.4...4.0.5\"\u003eView commits\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix SQL generation for partial indexes with nulls (not) distinct clause.\u003c/li\u003e\n\u003cli\u003eRaise an \u003ccode\u003eImproperlyConfigured\u003c/code\u003e if pg driver unavailable at model\ndefinition-time when field db-hooks are used, rather than \u003ccode\u003eAttributeError\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.3...4.0.4\"\u003eView commits\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefactor test suite - this was a mechanical refactor, just moving things\naround and trying to group things more clearly. Also added new tests covering\nsome gaps.\u003c/li\u003e\n\u003cli\u003eExpand multi-value types to include generator expressions, so you can write\nstuff like \u003ccode\u003e.in(a for a in iterable if cond)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eEnsure quotes embedded in entity names are escaped.\u003c/li\u003e\n\u003cli\u003eImproved specification of \u003ccode\u003eFOR UPDATE\u003c/code\u003e clauses.\u003c/li\u003e\n\u003cli\u003eFix for negative values in \u003ccode\u003epaginate()\u003c/code\u003e method.\u003c/li\u003e\n\u003cli\u003eFix for newer MySQL server versions in feature detection code.\u003c/li\u003e\n\u003cli\u003eMore robust handling of unusual aliases / invalid attr names in cursor\nwrapper.\u003c/li\u003e\n\u003cli\u003eBetter handling of duplicated column names in cursor wrapper implementations.\u003c/li\u003e\n\u003cli\u003eImprove performance of ModelCursorWrapper when reconstructing model instance\ngraphs after multi-table selects.\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/coleifer/peewee/commit/5a99f309e5b9db119a9459d09d7fb0ce4331fc33\"\u003e\u003ccode\u003e5a99f30\u003c/code\u003e\u003c/a\u003e 4.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/451f17b01d67cfcd2b5b9f1aa40166c89d1b7f63\"\u003e\u003ccode\u003e451f17b\u003c/code\u003e\u003c/a\u003e Update cl\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/63c4dedc7b6bad843b1b035a5fec26b6a7f6b8a6\"\u003e\u003ccode\u003e63c4ded\u003c/code\u003e\u003c/a\u003e Restore whitespace stripping in FixedCharField.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/2f460ad596f28295de8e852146648d48300c91fe\"\u003e\u003ccode\u003e2f460ad\u003c/code\u003e\u003c/a\u003e Fix deadlock in pool manual_close + close_all.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/504f3c57e6564cee07063990cecce4efb44c8f35\"\u003e\u003ccode\u003e504f3c5\u003c/code\u003e\u003c/a\u003e Fix pwasyncio failure w/conn context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/ef045afbb731cca05d0c5b0c0f60eb2b664bff6e\"\u003e\u003ccode\u003eef045af\u003c/code\u003e\u003c/a\u003e changelog update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/b1bc2cf693e8777cde9e29a6f95d37bb0eaecc8a\"\u003e\u003ccode\u003eb1bc2cf\u003c/code\u003e\u003c/a\u003e Make connection_context() nest cleanly.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/be1dd2d47cfd39d3db75d4996d2eaf4400f1b864\"\u003e\u003ccode\u003ebe1dd2d\u003c/code\u003e\u003c/a\u003e Update changelog w/the last couple changes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/8a807983a0d6db91405b10f5cc77f6f31f4fa0c2\"\u003e\u003ccode\u003e8a80798\u003c/code\u003e\u003c/a\u003e Update docs, add path support to nested lookups as well.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/98a0dd4669a94ce8d16325bbe0e245b74bc39873\"\u003e\u003ccode\u003e98a0dd4\u003c/code\u003e\u003c/a\u003e Add some helpers for json mutation + json-path to pg\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.5...4.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phonenumbers` from 9.0.30 to 9.0.31\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/43a9c86fbbbe77d05421a5c020660ee70299e763\"\u003e\u003ccode\u003e43a9c86\u003c/code\u003e\u003c/a\u003e Prep for 9.0.31 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/98c625e88c5d10a79333f63ef0e424078f4eaa57\"\u003e\u003ccode\u003e98c625e\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/9161226e220d5882c3507c6f122410792bfb3605\"\u003e\u003ccode\u003e9161226\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.31\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.30...v9.0.31\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymysql` from 1.1.3 to 1.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyMySQL/PyMySQL/releases\"\u003epymysql's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the all-dependencies 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/PyMySQL/PyMySQL/pull/1232\"\u003ePyMySQL/PyMySQL#1232\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReorganize TLS options: implement PREFERRED/REQUIRED SSL mode behavior by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1234\"\u003ePyMySQL/PyMySQL#1234\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport MySQL 8 row/column alias syntax in \u003ccode\u003eexecutemany\u003c/code\u003e INSERT regex by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1235\"\u003ePyMySQL/PyMySQL#1235\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose SQLSTATE on MySQL protocol exceptions without changing exception formatting by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1236\"\u003ePyMySQL/PyMySQL#1236\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReject non-finite \u003ccode\u003edecimal.Decimal\u003c/code\u003e query parameters (\u003ccode\u003eNaN\u003c/code\u003e, \u003ccode\u003esNaN\u003c/code\u003e, \u003ccode\u003e±Infinity\u003c/code\u003e) by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1237\"\u003ePyMySQL/PyMySQL#1237\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update outdated requirements and reference links by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1239\"\u003ePyMySQL/PyMySQL#1239\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare CHANGELOG for v1.2.0 release from v1.1.3 changes by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1238\"\u003ePyMySQL/PyMySQL#1238\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edeprecate \u003ccode\u003edb\u003c/code\u003e and \u003ccode\u003epasswd\u003c/code\u003e again by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1240\"\u003ePyMySQL/PyMySQL#1240\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edeprecate \u003ccode\u003ereconnect\u003c/code\u003e in \u003ccode\u003eConnection.ping()\u003c/code\u003e by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1241\"\u003ePyMySQL/PyMySQL#1241\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003eConnection.set_charset()\u003c/code\u003e at runtime and document warning behavior by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1243\"\u003ePyMySQL/PyMySQL#1243\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease v1.2.0 by \u003ca href=\"https://github.com/methane\"\u003e\u003ccode\u003e@​methane\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1244\"\u003ePyMySQL/PyMySQL#1244\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/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/pull/1234\"\u003ePyMySQL/PyMySQL#1234\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PyMySQL/PyMySQL/compare/v1.1.3...v1.2.0\"\u003ehttps://github.com/PyMySQL/PyMySQL/compare/v1.1.3...v1.2.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyMySQL/PyMySQL/blob/main/CHANGELOG.md\"\u003epymysql's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.0\u003c/h2\u003e\n\u003cp\u003eRelease date: 2026-05-19\u003c/p\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eConnection.ping()\u003c/code\u003e change the default to not reconnect and deprecate \u003ccode\u003ereconnect\u003c/code\u003e argument.\nCreate a new connection if you want to reconnect. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1241\"\u003e#1241\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eError classes in Cursor class are removed. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1240\"\u003e#1240\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003econnect()\u003c/code\u003e arguments \u003ccode\u003edb\u003c/code\u003e and \u003ccode\u003epasswd\u003c/code\u003e now emit DeprecationWarning.\nUse \u003ccode\u003edatabase\u003c/code\u003e and \u003ccode\u003epassword\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1240\"\u003e#1240\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eReorganize TLS connection behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003ePyMySQL uses TLS by default when server supports it.\nUse \u003ccode\u003essl_disabled=True\u003c/code\u003e to prohibit SSL. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1213\"\u003e#1213\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWhen \u003ccode\u003essl_verify_cert=True\u003c/code\u003e, \u003ccode\u003essl_verify_identity=True\u003c/code\u003e, an \u003ccode\u003essl.SSLContext\u003c/code\u003e is passed,\nor when any other SSL option is configured, the connection \u003cstrong\u003erequires\u003c/strong\u003e SSL and raises\n\u003ccode\u003eOperationalError\u003c/code\u003e (CR_SSL_CONNECTION_ERROR) if the server doesn't support it. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1234\"\u003e#1234\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport MySQL 8 row/column alias syntax in \u003ccode\u003eexecutemany\u003c/code\u003e INSERT regex. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1235\"\u003e#1235\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpose SQLSTATE on MySQL protocol exceptions without changing exception formatting. (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1236\"\u003e#1236\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject non-finite \u003ccode\u003edecimal.Decimal\u003c/code\u003e query parameters (\u003ccode\u003eNaN\u003c/code\u003e, \u003ccode\u003esNaN\u003c/code\u003e, \u003ccode\u003e±Infinity\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1237\"\u003e#1237\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eConnection.set_charset(charset)\u003c/code\u003e now emits \u003ccode\u003eDeprecationWarning\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/PyMySQL/PyMySQL/commit/0f1c324a6b73e34810af3e584f6d32554604488a\"\u003e\u003ccode\u003e0f1c324\u003c/code\u003e\u003c/a\u003e use ubuntu-latest for pypi publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/53b16b22f0fefc64ccf4606f20c87bedcceb1cac\"\u003e\u003ccode\u003e53b16b2\u003c/code\u003e\u003c/a\u003e Release v1.2.0 (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1244\"\u003e#1244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/637fe7e6b2b1bc6effefc53d0faccfe3d5036ea5\"\u003e\u003ccode\u003e637fe7e\u003c/code\u003e\u003c/a\u003e Deprecate \u003ccode\u003eConnection.set_charset()\u003c/code\u003e at runtime and document warning behavior...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/23ca04a357a042db4188adefd04031c205837927\"\u003e\u003ccode\u003e23ca04a\u003c/code\u003e\u003c/a\u003e add AGENTS.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/7349a44e2b264395bd2d78fe3c9b7fdb26a7e740\"\u003e\u003ccode\u003e7349a44\u003c/code\u003e\u003c/a\u003e deprecate \u003ccode\u003ereconnect\u003c/code\u003e in \u003ccode\u003eConnection.ping()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1241\"\u003e#1241\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/ad5c50c254925caf24dbc06832a69f5c5c5ec76b\"\u003e\u003ccode\u003ead5c50c\u003c/code\u003e\u003c/a\u003e update CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/c963edbf53ac52f9ea6c9717411127d0d7f7061a\"\u003e\u003ccode\u003ec963edb\u003c/code\u003e\u003c/a\u003e Deprecation and removals (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1240\"\u003e#1240\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/af6b9b42abcea73d9bfdb0aaff75656171c9cec7\"\u003e\u003ccode\u003eaf6b9b4\u003c/code\u003e\u003c/a\u003e Prepare CHANGELOG for v1.2.0 release from v1.1.3 changes (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1238\"\u003e#1238\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/c7bf73f1987c3b78debb39a7a074e806178ecc9b\"\u003e\u003ccode\u003ec7bf73f\u003c/code\u003e\u003c/a\u003e docs: update outdated requirements and reference links (\u003ca href=\"https://redirect.github.com/PyMySQL/PyMySQL/issues/1239\"\u003e#1239\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/PyMySQL/PyMySQL/commit/c532b8d9d515ac5769cd285a5a520afed1e035c1\"\u003e\u003ccode\u003ec532b8d\u003c/code\u003e\u003c/a\u003e Reject non-finite \u003ccode\u003edecimal.Decimal\u003c/code\u003e query parameters (\u003ccode\u003eNaN\u003c/code\u003e, \u003ccode\u003esNaN\u003c/code\u003e, `±Infini...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/PyMySQL/PyMySQL/compare/v1.1.3...v1.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \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/smswithoutborders/RelaySMS-Publisher/pull/152","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/smswithoutborders%2FRelaySMS-Publisher/issues/152","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/152/packages"}},{"old_version":"9.0.29","new_version":"9.0.30","update_type":"patch","path":null,"pr_created_at":"2026-05-14T23:57:09.000Z","version_change":"9.0.29 → 9.0.30","issue":{"uuid":"4450183390","node_id":"PR_kwDOR5yK7s7bum8_","number":11,"state":"open","title":"chore(deps): bump the python-dependencies group across 1 directory with 3 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-14T23:57:09.000Z","updated_at":"2026-05-15T00:12:29.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-dependencies","update_count":3,"packages":[{"name":"phonenumbers","old_version":"9.0.29","new_version":"9.0.30","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"},{"name":"ruff","old_version":"0.15.12","new_version":"0.15.13","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers), [pydantic[email]](https://github.com/pydantic/pydantic) and [ruff](https://github.com/astral-sh/ruff) to permit the latest version.\nUpdates `phonenumbers` from 9.0.29 to 9.0.30\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/9eea7a8a6af3b26cfe2398711f96cb9666beb56a\"\u003e\u003ccode\u003e9eea7a8\u003c/code\u003e\u003c/a\u003e Prep for 9.0.30 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/52815d5423cb641ebfb0a41e17830c0ec5066d66\"\u003e\u003ccode\u003e52815d5\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/8775727a3f2a1c4e21454c53d5360c1f5cc128af\"\u003e\u003ccode\u003e8775727\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.30\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.29...v9.0.30\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic[email]` to 2.13.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic[email]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.13.4/HISTORY.md\"\u003epydantic[email]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/cf67d4b3193c3fe43ede18612ed62785eee11382\"\u003e\u003ccode\u003ecf67d4b\u003c/code\u003e\u003c/a\u003e Fix linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662\"\u003e\u003ccode\u003ef0d8a21\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a\"\u003e\u003ccode\u003e5e3fe1d\u003c/code\u003e\u003c/a\u003e Check for pydantic tag pattern in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686\"\u003e\u003ccode\u003e7f9edcc\u003c/code\u003e\u003c/a\u003e Document tagging conventions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c\"\u003e\u003ccode\u003eb46a0c9\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400\"\u003e\u003ccode\u003e50629c8\u003c/code\u003e\u003c/a\u003e Update to PyPy 7.3.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725\"\u003e\u003ccode\u003e8522ebb\u003c/code\u003e\u003c/a\u003e Preserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8\"\u003e\u003ccode\u003ea37f3af\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003eMISSING\u003c/code\u003e sentinel test to work with unreleased \u003ccode\u003etyping_extensions\u003c/code\u003e ver...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2\"\u003e\u003ccode\u003e909259a\u003c/code\u003e\u003c/a\u003e Remove Logfire example in documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df\"\u003e\u003ccode\u003e2c4174c\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.155 to 0.2.185\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.12 to 0.15.13\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.13\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-14.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a rule to flag lazy imports that are eagerly evaluated (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25016\"\u003e#25016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Standardize diagnostic message (\u003ccode\u003ePLR0914\u003c/code\u003e, \u003ccode\u003ePLR0917\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24996\"\u003e#24996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eF811\u003c/code\u003e false positive for class methods (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24933\"\u003e#24933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix setting selection for multi-folder workspace (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24819\"\u003e#24819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix false positive for lines with leading whitespace (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25122\"\u003e#25122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix false positive for f-string debug specifier (\u003ccode\u003ePYI016\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24098\"\u003e#24098\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways include panic payload in panic diagnostic message (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24873\"\u003e#24873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict \u003ccode\u003ePYI034\u003c/code\u003e for in-place operations to enclosing class (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24511\"\u003e#24511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error message for parameters that are declared \u003ccode\u003eglobal\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24902\"\u003e#24902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate known stdlib (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25103\"\u003e#25103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Avoid constructing \u003ccode\u003eglob::Pattern\u003c/code\u003es for literal known modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25123\"\u003e#25123\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd TOML examples to \u003ccode\u003e--config\u003c/code\u003e help text (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25013\"\u003e#25013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eColorize ruff check 'All checks passed' (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25085\"\u003e#25085\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease max allowed value of \u003ccode\u003eline-length\u003c/code\u003e setting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24962\"\u003e#24962\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eD203\u003c/code\u003e to rules that conflict with the formatter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25044\"\u003e#25044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eCOM819\u003c/code\u003e and formatter interaction (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25045\"\u003e#25045\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify that \u003ccode\u003eNotImplemented\u003c/code\u003e is a value, not an exception (\u003ccode\u003eF901\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25054\"\u003e#25054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate number of lint rules supported (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24942\"\u003e#24942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify the playground's markdown template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24924\"\u003e#24924\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\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/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.13\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-05-14.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a rule to flag lazy imports that are eagerly evaluated (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25016\"\u003e#25016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Standardize diagnostic message (\u003ccode\u003ePLR0914\u003c/code\u003e, \u003ccode\u003ePLR0917\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24996\"\u003e#24996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eF811\u003c/code\u003e false positive for class methods (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24933\"\u003e#24933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix setting selection for multi-folder workspace (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24819\"\u003e#24819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix false positive for lines with leading whitespace (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25122\"\u003e#25122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Fix false positive for f-string debug specifier (\u003ccode\u003ePYI016\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24098\"\u003e#24098\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways include panic payload in panic diagnostic message (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24873\"\u003e#24873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestrict \u003ccode\u003ePYI034\u003c/code\u003e for in-place operations to enclosing class (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24511\"\u003e#24511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove error message for parameters that are declared \u003ccode\u003eglobal\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24902\"\u003e#24902\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate known stdlib (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25103\"\u003e#25103\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Avoid constructing \u003ccode\u003eglob::Pattern\u003c/code\u003es for literal known modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25123\"\u003e#25123\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd TOML examples to \u003ccode\u003e--config\u003c/code\u003e help text (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25013\"\u003e#25013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eColorize ruff check 'All checks passed' (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25085\"\u003e#25085\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease max allowed value of \u003ccode\u003eline-length\u003c/code\u003e setting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24962\"\u003e#24962\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eD203\u003c/code\u003e to rules that conflict with the formatter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25044\"\u003e#25044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eCOM819\u003c/code\u003e and formatter interaction (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25045\"\u003e#25045\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eClarify that \u003ccode\u003eNotImplemented\u003c/code\u003e is a value, not an exception (\u003ccode\u003eF901\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25054\"\u003e#25054\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate number of lint rules supported (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24942\"\u003e#24942\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSimplify the playground's markdown template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24924\"\u003e#24924\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/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\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/2afb467ce397e4a89c13a0a814c62cfecb0e9e49\"\u003e\u003ccode\u003e2afb467\u003c/code\u003e\u003c/a\u003e Bump 0.15.13 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25157\"\u003e#25157\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/300879600fa3af7cde1e675c63de6ad9d0797d1b\"\u003e\u003ccode\u003e3008796\u003c/code\u003e\u003c/a\u003e [ty] classify TypeVar semantic tokens as type parameters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24891\"\u003e#24891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/79470e31877acb6074f3bbff2a49e508822ae4e8\"\u003e\u003ccode\u003e79470e3\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eisort\u003c/code\u003e] Avoid constructing \u003ccode\u003eglob::Pattern\u003c/code\u003es for literal known modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25123\"\u003e#25123\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2522549901d50f18775999f0fb802b19229417f0\"\u003e\u003ccode\u003e2522549\u003c/code\u003e\u003c/a\u003e Remove shellcheck from prek (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25154\"\u003e#25154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7db7170020f539d6d2bc01dbd0b0c09fab91dc06\"\u003e\u003ccode\u003e7db7170\u003c/code\u003e\u003c/a\u003e [ty] Support TypedDict key completions in incomplete, anonymous contexts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25\"\u003e#25\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bb3dd535f1c5a83e2e56ac93a771fadbeeceebd0\"\u003e\u003ccode\u003ebb3dd53\u003c/code\u003e\u003c/a\u003e [ty] Run full iteration analysis on narrowed typevars (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25143\"\u003e#25143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/828cdb7732efcb16a53f4ee5f011cf653b834d1a\"\u003e\u003ccode\u003e828cdb7\u003c/code\u003e\u003c/a\u003e [ty] Isolate file-watching test environment (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25151\"\u003e#25151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/89e1d8670ea4d3af60c8143ee552dc750200718d\"\u003e\u003ccode\u003e89e1d86\u003c/code\u003e\u003c/a\u003e [ty] Preserve TypedDict keys through dict unpacking (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24523\"\u003e#24523\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/86f3064d6fffa5697d174f26b840bd6857b381da\"\u003e\u003ccode\u003e86f3064\u003c/code\u003e\u003c/a\u003e [ty] Avoid accessing \u003ccode\u003eargs[0]\u003c/code\u003e for \u003ccode\u003estatic_assert\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25149\"\u003e#25149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ed819f947dc27e36eac8bb3134153c4668d76a3a\"\u003e\u003ccode\u003eed819f9\u003c/code\u003e\u003c/a\u003e [ty] Treat custom enum \u003ccode\u003e__new__\u003c/code\u003e values as dynamic (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25136\"\u003e#25136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.12...0.15.13\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/AlessioMartello/umbra-sync/pull/11","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlessioMartello%2Fumbra-sync/issues/11","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/11/packages"}},{"old_version":"9.0.29","new_version":"9.0.30","update_type":"patch","path":"the minor-updates group","pr_created_at":"2026-05-12T02:47:38.000Z","version_change":"9.0.29 → 9.0.30","issue":{"uuid":"4425786335","node_id":"PR_kwDODVn7ys7agCbI","number":901,"state":"closed","title":"Bump phonenumbers from 9.0.29 to 9.0.30 in the minor-updates group","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-26T01:45:52.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-12T02:47:38.000Z","updated_at":"2026-05-26T01:45:54.000Z","time_to_close":1205894,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"phonenumbers","old_version":"9.0.29","new_version":"9.0.30","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"}],"path":"the minor-updates group","ecosystem":"pip"},"body":"Bumps the minor-updates group with 1 update: [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers).\n\nUpdates `phonenumbers` from 9.0.29 to 9.0.30\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/9eea7a8a6af3b26cfe2398711f96cb9666beb56a\"\u003e\u003ccode\u003e9eea7a8\u003c/code\u003e\u003c/a\u003e Prep for 9.0.30 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/52815d5423cb641ebfb0a41e17830c0ec5066d66\"\u003e\u003ccode\u003e52815d5\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/8775727a3f2a1c4e21454c53d5360c1f5cc128af\"\u003e\u003ccode\u003e8775727\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.30\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.29...v9.0.30\"\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=phonenumbers\u0026package-manager=uv\u0026previous-version=9.0.29\u0026new-version=9.0.30)](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 \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/Club-Alpin-Annecy/collectives/pull/901","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Club-Alpin-Annecy%2Fcollectives/issues/901","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/901/packages"}},{"old_version":"9.0.25","new_version":"9.0.29","update_type":"patch","path":null,"pr_created_at":"2026-05-04T09:29:43.000Z","version_change":"9.0.25 → 9.0.29","issue":{"uuid":"4375423107","node_id":"PR_kwDOR0tLLM7X8qvw","number":50,"state":"open","title":"chore(deps): bump the python-non-major group across 1 directory with 26 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-04T09:29:43.000Z","updated_at":"2026-05-04T09:33:30.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-non-major","update_count":26,"packages":[{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"ruff","old_version":"0.14.8","new_version":"0.15.12","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.19.0","new_version":"1.20.2","repository_url":"https://github.com/python/mypy"},{"name":"datamodel-code-generator","old_version":"0.45.0","new_version":"0.56.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"presidio-analyzer","old_version":"2.2.361","new_version":"2.2.362","repository_url":"https://github.com/Microsoft/presidio"},{"name":"spacy","old_version":"3.8.11","new_version":"3.8.14","repository_url":"https://github.com/explosion/spaCy"},{"name":"phonenumbers","old_version":"9.0.25","new_version":"9.0.29","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"},{"name":"onnxruntime","old_version":"1.24.2","new_version":"1.25.1","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"torch","old_version":"2.10.0","new_version":"2.11.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"pillow","old_version":"12.1.1","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"datasketch","old_version":"1.9.0","new_version":"1.10.0","repository_url":"https://github.com/ekzhu/datasketch"},{"name":"sentence-transformers","old_version":"5.2.3","new_version":"5.4.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"datasets","old_version":"4.6.0","new_version":"4.8.5","repository_url":"https://github.com/huggingface/datasets"},{"name":"psycopg2-binary","old_version":"2.9.11","new_version":"2.9.12","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pymysql","old_version":"1.1.2","new_version":"1.1.3","repository_url":"https://github.com/PyMySQL/PyMySQL"},{"name":"thrift","old_version":"0.20.0","new_version":"0.22.0","repository_url":"https://github.com/apache/thrift"},{"name":"snowflake-connector-python","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/snowflakedb/snowflake-connector-python"},{"name":"pymongo","old_version":"4.16.0","new_version":"4.17.0","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"boto3","old_version":"1.42.56","new_version":"1.43.2","repository_url":"https://github.com/boto/boto3"},{"name":"azure-identity","old_version":"1.25.2","new_version":"1.25.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"google-cloud-storage","old_version":"3.9.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"opentelemetry-sdk","old_version":"1.41.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-exporter-otlp-proto-http","old_version":"1.41.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-non-major group with 25 updates in the /apps/cli directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.3` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.8` | `0.15.12` |\n| [mypy](https://github.com/python/mypy) | `1.19.0` | `1.20.2` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.45.0` | `0.56.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [presidio-analyzer](https://github.com/Microsoft/presidio) | `2.2.361` | `2.2.362` |\n| [spacy](https://github.com/explosion/spaCy) | `3.8.11` | `3.8.14` |\n| [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) | `9.0.25` | `9.0.29` |\n| [onnxruntime](https://github.com/microsoft/onnxruntime) | `1.24.2` | `1.25.1` |\n| [torch](https://github.com/pytorch/pytorch) | `2.10.0` | `2.11.0` |\n| [pillow](https://github.com/python-pillow/Pillow) | `12.1.1` | `12.2.0` |\n| [datasketch](https://github.com/ekzhu/datasketch) | `1.9.0` | `1.10.0` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.3` | `5.4.1` |\n| [datasets](https://github.com/huggingface/datasets) | `4.6.0` | `4.8.5` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.11` | `2.9.12` |\n| [pymysql](https://github.com/PyMySQL/PyMySQL) | `1.1.2` | `1.1.3` |\n| [thrift](https://github.com/apache/thrift) | `0.20.0` | `0.22.0` |\n| [snowflake-connector-python](https://github.com/snowflakedb/snowflake-connector-python) | `4.3.0` | `4.4.0` |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.16.0` | `4.17.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.56` | `1.43.2` |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.2` | `1.25.3` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.9.0` | `3.10.1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.41.0` | `1.41.1` |\n| [opentelemetry-exporter-otlp-proto-http](https://github.com/open-telemetry/opentelemetry-python) | `1.41.0` | `1.41.1` |\n\n\nUpdates `pydantic` from 2.12.5 to 2.13.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/9e9a11132c980c4ec84ff6d2df06d4c1a55ca8f3\"\u003e\u003ccode\u003e9e9a111\u003c/code\u003e\u003c/a\u003e Fix backported test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1ec8c6aa0cae1c78409c6f31af738a24e16c7124\"\u003e\u003ccode\u003e1ec8c6a\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/fb4f2044436e9fa4ff9745479ce263016a99c4d6\"\u003e\u003ccode\u003efb4f204\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.5 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\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/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.8 to 0.15.12\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.12\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:ignore\u003c/code\u003e logical-line suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23404\"\u003e#23404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert preview changes to displayed diagnostic severity in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24789\"\u003e#24789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003etask-branch-as-short-circuit\u003c/code\u003e (\u003ccode\u003eAIR004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23579\"\u003e#23579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix \u003ccode\u003ebreak\u003c/code\u003e/\u003ccode\u003econtinue\u003c/code\u003e handling in \u003ccode\u003eloop-iterator-mutation\u003c/code\u003e (\u003ccode\u003eB909\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24440\"\u003e#24440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2701\u003c/code\u003e for type parameter scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24576\"\u003e#24576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Suggest \u003ccode\u003e.array\u003c/code\u003e as well in \u003ccode\u003ePD011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24805\"\u003e#24805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect default Unix permissions for cache files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24794\"\u003e#24794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR0124\u003c/code\u003e description not to claim self-comparison always returns the same value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24749\"\u003e#24749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Expand docs on reusable \u003ccode\u003eTypeVar\u003c/code\u003es and scoping (\u003ccode\u003eUP046\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24153\"\u003e#24153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rules table accessibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24711\"\u003e#24711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avasis-ai\"\u003e\u003ccode\u003e@​avasis-ai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShipItAndPray\"\u003e\u003ccode\u003e@​ShipItAndPray\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.12\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.12/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.12\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-24.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement \u003ccode\u003e#ruff:ignore\u003c/code\u003e logical-line suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23404\"\u003e#23404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert preview changes to displayed diagnostic severity in LSP (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24789\"\u003e#24789\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003etask-branch-as-short-circuit\u003c/code\u003e (\u003ccode\u003eAIR004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23579\"\u003e#23579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix \u003ccode\u003ebreak\u003c/code\u003e/\u003ccode\u003econtinue\u003c/code\u003e handling in \u003ccode\u003eloop-iterator-mutation\u003c/code\u003e (\u003ccode\u003eB909\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24440\"\u003e#24440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLC2701\u003c/code\u003e for type parameter scopes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24576\"\u003e#24576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epandas-vet\u003c/code\u003e] Suggest \u003ccode\u003e.array\u003c/code\u003e as well in \u003ccode\u003ePD011\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24805\"\u003e#24805\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCLI\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRespect default Unix permissions for cache files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24794\"\u003e#24794\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Fix \u003ccode\u003ePLR0124\u003c/code\u003e description not to claim self-comparison always returns the same value (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24749\"\u003e#24749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Expand docs on reusable \u003ccode\u003eTypeVar\u003c/code\u003es and scoping (\u003ccode\u003eUP046\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24153\"\u003e#24153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rules table accessibility (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24711\"\u003e#24711\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/woodruffw\"\u003e\u003ccode\u003e@​woodruffw\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/avasis-ai\"\u003e\u003ccode\u003e@​avasis-ai\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/denyszhak\"\u003e\u003ccode\u003e@​denyszhak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ShipItAndPray\"\u003e\u003ccode\u003e@​ShipItAndPray\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/majiayu000\"\u003e\u003ccode\u003e@​majiayu000\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/66f93cf7ed4d36325f35a452e4afa28268fbcd28\"\u003e\u003ccode\u003e66f93cf\u003c/code\u003e\u003c/a\u003e Bump 0.15.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24815\"\u003e#24815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/476a4d02e8e3b6c157ac39979d8b698a1b6baa91\"\u003e\u003ccode\u003e476a4d0\u003c/code\u003e\u003c/a\u003e [ty] Complete support for more detailed diagnostics on possibly unbound error...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ed669eab30095d6c51fe6cdef6050fb01276bcb3\"\u003e\u003ccode\u003eed669ea\u003c/code\u003e\u003c/a\u003e Implement \u003ccode\u003e#ruff:file-ignore\u003c/code\u003e file-level suppressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23599\"\u003e#23599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e73d952e43feb51356ee740c5a973fce81396ff6\"\u003e\u003ccode\u003ee73d952\u003c/code\u003e\u003c/a\u003e [ty] Include inferred type in \u003ccode\u003einvalid-key\u003c/code\u003e concise diagnostic for union/inte...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/80feb29b31cd98c093316df2e0407b0c70c01b55\"\u003e\u003ccode\u003e80feb29\u003c/code\u003e\u003c/a\u003e [ty] report only dead annotation-only locals as unused (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24811\"\u003e#24811\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0fbf2bc27336a3d17d39af52cf89b78dcda8c7c8\"\u003e\u003ccode\u003e0fbf2bc\u003c/code\u003e\u003c/a\u003e Drop deprecated license classifier (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24808\"\u003e#24808\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/43b174cc7f2fcb0080bb1d4843cd4bf6b72bbe27\"\u003e\u003ccode\u003e43b174c\u003c/code\u003e\u003c/a\u003e [ty] Infer lambda parameter types with \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24317\"\u003e#24317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4f449ae4a2377569330a5ab94799d389357b5a3f\"\u003e\u003ccode\u003e4f449ae\u003c/code\u003e\u003c/a\u003e [ty] Add error context for intersection types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24772\"\u003e#24772\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5b4e753acb46e96ad408e4904c15308e33efe307\"\u003e\u003ccode\u003e5b4e753\u003c/code\u003e\u003c/a\u003e [ty] Add support for goto in literal enum member inlay hint (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24792\"\u003e#24792\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e7cc76275a758ce1c636ea1c2d091fd576aac794\"\u003e\u003ccode\u003ee7cc762\u003c/code\u003e\u003c/a\u003e [ty] Add error context for TypedDict assignments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24790\"\u003e#24790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.8...0.15.12\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.19.0 to 1.20.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\u003ch3\u003eMypy 1.20.2\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse WAL with SQLite cache and fix close (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21154\"\u003e21154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust SQLite journal mode (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21217\"\u003e21217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCorrectly aggregate narrowing information on parent expressions (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21206\"\u003e21206\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression related to generic callables (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21208\"\u003e21208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression by avoiding widening types in some contexts (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21242\"\u003e21242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix slicing in non-strict optional mode (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21282\"\u003e21282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emypyc: Fix match statement semantics for \u0026quot;or\u0026quot; pattern (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21156\"\u003e21156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emypyc: Fix issue with module dunder attributes (Piotr Sawicki, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21275\"\u003e21275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInitial support for Python 3.15.0a8 (Marc Mueller, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21255\"\u003e21255\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eAaron Wieczorek\u003c/li\u003e\n\u003cli\u003eAdam Turner\u003c/li\u003e\n\u003cli\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003easce\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrent Westbrook\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChris Burroughs\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eColin Watson\u003c/li\u003e\n\u003cli\u003eDonghoon Nam\u003c/li\u003e\n\u003cli\u003eE. M. Bray\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eGeorge Ogden\u003c/li\u003e\n\u003cli\u003egetzze\u003c/li\u003e\n\u003cli\u003egrayjk\u003c/li\u003e\n\u003cli\u003eGregor Riepl\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilliard\u003c/li\u003e\n\u003cli\u003eJames Le Cuirot\u003c/li\u003e\n\u003cli\u003eJeremy Nimmer\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eKai (Kazuya Ito)\u003c/li\u003e\n\u003cli\u003ekaushal trivedi\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eLukas Geiger\u003c/li\u003e\n\u003cli\u003eŁukasz Langa\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael R. Crusoe\u003c/li\u003e\n\u003cli\u003emichaelm-openai\u003c/li\u003e\n\u003cli\u003eNeil Schemenauer\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/145a062651b5f9996b75ef32b7040bd2e885ed82\"\u003e\u003ccode\u003e145a062\u003c/code\u003e\u003c/a\u003e Bump version to 1.20.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/81cd49215c288eacb987de066f02daff2553b7c7\"\u003e\u003ccode\u003e81cd492\u003c/code\u003e\u003c/a\u003e Fix slicing with nonstrict optional (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21282\"\u003e#21282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/908d3441eecbaa2a6193165317177db834d7ca1a\"\u003e\u003ccode\u003e908d344\u003c/code\u003e\u003c/a\u003e [mypyc] Set dunder attrs when adding module to sys.modules (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21275\"\u003e#21275\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/ba28610fac9d2b33be210ca8dcfe4bc47b7af424\"\u003e\u003ccode\u003eba28610\u003c/code\u003e\u003c/a\u003e Initial support for Python 3.15.0a8 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21255\"\u003e#21255\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/7b0e09f48dbd3717ed008a273cd17e8e960c2037\"\u003e\u003ccode\u003e7b0e09f\u003c/code\u003e\u003c/a\u003e Fix match statement semantics for \u0026quot;or\u0026quot; pattern (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21156\"\u003e#21156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/92b74f226de62f7505f5ef5cb158e8ec9c58b8b7\"\u003e\u003ccode\u003e92b74f2\u003c/code\u003e\u003c/a\u003e Avoid widening types in conditional_types (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21242\"\u003e#21242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/0dcbfaa40b0e360a16baea9cf851955375d91b54\"\u003e\u003ccode\u003e0dcbfaa\u003c/code\u003e\u003c/a\u003e Fix is_overlapping_types for generic callables (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21208\"\u003e#21208\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/210f518dede35292033ef0d387847406a0ccef8f\"\u003e\u003ccode\u003e210f518\u003c/code\u003e\u003c/a\u003e Correctly aggregate narrowing information on parent expressions (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21206\"\u003e#21206\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c34530e53a10e385d8b0f1af4baa88a596b5ceaa\"\u003e\u003ccode\u003ec34530e\u003c/code\u003e\u003c/a\u003e Only set journal mode in coordinator (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21217\"\u003e#21217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/79a3ec6d01b56a27c00e9b3320c2b1d4d73a77f9\"\u003e\u003ccode\u003e79a3ec6\u003c/code\u003e\u003c/a\u003e Use WAL with SQLite cache, fix close (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21154\"\u003e#21154\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.19.0...v1.20.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.45.0 to 0.56.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.56.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\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/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.56.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003e--allow-remote-refs\u003c/code\u003e / \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e CLI option and \u003ccode\u003eallow_remote_refs\u003c/code\u003e config field - Remote \u003ccode\u003e$ref\u003c/code\u003e fetching over HTTP/HTTPS now emits a deprecation warning by default. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching entirely. In a future version, remote fetching will be disabled by default. Users relying on remote \u003ccode\u003e$ref\u003c/code\u003e resolution should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to their invocations to avoid the deprecation warning and prepare for the future default change. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003eSchemaFetchError\u003c/code\u003e exception for HTTP fetch failures - Remote schema fetching now raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (instead of propagating raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions) on HTTP errors, non-2xx status codes, or unexpected HTML responses. Users catching specific \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote ref resolution will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eError Handling Changes\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.1\"\u003e0.56.1\u003c/a\u003e - 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\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/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.0\"\u003e0.56.0\u003c/a\u003e - 2026-04-04\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\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/koxudaxi/datamodel-code-generator/commit/6274b70b58e6dab57a1797beb8006f9fcdbf7dbe\"\u003e\u003ccode\u003e6274b70\u003c/code\u003e\u003c/a\u003e Docs: describe --keep-model-order as deterministic dependency-aware ordering ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/3e87a9a4a712b2cb8ad6d9faaa85c86ac8838ffe\"\u003e\u003ccode\u003e3e87a9a\u003c/code\u003e\u003c/a\u003e Fix root model reuse collapse (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3089\"\u003e#3089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/51377952477da7ef39efcb2f3e256ae51ad7a1f8\"\u003e\u003ccode\u003e5137795\u003c/code\u003e\u003c/a\u003e tomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3088\"\u003e#3088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/d7a1f7166624eadcd84e97b8d2ca09e8c6dde957\"\u003e\u003ccode\u003ed7a1f71\u003c/code\u003e\u003c/a\u003e Fix relative URL refs with path-only root ids (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f0960e9e2362f1dab2facb55853d2e56a3a923b4\"\u003e\u003ccode\u003ef0960e9\u003c/code\u003e\u003c/a\u003e Prefer CLI input over pyproject url (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3083\"\u003e#3083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/05901ff4ad110b750dcfd996aeaca410767240cd\"\u003e\u003ccode\u003e05901ff\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json sup...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5ba49a72dbfc69dc781a87c6adadb785d794f475\"\u003e\u003ccode\u003e5ba49a7\u003c/code\u003e\u003c/a\u003e docs: update CHANGELOG.md for 0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/52d9ef9dec52f3ad14130710eefb010f0e492160\"\u003e\u003ccode\u003e52d9ef9\u003c/code\u003e\u003c/a\u003e [codex] Refresh project usage list (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7d41fef7884579d728fe42a1e266d8b950ccd72d\"\u003e\u003ccode\u003e7d41fef\u003c/code\u003e\u003c/a\u003e Support JSON files for mapping options (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5a8cd0da7a6d17bfd70c5c2623699ffc6aa818fd\"\u003e\u003ccode\u003e5a8cd0d\u003c/code\u003e\u003c/a\u003e Fix non-string OpenAPI discriminator literals (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.45.0...0.56.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.2 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `presidio-analyzer` from 2.2.361 to 2.2.362\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Microsoft/presidio/releases\"\u003epresidio-analyzer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2.2.362\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - GPU Device Control via Environment Variable by \u003ca href=\"https://github.com/RonShakutai\"\u003e\u003ccode\u003e@​RonShakutai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1844\"\u003emicrosoft/presidio#1844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add HuggingFaceNerRecognizer for direct NER model inference by \u003ca href=\"https://github.com/ultramancode\"\u003e\u003ccode\u003e@​ultramancode\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1834\"\u003emicrosoft/presidio#1834\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Broken Links by \u003ca href=\"https://github.com/andyjessen\"\u003e\u003ccode\u003e@​andyjessen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1856\"\u003emicrosoft/presidio#1856\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin dependencies to mitigate supply chain attacks by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1861\"\u003emicrosoft/presidio#1861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing CVE-2024-47874 and CVE-2025-54121 by \u003ca href=\"https://github.com/SharonHart\"\u003e\u003ccode\u003e@​SharonHart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1860\"\u003emicrosoft/presidio#1860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing CVE-2025-2953 and CVE-2025-3730 by \u003ca href=\"https://github.com/SharonHart\"\u003e\u003ccode\u003e@​SharonHart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1859\"\u003emicrosoft/presidio#1859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Fixed context enhancement substring matching bug  by \u003ca href=\"https://github.com/ravi-jindal\"\u003e\u003ccode\u003e@​ravi-jindal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1827\"\u003emicrosoft/presidio#1827\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix _process_names unconditionally treating all metadata as PHI by \u003ca href=\"https://github.com/Mr-Neutr0n\"\u003e\u003ccode\u003e@​Mr-Neutr0n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1855\"\u003emicrosoft/presidio#1855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add UK Postcode (UK_POSTCODE) recognizer by \u003ca href=\"https://github.com/tee-jagz\"\u003e\u003ccode\u003e@​tee-jagz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1858\"\u003emicrosoft/presidio#1858\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin ruff and build pip installs by hash for OSSF scorecard compliance by \u003ca hre...\n\n_Description has been truncated_","html_url":"https://github.com/classifyre-com/classifyre/pull/50","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/classifyre-com%2Fclassifyre/issues/50","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/50/packages"}},{"old_version":"9.0.19","new_version":"9.0.29","update_type":"patch","path":null,"pr_created_at":"2026-04-27T14:38:22.000Z","version_change":"9.0.19 → 9.0.29","issue":{"uuid":"4336560361","node_id":"PR_kwDOPuzaQs7WAHwe","number":62,"state":"open","title":"security(deps): bump phonenumbers from 9.0.19 to 9.0.29","user":"dependabot[bot]","labels":["security","dependencies","python"],"assignees":["arkalia-luna-system"],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-27T14:38:22.000Z","updated_at":"2026-04-27T14:45:02.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"security(deps)","packages":[{"name":"phonenumbers","old_version":"9.0.19","new_version":"9.0.29","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"}],"path":null,"ecosystem":"pip"},"body":"Bumps [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) from 9.0.19 to 9.0.29.\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/510e48693d61e0eda196e3306be9665317b54e3f\"\u003e\u003ccode\u003e510e486\u003c/code\u003e\u003c/a\u003e Prep for 9.0.29 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/61b9db6e20d2b4193fcbd0a33c61806d3fedc8a7\"\u003e\u003ccode\u003e61b9db6\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/8ed9a07abded2239c8bff5c11934c2e259e1cc08\"\u003e\u003ccode\u003e8ed9a07\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.29\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/6e7a12a49a9b01faf0887e6163b9e785ce7220b6\"\u003e\u003ccode\u003e6e7a12a\u003c/code\u003e\u003c/a\u003e Prep for 9.0.28 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/ff287efc6ac0889206cb39072ea1876bbe9754e0\"\u003e\u003ccode\u003eff287ef\u003c/code\u003e\u003c/a\u003e Merge code changes from upstream 9.0.28\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/665a4a76413ed67b1be5234a9c3b7aeae7e3630c\"\u003e\u003ccode\u003e665a4a7\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/57d319dc45f2868cfd18a06cbffc9a24e28deefc\"\u003e\u003ccode\u003e57d319d\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.28\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/3b082bf38fac2ac2a1556b9b416562f464c9d780\"\u003e\u003ccode\u003e3b082bf\u003c/code\u003e\u003c/a\u003e Prep for 9.0.27 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/c496532280afda5778e45d23d5feb621e55fc397\"\u003e\u003ccode\u003ec496532\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/ee29e8518101d039dbaf4463087a786e7c11e01d\"\u003e\u003ccode\u003eee29e85\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.27\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.19...v9.0.29\"\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=phonenumbers\u0026package-manager=pip\u0026previous-version=9.0.19\u0026new-version=9.0.29)](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/arkalia-luna-system/arkalia-cia/pull/62","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/arkalia-luna-system%2Farkalia-cia/issues/62","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/62/packages"}},{"old_version":"9.0.27","new_version":"9.0.28","update_type":"patch","path":null,"pr_created_at":"2026-04-21T08:45:48.000Z","version_change":"9.0.27 → 9.0.28","issue":{"uuid":"4301398122","node_id":"PR_kwDOOQMVns7UPJBG","number":1359,"state":"open","title":"Bump phonenumbers from 9.0.27 to 9.0.28","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-21T08:45:48.000Z","updated_at":"2026-04-27T09:02:21.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"phonenumbers","old_version":"9.0.27","new_version":"9.0.28","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"}],"path":null,"ecosystem":"pip"},"body":"Bumps [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) from 9.0.27 to 9.0.28.\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/6e7a12a49a9b01faf0887e6163b9e785ce7220b6\"\u003e\u003ccode\u003e6e7a12a\u003c/code\u003e\u003c/a\u003e Prep for 9.0.28 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/ff287efc6ac0889206cb39072ea1876bbe9754e0\"\u003e\u003ccode\u003eff287ef\u003c/code\u003e\u003c/a\u003e Merge code changes from upstream 9.0.28\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/665a4a76413ed67b1be5234a9c3b7aeae7e3630c\"\u003e\u003ccode\u003e665a4a7\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/57d319dc45f2868cfd18a06cbffc9a24e28deefc\"\u003e\u003ccode\u003e57d319d\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.28\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.27...v9.0.28\"\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/NHSDigital/dtos-manage-breast-screening/pull/1359","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/NHSDigital%2Fdtos-manage-breast-screening/issues/1359","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1359/packages"}},{"old_version":"9.0.25","new_version":"9.0.28","update_type":"patch","path":null,"pr_created_at":"2026-04-20T08:56:24.000Z","version_change":"9.0.25 → 9.0.28","issue":{"uuid":"4294409564","node_id":"PR_kwDOR0tLLM7T4gG0","number":46,"state":"open","title":"chore(deps): bump the python-non-major group across 1 directory with 19 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-20T08:56:24.000Z","updated_at":"2026-04-20T09:42:46.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-non-major","update_count":19,"packages":[{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.2","repository_url":"https://github.com/pydantic/pydantic"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"ruff","old_version":"0.14.8","new_version":"0.15.11","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.19.0","new_version":"1.20.1","repository_url":"https://github.com/python/mypy"},{"name":"datamodel-code-generator","old_version":"0.45.0","new_version":"0.56.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"presidio-analyzer","old_version":"2.2.361","new_version":"2.2.362","repository_url":"https://github.com/Microsoft/presidio"},{"name":"spacy","old_version":"3.8.11","new_version":"3.8.14","repository_url":"https://github.com/explosion/spaCy"},{"name":"phonenumbers","old_version":"9.0.25","new_version":"9.0.28","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"},{"name":"onnxruntime","old_version":"1.24.2","new_version":"1.24.4","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"torch","old_version":"2.10.0","new_version":"2.11.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"pillow","old_version":"12.1.1","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"datasketch","old_version":"1.9.0","new_version":"1.10.0","repository_url":"https://github.com/ekzhu/datasketch"},{"name":"sentence-transformers","old_version":"5.2.3","new_version":"5.4.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"datasets","old_version":"4.6.0","new_version":"4.8.4","repository_url":"https://github.com/huggingface/datasets"},{"name":"snowflake-connector-python","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/snowflakedb/snowflake-connector-python"},{"name":"boto3","old_version":"1.42.56","new_version":"1.42.91","repository_url":"https://github.com/boto/boto3"},{"name":"azure-identity","old_version":"1.25.2","new_version":"1.25.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"google-cloud-storage","old_version":"3.9.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-non-major group with 19 updates in the /apps/cli directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.2` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.8` | `0.15.11` |\n| [mypy](https://github.com/python/mypy) | `1.19.0` | `1.20.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.45.0` | `0.56.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [presidio-analyzer](https://github.com/Microsoft/presidio) | `2.2.361` | `2.2.362` |\n| [spacy](https://github.com/explosion/spaCy) | `3.8.11` | `3.8.14` |\n| [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) | `9.0.25` | `9.0.28` |\n| [onnxruntime](https://github.com/microsoft/onnxruntime) | `1.24.2` | `1.24.4` |\n| [torch](https://github.com/pytorch/pytorch) | `2.10.0` | `2.11.0` |\n| [pillow](https://github.com/python-pillow/Pillow) | `12.1.1` | `12.2.0` |\n| [datasketch](https://github.com/ekzhu/datasketch) | `1.9.0` | `1.10.0` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.3` | `5.4.1` |\n| [datasets](https://github.com/huggingface/datasets) | `4.6.0` | `4.8.4` |\n| [snowflake-connector-python](https://github.com/snowflakedb/snowflake-connector-python) | `4.3.0` | `4.4.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.56` | `1.42.91` |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.2` | `1.25.3` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.9.0` | `3.10.1` |\n\n\nUpdates `pydantic` from 2.12.5 to 2.13.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.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\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/v2.13.2/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13062\"\u003e#13062\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/17a35e371bdff348c0690651d324c91fc7c9ff9e\"\u003e\u003ccode\u003e17a35e3\u003c/code\u003e\u003c/a\u003e Update jiter to v0.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13064\"\u003e#13064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/feea402b23fa23774669908c4e08a61ba1e4238e\"\u003e\u003ccode\u003efeea402\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003esimulation\u003c/code\u003e mode in Codspeed CI (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13063\"\u003e#13063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/671c9b0d4d3f9b2f1b95ca32ac85cb69e824e0bc\"\u003e\u003ccode\u003e671c9b0\u003c/code\u003e\u003c/a\u003e Add basic benchmarks for model equality (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13061\"\u003e#13061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.5 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\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/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.8 to 0.15.11\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Omit overridden methods for \u003ccode\u003eASYNC109\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24648\"\u003e#24648\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Add override mention to \u003ccode\u003eASYNC109\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Neovim config examples to use \u003ccode\u003evim.lsp.config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24577\"\u003e#24577\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/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.11\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload ruff 0.15.11\u003c/h2\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eFile\u003c/th\u003e\n\u003cth\u003ePlatform\u003c/th\u003e\n\u003cth\u003eChecksum\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-apple-darwin.tar.gz\"\u003eruff-aarch64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eApple Silicon macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-x86_64-apple-darwin.tar.gz\"\u003eruff-x86_64-apple-darwin.tar.gz\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eIntel macOS\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-x86_64-apple-darwin.tar.gz.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-pc-windows-msvc.zip\"\u003eruff-aarch64-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003eARM64 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-aarch64-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-i686-pc-windows-msvc.zip\"\u003eruff-i686-pc-windows-msvc.zip\u003c/a\u003e\u003c/td\u003e\n\u003ctd\u003ex86 Windows\u003c/td\u003e\n\u003ctd\u003e\u003ca href=\"https://releases.astral.sh/github/ruff/releases/download/0.15.11/ruff-i686-pc-windows-msvc.zip.sha256\"\u003echecksum\u003c/a\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.11\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-16.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Ignore \u003ccode\u003eRUF029\u003c/code\u003e when function is decorated with \u003ccode\u003easynccontextmanager\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24642\"\u003e#24642\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Implement \u003ccode\u003eairflow-xcom-pull-in-template-string\u003c/code\u003e (\u003ccode\u003eAIR201\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23583\"\u003e#23583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Fix \u003ccode\u003eS103\u003c/code\u003e false positives and negatives in mask analysis (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24424\"\u003e#24424\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Omit overridden methods for \u003ccode\u003eASYNC109\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24648\"\u003e#24648\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Add override mention to \u003ccode\u003eASYNC109\u003c/code\u003e docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Neovim config examples to use \u003ccode\u003evim.lsp.config\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24577\"\u003e#24577\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/augustelalande\"\u003e\u003ccode\u003e@​augustelalande\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benberryallwood\"\u003e\u003ccode\u003e@​benberryallwood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Dev-iL\"\u003e\u003ccode\u003e@​Dev-iL\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\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/astral-sh/ruff/commit/53554b1cfe837f2eb992a81794480699478f1116\"\u003e\u003ccode\u003e53554b1\u003c/code\u003e\u003c/a\u003e Bump 0.15.11 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24678\"\u003e#24678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/08c56c83cffbb1025cbf5bdede6c6d8be591cf47\"\u003e\u003ccode\u003e08c56c8\u003c/code\u003e\u003c/a\u003e Factor out the \u003ccode\u003emdtest\u003c/code\u003e crate (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24616\"\u003e#24616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/725fbb736d2a999971449b61190b914abd26102a\"\u003e\u003ccode\u003e725fbb7\u003c/code\u003e\u003c/a\u003e [ty] Use partially qualified names when reporting diagnostics regarding bad c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/ddd6a30ff5fa27694dc1c50d0749885a1519d0a7\"\u003e\u003ccode\u003eddd6a30\u003c/code\u003e\u003c/a\u003e [ty] Do not suggest argument completion when at value of keyword argument (\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/9282e61d482a36da08d66bb8271afeef50b3bc45\"\u003e\u003ccode\u003e9282e61\u003c/code\u003e\u003c/a\u003e Disallow \u003ca href=\"https://github.com/disjoint\"\u003e\u003ccode\u003e@​disjoint\u003c/code\u003e\u003c/a\u003e_base on TypedDicts and Protocols (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24671\"\u003e#24671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9986d8e3008eefe2e387312c4dc8b9c60f6f362\"\u003e\u003ccode\u003ee9986d8\u003c/code\u003e\u003c/a\u003e [ty] Reject using properties with \u003ccode\u003eNever\u003c/code\u003e setters or deleters (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24510\"\u003e#24510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9cf212ff82f7b66b4a275ad6a9b1564aee1fa4a8\"\u003e\u003ccode\u003e9cf212f\u003c/code\u003e\u003c/a\u003e [ty] Normalize property setter and deleter wrappers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24509\"\u003e#24509\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/12a1589de4d7120cf99441ee4c14871bdc20968d\"\u003e\u003ccode\u003e12a1589\u003c/code\u003e\u003c/a\u003e Add override mention to ASYNC109 docs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24666\"\u003e#24666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/dccb03d010f4442ed60624f8d2ba932706abaabb\"\u003e\u003ccode\u003edccb03d\u003c/code\u003e\u003c/a\u003e [ty] Avoid panicking on overloaded \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24661\"\u003e#24661\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/61f9a0a5763fb068cd2f26c0ee9d63a277fb26c2\"\u003e\u003ccode\u003e61f9a0a\u003c/code\u003e\u003c/a\u003e [ty] Sync vendored typeshed stubs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24646\"\u003e#24646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.8...0.15.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.19.0 to 1.20.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.20.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways disable sync in SQLite cache (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21184\"\u003e21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTemporarily skip few base64 tests (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21193\"\u003e21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u003ccode\u003edict.__or__\u003c/code\u003e typeshed change (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21186\"\u003e21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing for match case with variadic tuples (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21192\"\u003e21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing \u003ccode\u003etype[T]\u003c/code\u003e in type calls (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21174\"\u003e21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression for catching empty tuple in except (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21153\"\u003e21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix reachability for frozenset and dict view narrowing (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21151\"\u003e21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing with chained comparison (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21150\"\u003e21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing to unreachable at module level (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21144\"\u003e21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow dangerous identity comparisons to \u003ccode\u003eAny\u003c/code\u003e typed variables (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21142\"\u003e21142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--warn-unused-config\u003c/code\u003e should not be a strict flag (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21139\"\u003e21139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eAaron Wieczorek\u003c/li\u003e\n\u003cli\u003eAdam Turner\u003c/li\u003e\n\u003cli\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003easce\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrent Westbrook\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChris Burroughs\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eColin Watson\u003c/li\u003e\n\u003cli\u003eDonghoon Nam\u003c/li\u003e\n\u003cli\u003eE. M. Bray\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eGeorge Ogden\u003c/li\u003e\n\u003cli\u003egetzze\u003c/li\u003e\n\u003cli\u003egrayjk\u003c/li\u003e\n\u003cli\u003eGregor Riepl\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilliard\u003c/li\u003e\n\u003cli\u003eJames Le Cuirot\u003c/li\u003e\n\u003cli\u003eJeremy Nimmer\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eKai (Kazuya Ito)\u003c/li\u003e\n\u003cli\u003ekaushal trivedi\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eLukas Geiger\u003c/li\u003e\n\u003cli\u003eŁukasz Langa\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael R. Crusoe\u003c/li\u003e\n\u003cli\u003emichaelm-openai\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c60e8bfcb5910974b577e443725c475e0485d269\"\u003e\u003ccode\u003ec60e8bf\u003c/code\u003e\u003c/a\u003e Bump version to 1.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/842e4927738264949e969df0c2ee285a13594d06\"\u003e\u003ccode\u003e842e492\u003c/code\u003e\u003c/a\u003e Always disable sync in SQLite cache (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21184\"\u003e#21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/e82a046356b242441fcd55c8cf922c7904ef311a\"\u003e\u003ccode\u003ee82a046\u003c/code\u003e\u003c/a\u003e Temporarily skip few base64 tests (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21193\"\u003e#21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f7fa418b6504e20c1277947e03a6db2f6d03e13e\"\u003e\u003ccode\u003ef7fa418\u003c/code\u003e\u003c/a\u003e Revert dict.\u003cstrong\u003eor\u003c/strong\u003e typeshed change (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21186\"\u003e#21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a2e8ee1afd5bbda26ad301496685295b1a7997a3\"\u003e\u003ccode\u003ea2e8ee1\u003c/code\u003e\u003c/a\u003e Fix narrowing for match case with variadic tuples (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21192\"\u003e#21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/521f88f510c2065132909928815f08502097ceea\"\u003e\u003ccode\u003e521f88f\u003c/code\u003e\u003c/a\u003e Avoid narrowing type[T] in type calls (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21174\"\u003e#21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4876e9186b927fe4777609fc9932752dcfb7047\"\u003e\u003ccode\u003ea4876e9\u003c/code\u003e\u003c/a\u003e Fix regression for catching empty tuple in except (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21153\"\u003e#21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/6fccffcac0c8c24034d4f2b262ca7e5564ba9375\"\u003e\u003ccode\u003e6fccffc\u003c/code\u003e\u003c/a\u003e Fix reachability for frozenset and dict view narrowing (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21151\"\u003e#21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/de50419dc84a66f0e8606308023f81a44dee54f3\"\u003e\u003ccode\u003ede50419\u003c/code\u003e\u003c/a\u003e Fix narrowing with chained comparison (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21150\"\u003e#21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/eafcf18ff1d83923c0f749cf3056962df63ed693\"\u003e\u003ccode\u003eeafcf18\u003c/code\u003e\u003c/a\u003e Avoid narrowing to unreachable at module level (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21144\"\u003e#21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.19.0...v1.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.45.0 to 0.56.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.56.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\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/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.56.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003e--allow-remote-refs\u003c/code\u003e / \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e CLI option and \u003ccode\u003eallow_remote_refs\u003c/code\u003e config field - Remote \u003ccode\u003e$ref\u003c/code\u003e fetching over HTTP/HTTPS now emits a deprecation warning by default. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching entirely. In a future version, remote fetching will be disabled by default. Users relying on remote \u003ccode\u003e$ref\u003c/code\u003e resolution should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to their invocations to avoid the deprecation warning and prepare for the future default change. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003eSchemaFetchError\u003c/code\u003e exception for HTTP fetch failures - Remote schema fetching now raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (instead of propagating raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions) on HTTP errors, non-2xx status codes, or unexpected HTML responses. Users catching specific \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote ref resolution will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eError Handling Changes\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.1\"\u003e0.56.1\u003c/a\u003e - 2026-04-16\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json support by \u003ca href=\"https://github.com/ilovelinux\"\u003e\u003ccode\u003e@​ilovelinux\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3075\"\u003ekoxudaxi/datamodel-code-generator#3075\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer CLI input over pyproject url by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3083\"\u003ekoxudaxi/datamodel-code-generator#3083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative URL refs with path-only root ids by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3085\"\u003ekoxudaxi/datamodel-code-generator#3085\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e by \u003ca href=\"https://github.com/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix root model reuse collapse by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3089\"\u003ekoxudaxi/datamodel-code-generator#3089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: describe --keep-model-order as deterministic dependency-aware ordering by \u003ca href=\"https://github.com/koxudaxi\"\u003e\u003ccode\u003e@​koxudaxi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3090\"\u003ekoxudaxi/datamodel-code-generator#3090\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/a-detiste\"\u003e\u003ccode\u003e@​a-detiste\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/pull/3088\"\u003ekoxudaxi/datamodel-code-generator#3088\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\"\u003ehttps://github.com/koxudaxi/datamodel-code-generator/compare/0.56.0...0.56.1\u003c/a\u003e\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.0\"\u003e0.56.0\u003c/a\u003e - 2026-04-04\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\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/koxudaxi/datamodel-code-generator/commit/6274b70b58e6dab57a1797beb8006f9fcdbf7dbe\"\u003e\u003ccode\u003e6274b70\u003c/code\u003e\u003c/a\u003e Docs: describe --keep-model-order as deterministic dependency-aware ordering ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/3e87a9a4a712b2cb8ad6d9faaa85c86ac8838ffe\"\u003e\u003ccode\u003e3e87a9a\u003c/code\u003e\u003c/a\u003e Fix root model reuse collapse (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3089\"\u003e#3089\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/51377952477da7ef39efcb2f3e256ae51ad7a1f8\"\u003e\u003ccode\u003e5137795\u003c/code\u003e\u003c/a\u003e tomli was merged under the name tomllib into std library \u003cem\u003e3.11\u003c/em\u003e (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3088\"\u003e#3088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/d7a1f7166624eadcd84e97b8d2ca09e8c6dde957\"\u003e\u003ccode\u003ed7a1f71\u003c/code\u003e\u003c/a\u003e Fix relative URL refs with path-only root ids (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f0960e9e2362f1dab2facb55853d2e56a3a923b4\"\u003e\u003ccode\u003ef0960e9\u003c/code\u003e\u003c/a\u003e Prefer CLI input over pyproject url (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3083\"\u003e#3083\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/05901ff4ad110b750dcfd996aeaca410767240cd\"\u003e\u003ccode\u003e05901ff\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003e--base-class-map\u003c/code\u003e and \u003ccode\u003e--enum-field-as-literal-map\u003c/code\u003e long inline json sup...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5ba49a72dbfc69dc781a87c6adadb785d794f475\"\u003e\u003ccode\u003e5ba49a7\u003c/code\u003e\u003c/a\u003e docs: update CHANGELOG.md for 0.56.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/52d9ef9dec52f3ad14130710eefb010f0e492160\"\u003e\u003ccode\u003e52d9ef9\u003c/code\u003e\u003c/a\u003e [codex] Refresh project usage list (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7d41fef7884579d728fe42a1e266d8b950ccd72d\"\u003e\u003ccode\u003e7d41fef\u003c/code\u003e\u003c/a\u003e Support JSON files for mapping options (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5a8cd0da7a6d17bfd70c5c2623699ffc6aa818fd\"\u003e\u003ccode\u003e5a8cd0d\u003c/code\u003e\u003c/a\u003e Fix non-string OpenAPI discriminator literals (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.45.0...0.56.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.2 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `presidio-analyzer` from 2.2.361 to 2.2.362\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Microsoft/presidio/releases\"\u003epresidio-analyzer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2.2.362\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - GPU Device Control via Environment Variable by \u003ca href=\"https://github.com/RonShakutai\"\u003e\u003ccode\u003e@​RonShakutai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1844\"\u003emicrosoft/presidio#1844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add HuggingFaceNerRecognizer for direct NER model inference by \u003ca href=\"https://github.com/ultramancode\"\u003e\u003ccode\u003e@​ultramancode\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1834\"\u003emicrosoft/presidio#1834\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Broken Links by \u003ca href=\"https://github.com/andyjessen\"\u003e\u003ccode\u003e@​andyjessen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1856\"\u003emicrosoft/presidio#1856\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin dependencies to mitigate supply chain attacks by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1861\"\u003emicrosoft/presidio#1861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing CVE-2024-47874 and CVE-2025-54121 by ...\n\n_Description has been truncated_","html_url":"https://github.com/classifyre-com/classifyre/pull/46","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/classifyre-com%2Fclassifyre/issues/46","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/46/packages"}},{"old_version":"\u003c10.0.0,\u003e=8.12","new_version":"\u003e=9.0.28,\u003c10.0.0","update_type":"patch","path":"/presidio-analyzer","pr_created_at":"2026-04-16T23:56:36.000Z","version_change":"\u003c10.0.0,\u003e=8.12 → \u003e=9.0.28,\u003c10.0.0","issue":{"uuid":"4279202770","node_id":"PR_kwDOR3_B5M7TJEUV","number":26,"state":"open","title":"Update phonenumbers requirement from \u003c10.0.0,\u003e=8.12 to \u003e=9.0.28,\u003c10.0.0 in /presidio-analyzer","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-16T23:56:36.000Z","updated_at":"2026-04-16T23:56:37.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"phonenumbers","old_version":"\u003c10.0.0,\u003e=8.12","new_version":"\u003e=9.0.28,\u003c10.0.0","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"}],"path":"/presidio-analyzer","ecosystem":"pip"},"body":"Updates the requirements on [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/6e7a12a49a9b01faf0887e6163b9e785ce7220b6\"\u003e\u003ccode\u003e6e7a12a\u003c/code\u003e\u003c/a\u003e Prep for 9.0.28 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/ff287efc6ac0889206cb39072ea1876bbe9754e0\"\u003e\u003ccode\u003eff287ef\u003c/code\u003e\u003c/a\u003e Merge code changes from upstream 9.0.28\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/665a4a76413ed67b1be5234a9c3b7aeae7e3630c\"\u003e\u003ccode\u003e665a4a7\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/57d319dc45f2868cfd18a06cbffc9a24e28deefc\"\u003e\u003ccode\u003e57d319d\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.28\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/3b082bf38fac2ac2a1556b9b416562f464c9d780\"\u003e\u003ccode\u003e3b082bf\u003c/code\u003e\u003c/a\u003e Prep for 9.0.27 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/c496532280afda5778e45d23d5feb621e55fc397\"\u003e\u003ccode\u003ec496532\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/ee29e8518101d039dbaf4463087a786e7c11e01d\"\u003e\u003ccode\u003eee29e85\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.27\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/07e2c75b1dc1d94c806755e4842410e19cd1e17e\"\u003e\u003ccode\u003e07e2c75\u003c/code\u003e\u003c/a\u003e Prep for 9.0.26 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/55522da42bff8bd7eefd08b17c978971bc60e135\"\u003e\u003ccode\u003e55522da\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/8ca762b2309a1df12f2eadf601ce413bf3cd1826\"\u003e\u003ccode\u003e8ca762b\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.26\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v8.12.0...v9.0.28\"\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/vjk7989/glowing-train/pull/26","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vjk7989%2Fglowing-train/issues/26","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/26/packages"}},{"old_version":"\u003e=8.13","new_version":"\u003e=9.0.28","update_type":null,"path":"/api","pr_created_at":"2026-04-13T21:23:41.000Z","version_change":"\u003e=8.13 → \u003e=9.0.28","issue":{"uuid":"4257972539","node_id":"PR_kwDORn3Eas7SHznr","number":41,"state":"open","title":"chore(deps): update phonenumbers requirement from \u003e=8.13 to \u003e=9.0.28 in /api","user":"dependabot[bot]","labels":[],"assignees":["cristiangilsanz"],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-13T21:23:41.000Z","updated_at":"2026-04-13T21:23:52.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): update","packages":[{"name":"phonenumbers","old_version":"\u003e=8.13","new_version":"\u003e=9.0.28","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"}],"path":"/api","ecosystem":"pip"},"body":"Updates the requirements on [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/6e7a12a49a9b01faf0887e6163b9e785ce7220b6\"\u003e\u003ccode\u003e6e7a12a\u003c/code\u003e\u003c/a\u003e Prep for 9.0.28 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/ff287efc6ac0889206cb39072ea1876bbe9754e0\"\u003e\u003ccode\u003eff287ef\u003c/code\u003e\u003c/a\u003e Merge code changes from upstream 9.0.28\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/665a4a76413ed67b1be5234a9c3b7aeae7e3630c\"\u003e\u003ccode\u003e665a4a7\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/57d319dc45f2868cfd18a06cbffc9a24e28deefc\"\u003e\u003ccode\u003e57d319d\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.28\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/3b082bf38fac2ac2a1556b9b416562f464c9d780\"\u003e\u003ccode\u003e3b082bf\u003c/code\u003e\u003c/a\u003e Prep for 9.0.27 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/c496532280afda5778e45d23d5feb621e55fc397\"\u003e\u003ccode\u003ec496532\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/ee29e8518101d039dbaf4463087a786e7c11e01d\"\u003e\u003ccode\u003eee29e85\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.27\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/07e2c75b1dc1d94c806755e4842410e19cd1e17e\"\u003e\u003ccode\u003e07e2c75\u003c/code\u003e\u003c/a\u003e Prep for 9.0.26 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/55522da42bff8bd7eefd08b17c978971bc60e135\"\u003e\u003ccode\u003e55522da\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/8ca762b2309a1df12f2eadf601ce413bf3cd1826\"\u003e\u003ccode\u003e8ca762b\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.26\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v8.13.0...v9.0.28\"\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/cristiangilsanz/qrew/pull/41","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/cristiangilsanz%2Fqrew/issues/41","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/41/packages"}},{"old_version":"9.0.27","new_version":"9.0.28","update_type":"patch","path":null,"pr_created_at":"2026-04-13T18:43:43.000Z","version_change":"9.0.27 → 9.0.28","issue":{"uuid":"4257115399","node_id":"PR_kwDOFIv_0c7SFLKT","number":52,"state":"open","title":"deps: bump phonenumbers from 9.0.27 to 9.0.28","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-13T18:43:43.000Z","updated_at":"2026-04-13T18:43:44.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps","packages":[{"name":"phonenumbers","old_version":"9.0.27","new_version":"9.0.28","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"}],"path":null,"ecosystem":"pip"},"body":"Bumps [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) from 9.0.27 to 9.0.28.\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/6e7a12a49a9b01faf0887e6163b9e785ce7220b6\"\u003e\u003ccode\u003e6e7a12a\u003c/code\u003e\u003c/a\u003e Prep for 9.0.28 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/ff287efc6ac0889206cb39072ea1876bbe9754e0\"\u003e\u003ccode\u003eff287ef\u003c/code\u003e\u003c/a\u003e Merge code changes from upstream 9.0.28\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/665a4a76413ed67b1be5234a9c3b7aeae7e3630c\"\u003e\u003ccode\u003e665a4a7\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/57d319dc45f2868cfd18a06cbffc9a24e28deefc\"\u003e\u003ccode\u003e57d319d\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.28\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.27...v9.0.28\"\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=phonenumbers\u0026package-manager=pip\u0026previous-version=9.0.27\u0026new-version=9.0.28)](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/askopintsev/shiftedblog/pull/52","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/askopintsev%2Fshiftedblog/issues/52","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/52/packages"}},{"old_version":"9.0.25","new_version":"9.0.27","update_type":"patch","path":"/apps/cli","pr_created_at":"2026-04-13T08:40:04.000Z","version_change":"9.0.25 → 9.0.27","issue":{"uuid":"4252748213","node_id":"PR_kwDOR0tLLM7R6rWf","number":38,"state":"open","title":"chore(deps): bump the python-non-major group in /apps/cli with 19 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-13T08:40:04.000Z","updated_at":"2026-04-20T10:06:09.564Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"python-non-major","update_count":19,"packages":[{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"ruff","old_version":"0.14.8","new_version":"0.15.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.19.0","new_version":"1.20.1","repository_url":"https://github.com/python/mypy"},{"name":"datamodel-code-generator","old_version":"0.45.0","new_version":"0.56.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"presidio-analyzer","old_version":"2.2.361","new_version":"2.2.362","repository_url":"https://github.com/Microsoft/presidio"},{"name":"presidio-anonymizer","old_version":"2.2.361","new_version":"2.2.362","repository_url":"https://github.com/Microsoft/presidio"},{"name":"spacy","old_version":"3.8.11","new_version":"3.8.14","repository_url":"https://github.com/explosion/spaCy"},{"name":"phonenumbers","old_version":"9.0.25","new_version":"9.0.27","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"},{"name":"pillow","old_version":"12.1.1","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"onnxruntime","old_version":"1.24.2","new_version":"1.24.4","repository_url":"https://github.com/microsoft/onnxruntime"},{"name":"torch","old_version":"2.10.0","new_version":"2.11.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"sentence-transformers","old_version":"5.2.3","new_version":"5.4.0","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"datasets","old_version":"4.6.0","new_version":"4.8.4","repository_url":"https://github.com/huggingface/datasets"},{"name":"gliner","old_version":"0.2.25","new_version":"0.2.26","repository_url":"https://github.com/urchade/GLiNER"},{"name":"snowflake-connector-python","old_version":"4.3.0","new_version":"4.4.0","repository_url":"https://github.com/snowflakedb/snowflake-connector-python"},{"name":"boto3","old_version":"1.42.56","new_version":"1.42.88","repository_url":"https://github.com/boto/boto3"},{"name":"azure-identity","old_version":"1.25.2","new_version":"1.25.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"google-cloud-storage","old_version":"3.9.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"}],"path":"/apps/cli","ecosystem":"pip"},"body":"Bumps the python-non-major group in /apps/cli with 19 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.8` | `0.15.10` |\n| [mypy](https://github.com/python/mypy) | `1.19.0` | `1.20.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.45.0` | `0.56.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [presidio-analyzer](https://github.com/Microsoft/presidio) | `2.2.361` | `2.2.362` |\n| [presidio-anonymizer](https://github.com/Microsoft/presidio) | `2.2.361` | `2.2.362` |\n| [spacy](https://github.com/explosion/spaCy) | `3.8.11` | `3.8.14` |\n| [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) | `9.0.25` | `9.0.27` |\n| [pillow](https://github.com/python-pillow/Pillow) | `12.1.1` | `12.2.0` |\n| [onnxruntime](https://github.com/microsoft/onnxruntime) | `1.24.2` | `1.24.4` |\n| [torch](https://github.com/pytorch/pytorch) | `2.10.0` | `2.11.0` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.3` | `5.4.0` |\n| [datasets](https://github.com/huggingface/datasets) | `4.6.0` | `4.8.4` |\n| [gliner](https://github.com/urchade/GLiNER) | `0.2.25` | `0.2.26` |\n| [snowflake-connector-python](https://github.com/snowflakedb/snowflake-connector-python) | `4.3.0` | `4.4.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.56` | `1.42.88` |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.2` | `1.25.3` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.9.0` | `3.10.1` |\n\nUpdates `requests` from 2.32.5 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\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/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.8 to 0.15.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for custom file extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument adding fixes in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24393\"\u003e#24393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24517\"\u003e#24517\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/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/silverstein\"\u003e\u003ccode\u003e@​silverstein\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shizukushq\"\u003e\u003ccode\u003e@​shizukushq\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.10\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.10/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for custom file extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument adding fixes in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24393\"\u003e#24393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24517\"\u003e#24517\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/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/silverstein\"\u003e\u003ccode\u003e@​silverstein\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shizukushq\"\u003e\u003ccode\u003e@​shizukushq\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.9\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-02.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Flag annotated variable redeclarations as \u003ccode\u003eF811\u003c/code\u003e in preview mode (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24244\"\u003e#24244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Allow dunder-named assignments in non-strict mode for \u003ccode\u003eRUF067\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24089\"\u003e#24089\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/252f76102a618bff6537b6c53c316ca3837f4abf\"\u003e\u003ccode\u003e252f761\u003c/code\u003e\u003c/a\u003e Bump 0.15.10 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24519\"\u003e#24519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/37a1ec8bb8e30955787b0cdf6e97f7f2254dba7f\"\u003e\u003ccode\u003e37a1ec8\u003c/code\u003e\u003c/a\u003e [ty] Fix assignability of intersections with bounded typevars (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24502\"\u003e#24502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f518cc9ca0c830773dd49c3964eb5e49d52c8aed\"\u003e\u003ccode\u003ef518cc9\u003c/code\u003e\u003c/a\u003e [ty] Allow partially stringified \u003ccode\u003etype[…]\u003c/code\u003e annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24518\"\u003e#24518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/16c4090d0a711b9c0523b932014f3daf140f35bc\"\u003e\u003ccode\u003e16c4090\u003c/code\u003e\u003c/a\u003e docs: fix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24517\"\u003e#24517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/99d97bd72f1934ac2af93e52468c10ef1c7a1a4e\"\u003e\u003ccode\u003e99d97bd\u003c/code\u003e\u003c/a\u003e [ty] Tighten up a few edge cases in \u003ccode\u003eConcatenate\u003c/code\u003e type-expression parsing (\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/2714e345bdd64a5baae3844c0d25db7b0b9fe330\"\u003e\u003ccode\u003e2714e34\u003c/code\u003e\u003c/a\u003e [ty] Enable \u003ccode\u003epull-diagnostics\u003c/code\u003e by default in E2E tests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24516\"\u003e#24516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d8bc700722ab1b7272a4d724839da7c569b349d4\"\u003e\u003ccode\u003ed8bc700\u003c/code\u003e\u003c/a\u003e LSP: Add support for custom extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a45f96d65dbd4f958b07accd718f8d2af48cb956\"\u003e\u003ccode\u003ea45f96d\u003c/code\u003e\u003c/a\u003e [ty] stop special-casing str constructor (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24514\"\u003e#24514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/87a0f01cfd016e0297ef05ab638cde006bf8d947\"\u003e\u003ccode\u003e87a0f01\u003c/code\u003e\u003c/a\u003e [ruff] Treat f-string interpolation as potential side effect in RUF019 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9ba8489b8d1f1fd5fd66887a74d5f2f58f733d4\"\u003e\u003ccode\u003ee9ba848\u003c/code\u003e\u003c/a\u003e [ty] Fix excess subscript argument inference for non-generic types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24354\"\u003e#24354\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.8...0.15.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.19.0 to 1.20.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.20.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways disable sync in SQLite cache (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21184\"\u003e21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTemporarily skip few base64 tests (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21193\"\u003e21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRevert \u003ccode\u003edict.__or__\u003c/code\u003e typeshed change (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21186\"\u003e21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing for match case with variadic tuples (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21192\"\u003e21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing \u003ccode\u003etype[T]\u003c/code\u003e in type calls (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21174\"\u003e21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix regression for catching empty tuple in except (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21153\"\u003e21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix reachability for frozenset and dict view narrowing (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21151\"\u003e21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix narrowing with chained comparison (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21150\"\u003e21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid narrowing to unreachable at module level (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21144\"\u003e21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow dangerous identity comparisons to \u003ccode\u003eAny\u003c/code\u003e typed variables (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21142\"\u003e21142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e--warn-unused-config\u003c/code\u003e should not be a strict flag (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/21139\"\u003e21139\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eAaron Wieczorek\u003c/li\u003e\n\u003cli\u003eAdam Turner\u003c/li\u003e\n\u003cli\u003eAli Hamdan\u003c/li\u003e\n\u003cli\u003easce\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003eBrent Westbrook\u003c/li\u003e\n\u003cli\u003eBrian Schubert\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChris Burroughs\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eColin Watson\u003c/li\u003e\n\u003cli\u003eDonghoon Nam\u003c/li\u003e\n\u003cli\u003eE. M. Bray\u003c/li\u003e\n\u003cli\u003eEmma Smith\u003c/li\u003e\n\u003cli\u003eEthan Sarp\u003c/li\u003e\n\u003cli\u003eGeorge Ogden\u003c/li\u003e\n\u003cli\u003egetzze\u003c/li\u003e\n\u003cli\u003egrayjk\u003c/li\u003e\n\u003cli\u003eGregor Riepl\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilliard\u003c/li\u003e\n\u003cli\u003eJames Le Cuirot\u003c/li\u003e\n\u003cli\u003eJeremy Nimmer\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eKai (Kazuya Ito)\u003c/li\u003e\n\u003cli\u003ekaushal trivedi\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eLukas Geiger\u003c/li\u003e\n\u003cli\u003eŁukasz Langa\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael R. Crusoe\u003c/li\u003e\n\u003cli\u003emichaelm-openai\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c60e8bfcb5910974b577e443725c475e0485d269\"\u003e\u003ccode\u003ec60e8bf\u003c/code\u003e\u003c/a\u003e Bump version to 1.20.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/842e4927738264949e969df0c2ee285a13594d06\"\u003e\u003ccode\u003e842e492\u003c/code\u003e\u003c/a\u003e Always disable sync in SQLite cache (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21184\"\u003e#21184\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/e82a046356b242441fcd55c8cf922c7904ef311a\"\u003e\u003ccode\u003ee82a046\u003c/code\u003e\u003c/a\u003e Temporarily skip few base64 tests (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21193\"\u003e#21193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f7fa418b6504e20c1277947e03a6db2f6d03e13e\"\u003e\u003ccode\u003ef7fa418\u003c/code\u003e\u003c/a\u003e Revert dict.\u003cstrong\u003eor\u003c/strong\u003e typeshed change (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21186\"\u003e#21186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a2e8ee1afd5bbda26ad301496685295b1a7997a3\"\u003e\u003ccode\u003ea2e8ee1\u003c/code\u003e\u003c/a\u003e Fix narrowing for match case with variadic tuples (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21192\"\u003e#21192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/521f88f510c2065132909928815f08502097ceea\"\u003e\u003ccode\u003e521f88f\u003c/code\u003e\u003c/a\u003e Avoid narrowing type[T] in type calls (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21174\"\u003e#21174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4876e9186b927fe4777609fc9932752dcfb7047\"\u003e\u003ccode\u003ea4876e9\u003c/code\u003e\u003c/a\u003e Fix regression for catching empty tuple in except (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21153\"\u003e#21153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/6fccffcac0c8c24034d4f2b262ca7e5564ba9375\"\u003e\u003ccode\u003e6fccffc\u003c/code\u003e\u003c/a\u003e Fix reachability for frozenset and dict view narrowing (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21151\"\u003e#21151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/de50419dc84a66f0e8606308023f81a44dee54f3\"\u003e\u003ccode\u003ede50419\u003c/code\u003e\u003c/a\u003e Fix narrowing with chained comparison (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21150\"\u003e#21150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/eafcf18ff1d83923c0f749cf3056962df63ed693\"\u003e\u003ccode\u003eeafcf18\u003c/code\u003e\u003c/a\u003e Avoid narrowing to unreachable at module level (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21144\"\u003e#21144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.19.0...v1.20.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `datamodel-code-generator` from 0.45.0 to 0.56.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases\"\u003edatamodel-code-generator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.56.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003e--allow-remote-refs\u003c/code\u003e / \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e CLI option and \u003ccode\u003eallow_remote_refs\u003c/code\u003e config field - Remote \u003ccode\u003e$ref\u003c/code\u003e fetching over HTTP/HTTPS now emits a deprecation warning by default. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching entirely. In a future version, remote fetching will be disabled by default. Users relying on remote \u003ccode\u003e$ref\u003c/code\u003e resolution should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to their invocations to avoid the deprecation warning and prepare for the future default change. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003eSchemaFetchError\u003c/code\u003e exception for HTTP fetch failures - Remote schema fetching now raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (instead of propagating raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions) on HTTP errors, non-2xx status codes, or unexpected HTML responses. Users catching specific \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote ref resolution will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eError Handling Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMissing local \u003ccode\u003e$ref\u003c/code\u003e now raises \u003ccode\u003eError\u003c/code\u003e instead of \u003ccode\u003eFileNotFoundError\u003c/code\u003e - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e pointed to a non-existent local file, a raw \u003ccode\u003eFileNotFoundError\u003c/code\u003e propagated to callers. Now it raises \u003ccode\u003edatamodel_code_generator.Error\u003c/code\u003e with the message \u003ccode\u003e\u0026quot;$ref file not found: \u0026lt;path\u0026gt;\u0026quot;\u003c/code\u003e. Programmatic users catching \u003ccode\u003eFileNotFoundError\u003c/code\u003e specifically will need to catch \u003ccode\u003eError\u003c/code\u003e instead (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP fetch failures now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead of propagating raw exceptions - HTTP errors (4xx/5xx status codes), unexpected HTML responses, and transport errors (DNS, timeout, connection) that previously resulted in downstream YAML/JSON parse errors or raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e (a subclass of \u003ccode\u003eError\u003c/code\u003e) before parsing is attempted. Users catching specific parse errors or \u003ccode\u003ehttpx\u003c/code\u003e exceptions for these scenarios will need to update their error handling (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP fetch errors now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead of raw httpx exceptions - The \u003ccode\u003eget_body()\u003c/code\u003e function in \u003ccode\u003ehttp.py\u003c/code\u003e now catches HTTP errors and raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (a new \u003ccode\u003eError\u003c/code\u003e subclass) for HTTP status \u0026gt;= 400, network failures, and unexpected HTML responses. Code that caught raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote schema fetching will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemote \u003ccode\u003e$ref\u003c/code\u003e fetching now emits \u003ccode\u003eFutureWarning\u003c/code\u003e without \u003ccode\u003e--allow-remote-refs\u003c/code\u003e - Fetching remote HTTP/HTTPS \u003ccode\u003e$ref\u003c/code\u003e references without explicitly passing \u003ccode\u003e--allow-remote-refs\u003c/code\u003e now emits a \u003ccode\u003eFutureWarning\u003c/code\u003e deprecation warning. In a future version, remote fetching will be disabled by default. Users relying on implicit remote ref fetching should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP fetch errors now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e with validation of response content type - Previously, fetching a remote \u003ccode\u003e$ref\u003c/code\u003e that returned an HTML error page would silently pass the HTML through as schema content. Now it raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e if the response has \u003ccode\u003etext/html\u003c/code\u003e content type or a 4xx/5xx status code. This may cause previously-silent failures to become loud errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDefault Behavior Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplicit remote \u003ccode\u003e$ref\u003c/code\u003e fetching now emits \u003ccode\u003eFutureWarning\u003c/code\u003e - When a \u003ccode\u003e$ref\u003c/code\u003e resolves to an HTTP(S) URL and \u003ccode\u003e--allow-remote-refs\u003c/code\u003e is not explicitly passed, the tool still fetches the remote reference but emits a \u003ccode\u003eFutureWarning\u003c/code\u003e. This may cause failures in environments running with \u003ccode\u003e-W error\u003c/code\u003e (warnings as errors) or strict warning filters. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e explicitly to suppress the warning (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemote \u003ccode\u003e$ref\u003c/code\u003e fetching now emits a \u003ccode\u003eFutureWarning\u003c/code\u003e - When the parser encounters an HTTP/HTTPS \u003ccode\u003e$ref\u003c/code\u003e without \u003ccode\u003e--allow-remote-refs\u003c/code\u003e being explicitly set, a \u003ccode\u003eFutureWarning\u003c/code\u003e is emitted warning that remote fetching will be disabled by default in a future version. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to silence the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching immediately. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eType alias templates updated with \u003ccode\u003efields\u003c/code\u003e guard - All six type alias templates (\u003ccode\u003eTypeAliasAnnotation.jinja2\u003c/code\u003e, \u003ccode\u003eTypeAliasType.jinja2\u003c/code\u003e, \u003ccode\u003eTypeStatement.jinja2\u003c/code\u003e, \u003ccode\u003eUnionTypeAliasAnnotation.jinja2\u003c/code\u003e, \u003ccode\u003eUnionTypeAliasType.jinja2\u003c/code\u003e, \u003ccode\u003eUnionTypeStatement.jinja2\u003c/code\u003e) now wrap the main body in \u003ccode\u003e{% if fields %}...{% else %}\u003c/code\u003e blocks that fall back to \u003ccode\u003e{{ base_class }}\u003c/code\u003e when no fields are present. Users with custom copies of these templates must add the same guard or handle the empty-fields case. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType alias Jinja2 templates now require \u003ccode\u003efields\u003c/code\u003e guard and \u003ccode\u003ebase_class\u003c/code\u003e fallback - The built-in templates \u003ccode\u003eTypeAliasAnnotation.jinja2\u003c/code\u003e, \u003ccode\u003eTypeAliasType.jinja2\u003c/code\u003e, \u003ccode\u003eTypeStatement.jinja2\u003c/code\u003e, and their Union variants now wrap field access in \u003ccode\u003e{%- if fields %}...{%- else %}\u003c/code\u003e blocks with a \u003ccode\u003ebase_class\u003c/code\u003e fallback for empty field lists. Users with custom templates derived from the old versions will need to add similar guards. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType alias templates (\u003ccode\u003eTypeAliasAnnotation.jinja2\u003c/code\u003e, \u003ccode\u003eTypeAliasType.jinja2\u003c/code\u003e, \u003ccode\u003eTypeStatement.jinja2\u003c/code\u003e, and their Union variants) now handle an empty \u003ccode\u003efields\u003c/code\u003e list with a fallback to \u003ccode\u003ebase_class\u003c/code\u003e - If you have custom copies of these templates, they need to be updated to include the new \u003ccode\u003e{%- if fields %}...{%- else %}...{%- endif %}\u003c/code\u003e branching logic. Without this update, custom templates may error when \u003ccode\u003efields\u003c/code\u003e is empty. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\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/koxudaxi/datamodel-code-generator/blob/main/CHANGELOG.md\"\u003edatamodel-code-generator's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/releases/tag/0.56.0\"\u003e0.56.0\u003c/a\u003e - 2026-04-04\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003ch3\u003eCode Generation Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenerated default field syntax changed - Fields with structured defaults (dicts, lists, model references) now use \u003ccode\u003eField(default_value, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e. This produces simpler, more readable code but changes the generated output format. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTypeAdapter import removed from generated code - Generated models no longer import \u003ccode\u003eTypeAdapter\u003c/code\u003e from pydantic since \u003ccode\u003evalidate_default=True\u003c/code\u003e handles validation natively. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault value handling for model-referencing fields rewritten - Fields with defaults referencing Pydantic models (BaseModel, RootModel, type aliases) now generate \u003ccode\u003eField(\u0026lt;raw_value\u0026gt;, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e, \u003ccode\u003edefault_factory=lambda: TypeAdapter(...).validate_python(...)\u003c/code\u003e, or \u003ccode\u003edefault_factory=lambda: Model(...)\u003c/code\u003e. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. The generated code is semantically equivalent under Pydantic v2 but textually different, which will break snapshot tests or tooling that matches exact output. \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e is no longer imported in generated code. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDefault values for model-referencing fields now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory\u003c/code\u003e lambdas - Fields with structured defaults (dicts, lists, or scalars referencing Pydantic models/RootModels) previously generated \u003ccode\u003edefault_factory=lambda: ModelName.model_validate(value)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: ModelName(value)\u003c/code\u003e. They now generate \u003ccode\u003eField(value, validate_default=True)\u003c/code\u003e, producing simpler but different output. Empty collection defaults changed from \u003ccode\u003edefault_factory=list\u003c/code\u003e/\u003ccode\u003edefault_factory=dict\u003c/code\u003e to \u003ccode\u003eField([], validate_default=True)\u003c/code\u003e/\u003ccode\u003eField({}, validate_default=True)\u003c/code\u003e. Users who regenerate code will see different output. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\nBefore:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(default_factory=lambda: CountType(10))\r\nitems: dict[str, Item] | None = Field(default_factory=dict, title='Items')\r\n\u003c/code\u003e\u003c/pre\u003e\nAfter:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003ecount: CountType | None = Field(10, validate_default=True)\r\nitems: dict[str, Item] | None = Field({}, title='Items', validate_default=True)\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003cli\u003eDefault values for fields referencing models now use \u003ccode\u003evalidate_default=True\u003c/code\u003e instead of \u003ccode\u003edefault_factory=lambda:\u003c/code\u003e - Fields with structured defaults (dicts/lists) that reference Pydantic models previously generated \u003ccode\u003edefault_factory=lambda: Model.model_validate(...)\u003c/code\u003e or \u003ccode\u003edefault_factory=lambda: TypeAdapter(Type).validate_python(...)\u003c/code\u003e patterns. They now generate the raw default value directly with \u003ccode\u003evalidate_default=True\u003c/code\u003e (e.g., \u003ccode\u003eField({'key': 'val'}, validate_default=True)\u003c/code\u003e instead of \u003ccode\u003eField(default_factory=lambda: Model.model_validate({'key': 'val'}))\u003c/code\u003e). This changes the generated code output and may affect users who depend on the exact generated code structure, pin generated output in tests, or use custom post-processing. The runtime behavior should be equivalent for Pydantic v2 users. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTypeAdapter\u003c/code\u003e import removed from generated code - Generated code no longer imports \u003ccode\u003epydantic.TypeAdapter\u003c/code\u003e for default value handling. Code that previously used \u003ccode\u003eTypeAdapter(...).validate_python(...)\u003c/code\u003e in default factories now uses inline defaults with \u003ccode\u003evalidate_default=True\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInteger and boolean discriminator values now supported in generated Literal types - Discriminator fields previously only generated string literal values. They now support \u003ccode\u003eint\u003c/code\u003e and \u003ccode\u003ebool\u003c/code\u003e discriminator values (e.g., \u003ccode\u003eLiteral[1]\u003c/code\u003e instead of \u003ccode\u003eLiteral['1']\u003c/code\u003e), which changes generated code for schemas using integer discriminator mappings. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAPI/CLI Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e classes removed - These internal classes were exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e and have been removed. Code importing these types will break:\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before (broken)\r\nfrom datamodel_code_generator.model.base import ValidatedDefault, WrappedDefault\r\n\u003c/code\u003e\u003c/pre\u003e\n(\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables removed - These flags were removed from the \u003ccode\u003eDataModel\u003c/code\u003e base class. Custom model classes that override these variables will see attribute errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3050\"\u003e#3050\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eInternal types \u003ccode\u003eValidatedDefault\u003c/code\u003e and \u003ccode\u003eWrappedDefault\u003c/code\u003e removed - The \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e module was deleted and \u003ccode\u003eValidatedDefault\u003c/code\u003e/\u003ccode\u003eWrappedDefault\u003c/code\u003e are no longer exported from \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e. Code that imports or subclasses these types will break. The \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables were removed from \u003ccode\u003eDataModel\u003c/code\u003e and its subclasses; custom model classes referencing these attributes will need updating. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eWrappedDefault\u003c/code\u003e, \u003ccode\u003eValidatedDefault\u003c/code\u003e classes and \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e, \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e class variables - The \u003ccode\u003eWrappedDefault\u003c/code\u003e and \u003ccode\u003eValidatedDefault\u003c/code\u003e classes from \u003ccode\u003edatamodel_code_generator.model._types\u003c/code\u003e (re-exported via \u003ccode\u003edatamodel_code_generator.model.base\u003c/code\u003e) have been deleted. The \u003ccode\u003eDataModel\u003c/code\u003e class variables \u003ccode\u003eSUPPORTS_WRAPPED_DEFAULT\u003c/code\u003e and \u003ccode\u003eSUPPORTS_VALIDATED_DEFAULT\u003c/code\u003e have also been removed. Code that imports or references these will break. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003e--allow-remote-refs\u003c/code\u003e / \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e CLI option and \u003ccode\u003eallow_remote_refs\u003c/code\u003e config field - Remote \u003ccode\u003e$ref\u003c/code\u003e fetching over HTTP/HTTPS now emits a deprecation warning by default. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching entirely. In a future version, remote fetching will be disabled by default. Users relying on remote \u003ccode\u003e$ref\u003c/code\u003e resolution should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to their invocations to avoid the deprecation warning and prepare for the future default change. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNew \u003ccode\u003eSchemaFetchError\u003c/code\u003e exception for HTTP fetch failures - Remote schema fetching now raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (instead of propagating raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions) on HTTP errors, non-2xx status codes, or unexpected HTML responses. Users catching specific \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote ref resolution will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eError Handling Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMissing local \u003ccode\u003e$ref\u003c/code\u003e now raises \u003ccode\u003eError\u003c/code\u003e instead of \u003ccode\u003eFileNotFoundError\u003c/code\u003e - Previously, when a \u003ccode\u003e$ref\u003c/code\u003e pointed to a non-existent local file, a raw \u003ccode\u003eFileNotFoundError\u003c/code\u003e propagated to callers. Now it raises \u003ccode\u003edatamodel_code_generator.Error\u003c/code\u003e with the message \u003ccode\u003e\u0026quot;$ref file not found: \u0026lt;path\u0026gt;\u0026quot;\u003c/code\u003e. Programmatic users catching \u003ccode\u003eFileNotFoundError\u003c/code\u003e specifically will need to catch \u003ccode\u003eError\u003c/code\u003e instead (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP fetch failures now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead of propagating raw exceptions - HTTP errors (4xx/5xx status codes), unexpected HTML responses, and transport errors (DNS, timeout, connection) that previously resulted in downstream YAML/JSON parse errors or raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e (a subclass of \u003ccode\u003eError\u003c/code\u003e) before parsing is attempted. Users catching specific parse errors or \u003ccode\u003ehttpx\u003c/code\u003e exceptions for these scenarios will need to update their error handling (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP fetch errors now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead of raw httpx exceptions - The \u003ccode\u003eget_body()\u003c/code\u003e function in \u003ccode\u003ehttp.py\u003c/code\u003e now catches HTTP errors and raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e (a new \u003ccode\u003eError\u003c/code\u003e subclass) for HTTP status \u0026gt;= 400, network failures, and unexpected HTML responses. Code that caught raw \u003ccode\u003ehttpx\u003c/code\u003e exceptions from remote schema fetching will need to catch \u003ccode\u003eSchemaFetchError\u003c/code\u003e instead. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemote \u003ccode\u003e$ref\u003c/code\u003e fetching now emits \u003ccode\u003eFutureWarning\u003c/code\u003e without \u003ccode\u003e--allow-remote-refs\u003c/code\u003e - Fetching remote HTTP/HTTPS \u003ccode\u003e$ref\u003c/code\u003e references without explicitly passing \u003ccode\u003e--allow-remote-refs\u003c/code\u003e now emits a \u003ccode\u003eFutureWarning\u003c/code\u003e deprecation warning. In a future version, remote fetching will be disabled by default. Users relying on implicit remote ref fetching should add \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to suppress the warning. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHTTP fetch errors now raise \u003ccode\u003eSchemaFetchError\u003c/code\u003e with validation of response content type - Previously, fetching a remote \u003ccode\u003e$ref\u003c/code\u003e that returned an HTML error page would silently pass the HTML through as schema content. Now it raises \u003ccode\u003eSchemaFetchError\u003c/code\u003e if the response has \u003ccode\u003etext/html\u003c/code\u003e content type or a 4xx/5xx status code. This may cause previously-silent failures to become loud errors. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDefault Behavior Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplicit remote \u003ccode\u003e$ref\u003c/code\u003e fetching now emits \u003ccode\u003eFutureWarning\u003c/code\u003e - When a \u003ccode\u003e$ref\u003c/code\u003e resolves to an HTTP(S) URL and \u003ccode\u003e--allow-remote-refs\u003c/code\u003e is not explicitly passed, the tool still fetches the remote reference but emits a \u003ccode\u003eFutureWarning\u003c/code\u003e. This may cause failures in environments running with \u003ccode\u003e-W error\u003c/code\u003e (warnings as errors) or strict warning filters. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e explicitly to suppress the warning (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemote \u003ccode\u003e$ref\u003c/code\u003e fetching now emits a \u003ccode\u003eFutureWarning\u003c/code\u003e - When the parser encounters an HTTP/HTTPS \u003ccode\u003e$ref\u003c/code\u003e without \u003ccode\u003e--allow-remote-refs\u003c/code\u003e being explicitly set, a \u003ccode\u003eFutureWarning\u003c/code\u003e is emitted warning that remote fetching will be disabled by default in a future version. Pass \u003ccode\u003e--allow-remote-refs\u003c/code\u003e to silence the warning, or \u003ccode\u003e--no-allow-remote-refs\u003c/code\u003e to block remote fetching immediately. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCustom Template Update Required\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eType alias templates updated with \u003ccode\u003efields\u003c/code\u003e guard - All six type alias templates (\u003ccode\u003eTypeAliasAnnotation.jinja2\u003c/code\u003e, \u003ccode\u003eTypeAliasType.jinja2\u003c/code\u003e, \u003ccode\u003eTypeStatement.jinja2\u003c/code\u003e, \u003ccode\u003eUnionTypeAliasAnnotation.jinja2\u003c/code\u003e, \u003ccode\u003eUnionTypeAliasType.jinja2\u003c/code\u003e, \u003ccode\u003eUnionTypeStatement.jinja2\u003c/code\u003e) now wrap the main body in \u003ccode\u003e{% if fields %}...{% else %}\u003c/code\u003e blocks that fall back to \u003ccode\u003e{{ base_class }}\u003c/code\u003e when no fields are present. Users with custom copies of these templates must add the same guard or handle the empty-fields case. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eType alias Jinja2 templates now require \u003ccode\u003efields\u003c/code\u003e guard and \u003ccode\u003ebase_class\u003c/code\u003e fallback - The built-in templates \u003ccode\u003eTypeAliasAnnotation.jinja2\u003c/code\u003e, \u003ccode\u003eTypeAliasType.jinja2\u003c/code\u003e, \u003ccode\u003eTypeStatement.jinja2\u003c/code\u003e, and their Union variants now wrap field access in \u003ccode\u003e{%- if fields %}...{%- else %}\u003c/code\u003e blocks with a \u003ccode\u003ebase_class\u003c/code\u003e fallback for empty field lists. Users with custom templates derived from the old versions will need to add similar guards. (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\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/koxudaxi/datamodel-code-generator/commit/52d9ef9dec52f3ad14130710eefb010f0e492160\"\u003e\u003ccode\u003e52d9ef9\u003c/code\u003e\u003c/a\u003e [codex] Refresh project usage list (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3072\"\u003e#3072\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7d41fef7884579d728fe42a1e266d8b950ccd72d\"\u003e\u003ccode\u003e7d41fef\u003c/code\u003e\u003c/a\u003e Support JSON files for mapping options (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3071\"\u003e#3071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5a8cd0da7a6d17bfd70c5c2623699ffc6aa818fd\"\u003e\u003ccode\u003e5a8cd0d\u003c/code\u003e\u003c/a\u003e Fix non-string OpenAPI discriminator literals (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3070\"\u003e#3070\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5dcbc09a9086febf62e92f11b88215584d3a5c45\"\u003e\u003ccode\u003e5dcbc09\u003c/code\u003e\u003c/a\u003e Fix type alias template crash with reuse_model on empty fields (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/8c965997f005f75c244cb377b3a800b80d261474\"\u003e\u003ccode\u003e8c96599\u003c/code\u003e\u003c/a\u003e docs: update llms.txt files\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/c7710792c277892f55b6954886aa1ffecb6aaf49\"\u003e\u003ccode\u003ec771079\u003c/code\u003e\u003c/a\u003e docs: update CLI reference documentation and prompt data\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/f6d4cbd3440a84e801566fa758ab2bf483322082\"\u003e\u003ccode\u003ef6d4cbd\u003c/code\u003e\u003c/a\u003e Add --allow-remote-refs to disable HTTP fetching of $ref by default (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3051\"\u003e#3051\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/7e1a5c751b7b4b07aaf7d860d93162f1a75822b7\"\u003e\u003ccode\u003e7e1a5c7\u003c/code\u003e\u003c/a\u003e Update release draft model and preserve breaking changes (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3057\"\u003e#3057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/5bd8eab9f5b5f64c146e170f9fae25ea7602daea\"\u003e\u003ccode\u003e5bd8eab\u003c/code\u003e\u003c/a\u003e Add ryaml as optional YAML backend for faster parsing (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3055\"\u003e#3055\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/commit/af51cd7cae6c73dc90e55d40dac85e1ae65897df\"\u003e\u003ccode\u003eaf51cd7\u003c/code\u003e\u003c/a\u003e Update projects list with notable AI/LLM ecosystem projects (\u003ca href=\"https://redirect.github.com/koxudaxi/datamodel-code-generator/issues/3053\"\u003e#3053\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/koxudaxi/datamodel-code-generator/compare/0.45.0...0.56.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.2 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.2...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `presidio-analyzer` from 2.2.361 to 2.2.362\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Microsoft/presidio/releases\"\u003epresidio-analyzer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 2.2.362\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFeature - GPU Device Control via Environment Variable by \u003ca href=\"https://github.com/RonShakutai\"\u003e\u003ccode\u003e@​RonShakutai\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1844\"\u003emicrosoft/presidio#1844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add HuggingFaceNerRecognizer for direct NER model inference by \u003ca href=\"https://github.com/ultramancode\"\u003e\u003ccode\u003e@​ultramancode\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1834\"\u003emicrosoft/presidio#1834\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Broken Links by \u003ca href=\"https://github.com/andyjessen\"\u003e\u003ccode\u003e@​andyjessen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1856\"\u003emicrosoft/presidio#1856\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin dependencies to mitigate supply chain attacks by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1861\"\u003emicrosoft/presidio#1861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing CVE-2024-47874 and CVE-2025-54121 by \u003ca href=\"https://github.com/SharonHart\"\u003e\u003ccode\u003e@​SharonHart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1860\"\u003emicrosoft/presidio#1860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixing CVE-2025-2953 and CVE-2025-3730 by \u003ca href=\"https://github.com/SharonHart\"\u003e\u003ccode\u003e@​SharonHart\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1859\"\u003emicrosoft/presidio#1859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Fixed context enhancement substring matching bug  by \u003ca href=\"https://github.com/ravi-jindal\"\u003e\u003ccode\u003e@​ravi-jindal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1827\"\u003emicrosoft/presidio#1827\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix _process_names unconditionally treating all metadata as PHI by \u003ca href=\"https://github.com/Mr-Neutr0n\"\u003e\u003ccode\u003e@​Mr-Neutr0n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1855\"\u003emicrosoft/presidio#1855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: Add UK Postcode (UK_POSTCODE) recognizer by \u003ca href=\"https://github.com/tee-jagz\"\u003e\u003ccode\u003e@​tee-jagz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/microsoft/presidio/pull/1858\"\u003emicrosoft/presidio#1858\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin ruff and build pip installs by hash for OSSF scorecard compliance by \u003ca href=\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"ht...\n\n_Description has been truncated_","html_url":"https://github.com/classifyre-com/classifyre/pull/38","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/classifyre-com%2Fclassifyre/issues/38","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/38/packages"}},{"old_version":"9.0.25","new_version":"9.0.27","update_type":"patch","path":null,"pr_created_at":"2026-04-07T06:47:49.000Z","version_change":"9.0.25 → 9.0.27","issue":{"uuid":"4215973639","node_id":"PR_kwDOODMdZs7QZ--g","number":49,"state":"closed","title":"Bump the pip-dependencies group across 1 directory with 15 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-14T06:46:53.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-07T06:47:49.000Z","updated_at":"2026-04-14T06:46:55.000Z","time_to_close":604744,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip-dependencies","update_count":15,"packages":[{"name":"attrs","old_version":"25.4.0","new_version":"26.1.0","repository_url":"https://github.com/python-attrs/attrs"},{"name":"boto3","old_version":"1.42.64","new_version":"1.42.84","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.42.64","new_version":"1.42.84","repository_url":"https://github.com/boto/botocore"},{"name":"cbor2","old_version":"5.8.0","new_version":"5.9.0","repository_url":"https://github.com/agronholm/cbor2"},{"name":"charset-normalizer","old_version":"3.4.5","new_version":"3.4.7","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.1","new_version":"8.3.2","repository_url":"https://github.com/pallets/click"},{"name":"gunicorn","old_version":"23.0.0","new_version":"25.3.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"nh3","old_version":"0.3.3","new_version":"0.3.4","repository_url":"https://github.com/messense/nh3"},{"name":"phonenumbers","old_version":"9.0.25","new_version":"9.0.27","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.12.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyopenssl","old_version":"25.3.0","new_version":"26.0.0","repository_url":"https://github.com/pyca/pyopenssl"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"sqlalchemy","old_version":"2.0.48","new_version":"2.0.49","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"tzdata","old_version":"2025.3","new_version":"2026.1","repository_url":"https://github.com/python/tzdata"},{"name":"werkzeug","old_version":"3.1.6","new_version":"3.1.8","repository_url":"https://github.com/pallets/werkzeug"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-dependencies group with 15 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [attrs](https://github.com/python-attrs/attrs) | `25.4.0` | `26.1.0` |\n| [boto3](https://github.com/boto/boto3) | `1.42.64` | `1.42.84` |\n| [botocore](https://github.com/boto/botocore) | `1.42.64` | `1.42.84` |\n| [cbor2](https://github.com/agronholm/cbor2) | `5.8.0` | `5.9.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.5` | `3.4.7` |\n| [click](https://github.com/pallets/click) | `8.3.1` | `8.3.2` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `25.3.0` |\n| [nh3](https://github.com/messense/nh3) | `0.3.3` | `0.3.4` |\n| [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) | `9.0.25` | `9.0.27` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.12.1` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `25.3.0` | `26.0.0` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.48` | `2.0.49` |\n| [tzdata](https://github.com/python/tzdata) | `2025.3` | `2026.1` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.6` | `3.1.8` |\n\n\nUpdates `attrs` from 25.4.0 to 26.1.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-attrs/attrs/releases\"\u003eattrs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.1.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eThe main outward change here only affects people using field transformers, but it should be a nice quality of life improvement!\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eFull changelog below!\u003c/em\u003e\u003c/p\u003e\n\u003ch2\u003eSpecial Thanks\u003c/h2\u003e\n\u003cp\u003eThis release would not be possible without my generous sponsors! Thank you to all of you making sustainable maintenance possible! If \u003cem\u003eyou\u003c/em\u003e would like to join them, go to \u003ca href=\"https://github.com/sponsors/hynek\"\u003ehttps://github.com/sponsors/hynek\u003c/a\u003e and check out the sweet perks!\u003c/p\u003e\n\u003ch3\u003eAbove and Beyond\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://www.variomedia.de/\"\u003eVariomedia AG\u003c/a\u003e (@\u003ca href=\"https://github.com/variomedia\"\u003evariomedia\u003c/a\u003e), \u003ca href=\"https://www.tidelift.com/\"\u003eTidelift\u003c/a\u003e (@\u003ca href=\"https://github.com/tidelift\"\u003etidelift\u003c/a\u003e), \u003ca href=\"https://kraken.tech\"\u003eKraken Tech\u003c/a\u003e (@\u003ca href=\"https://github.com/kraken-tech\"\u003ekraken-tech\u003c/a\u003e), \u003ca href=\"https://privacy-solutions.org\"\u003ePrivacy Solutions GmbH\u003c/a\u003e (@\u003ca href=\"https://github.com/privacy-solutions\"\u003eprivacy-solutions\u003c/a\u003e), \u003ca href=\"http://filepreviews.io/\"\u003eFilePreviews\u003c/a\u003e (@\u003ca href=\"https://github.com/filepreviews\"\u003efilepreviews\u003c/a\u003e), \u003ca href=\"https://ecosyste.ms\"\u003eEcosystems\u003c/a\u003e (@\u003ca href=\"https://github.com/ecosyste-ms\"\u003eecosyste-ms\u003c/a\u003e), \u003ca href=\"https://www.lambdatest.com\"\u003eTestMu AI Open Source Office (Formerly LambdaTest)\u003c/a\u003e (@\u003ca href=\"https://github.com/LambdaTest-Inc\"\u003eLambdaTest-Inc\u003c/a\u003e), \u003ca href=\"https://doist.com/\"\u003eDoist\u003c/a\u003e (@\u003ca href=\"https://github.com/Doist\"\u003eDoist\u003c/a\u003e), Daniel Fortunov (@\u003ca href=\"https://github.com/asqui\"\u003easqui\u003c/a\u003e), and Kevin P. Fleming (@\u003ca href=\"https://github.com/kpfleming\"\u003ekpfleming\u003c/a\u003e).\u003c/p\u003e\n\u003ch3\u003eMaintenance Sustainers\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://buttondown.com\"\u003eButtondown\u003c/a\u003e (@\u003ca href=\"https://github.com/buttondown\"\u003ebuttondown\u003c/a\u003e), \u003ca href=\"https://christopher.xyz\"\u003eChristopher Dignam\u003c/a\u003e (@\u003ca href=\"https://github.com/chdsbd\"\u003echdsbd\u003c/a\u003e), Magnus Watn (@\u003ca href=\"https://github.com/magnuswatn\"\u003emagnuswatn\u003c/a\u003e), \u003ca href=\"https://cra.mr\"\u003eDavid Cramer\u003c/a\u003e (@\u003ca href=\"https://github.com/dcramer\"\u003edcramer\u003c/a\u003e), \u003ca href=\"https://rivolaks.com\"\u003eRivo Laks\u003c/a\u003e (@\u003ca href=\"https://github.com/rivol\"\u003erivol\u003c/a\u003e), \u003ca href=\"https://polar.sh\"\u003ePolar\u003c/a\u003e (@\u003ca href=\"https://github.com/polarsource\"\u003epolarsource\u003c/a\u003e), \u003ca href=\"https://miketheman.dev\"\u003eMike Fiedler\u003c/a\u003e (@\u003ca href=\"https://github.com/miketheman\"\u003emiketheman\u003c/a\u003e), Duncan Hill (@\u003ca href=\"https://github.com/cricalix\"\u003ecricalix\u003c/a\u003e), Colin Marquardt (@\u003ca href=\"https://github.com/cmarqu\"\u003ecmarqu\u003c/a\u003e), \u003ca href=\"https://blog.journeythatcounts.nl\"\u003ePieter Swinkels\u003c/a\u003e (@\u003ca href=\"https://github.com/swinkels\"\u003eswinkels\u003c/a\u003e), Nick Libertini (@\u003ca href=\"https://github.com/libertininick\"\u003elibertininick\u003c/a\u003e), \u003ca href=\"https://bmdphd.info/\"\u003eBrian M. Dennis\u003c/a\u003e (@\u003ca href=\"https://github.com/crossjam\"\u003ecrossjam\u003c/a\u003e), Celebrity News AG (@\u003ca href=\"https://github.com/celebritynewsag\"\u003ecelebritynewsag\u003c/a\u003e), \u003ca href=\"https://westervelt.com\"\u003eThe Westervelt Company\u003c/a\u003e (@\u003ca href=\"https://github.com/westerveltco\"\u003ewesterveltco\u003c/a\u003e), \u003ca href=\"https://slafs.net\"\u003eSławomir Ehlert\u003c/a\u003e (@\u003ca href=\"https://github.com/slafs\"\u003eslafs\u003c/a\u003e), Mostafa Khalil (@\u003ca href=\"https://github.com/khadrawy\"\u003ekhadrawy\u003c/a\u003e), \u003ca href=\"https://fmularczyk.pl\"\u003eFilip Mularczyk\u003c/a\u003e (@\u003ca href=\"https://github.com/mukiblejlok\"\u003emukiblejlok\u003c/a\u003e), Thomas Klinger (@\u003ca href=\"https://github.com/thmsklngr\"\u003ethmsklngr\u003c/a\u003e), \u003ca href=\"https://poehlmann.io\"\u003eAndreas Poehlmann\u003c/a\u003e (@\u003ca href=\"https://github.com/ap--\"\u003eap--\u003c/a\u003e), \u003ca href=\"https://atbigelow.com\"\u003eAugust Trapper Bigelow\u003c/a\u003e (@\u003ca href=\"https://github.com/atbigelow\"\u003eatbigelow\u003c/a\u003e), \u003ca href=\"https://noumenal.es/\"\u003eCarlton Gibson\u003c/a\u003e (@\u003ca href=\"https://github.com/carltongibson\"\u003ecarltongibson\u003c/a\u003e), and \u003ca href=\"https://roboflow.com\"\u003eRoboflow\u003c/a\u003e (@\u003ca href=\"https://github.com/roboflow\"\u003eroboflow\u003c/a\u003e).\u003c/p\u003e\n\u003ch2\u003eFull Changelog\u003c/h2\u003e\n\u003ch3\u003eBackwards-incompatible Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eField aliases are now resolved \u003cem\u003ebefore\u003c/em\u003e calling \u003ccode\u003efield_transformer\u003c/code\u003e, so transformers receive fully populated \u003ccode\u003eAttribute\u003c/code\u003e objects with usable \u003ccode\u003ealias\u003c/code\u003e values instead of \u003ccode\u003eNone\u003c/code\u003e. The new \u003ccode\u003eAttribute.alias_is_default\u003c/code\u003e flag indicates whether the alias was auto-generated (\u003ccode\u003eTrue\u003c/code\u003e) or explicitly set by the user (\u003ccode\u003eFalse\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1509\"\u003e#1509\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix type annotations for \u003ccode\u003eattrs.validators.optional()\u003c/code\u003e, so it no longer rejects tuples with more than one validator. \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1496\"\u003e#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eattrs.validators.disabled()\u003c/code\u003e contextmanager can now be nested. \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1513\"\u003e#1513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFrozen classes can set \u003ccode\u003eon_setattr=attrs.setters.NO_OP\u003c/code\u003e in addition to \u003ccode\u003eNone\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1515\"\u003e#1515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIt's now possible to pass \u003cem\u003eattrs\u003c/em\u003e \u003cstrong\u003einstances\u003c/strong\u003e in addition to \u003cem\u003eattrs\u003c/em\u003e \u003cstrong\u003eclasses\u003c/strong\u003e to \u003ccode\u003eattrs.fields()\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1529\"\u003e#1529\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eThis release contains contributions from \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/DavidCEllis\"\u003e\u003ccode\u003e@​DavidCEllis\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/finite-state-machine\"\u003e\u003ccode\u003e@​finite-state-machine\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/hynek\"\u003e\u003ccode\u003e@​hynek\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/vstinner\"\u003e\u003ccode\u003e@​vstinner\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eArtifact Attestations\u003c/h2\u003e\n\u003cp\u003eYou can verify this release's \u003ca href=\"https://docs.github.com/en/actions/security-guides/using-artifact-attestations-to-establish-provenance-for-builds\"\u003eartifact attestions\u003c/a\u003e using \u003ca href=\"https://cli.github.com\"\u003eGitHub's CLI tool\u003c/a\u003e by downloading the sdist and wheel from \u003ca href=\"https://pypi.org/project/attrs\"\u003ePyPI\u003c/a\u003e and running:\u003c/p\u003e\n\u003cpre lang=\"console\"\u003e\u003ccode\u003e$ gh attestation verify --owner python-attrs attrs-26.1.0.tar.gz\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-attrs/attrs/blob/main/CHANGELOG.md\"\u003eattrs's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/python-attrs/attrs/tree/26.1.0\"\u003e26.1.0\u003c/a\u003e - 2026-03-19\u003c/h2\u003e\n\u003ch3\u003eBackwards-incompatible Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eField aliases are now resolved \u003cem\u003ebefore\u003c/em\u003e calling \u003ccode\u003efield_transformer\u003c/code\u003e, so transformers receive fully populated \u003ccode\u003eAttribute\u003c/code\u003e objects with usable \u003ccode\u003ealias\u003c/code\u003e values instead of \u003ccode\u003eNone\u003c/code\u003e.\nThe new \u003ccode\u003eAttribute.alias_is_default\u003c/code\u003e flag indicates whether the alias was auto-generated (\u003ccode\u003eTrue\u003c/code\u003e) or explicitly set by the user (\u003ccode\u003eFalse\u003c/code\u003e).\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1509\"\u003e#1509\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix type annotations for \u003ccode\u003eattrs.validators.optional()\u003c/code\u003e, so it no longer rejects tuples with more than one validator.\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1496\"\u003e#1496\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eattrs.validators.disabled()\u003c/code\u003e contextmanager can now be nested.\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1513\"\u003e#1513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFrozen classes can set \u003ccode\u003eon_setattr=attrs.setters.NO_OP\u003c/code\u003e in addition to \u003ccode\u003eNone\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1515\"\u003e#1515\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIt's now possible to pass \u003cem\u003eattrs\u003c/em\u003e \u003cstrong\u003einstances\u003c/strong\u003e in addition to \u003cem\u003eattrs\u003c/em\u003e \u003cstrong\u003eclasses\u003c/strong\u003e to \u003ccode\u003eattrs.fields()\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1529\"\u003e#1529\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/7bfc49e9b22d5ba25b6e429524c3d49fee27cb36\"\u003e\u003ccode\u003e7bfc49e\u003c/code\u003e\u003c/a\u003e Prepare 26.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/31e02869da10824b492c378c1dc87ccc720ee5ad\"\u003e\u003ccode\u003e31e0286\u003c/code\u003e\u003c/a\u003e Update test_validators.py for Python 3.15a7 (\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1530\"\u003e#1530\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/48b8611c27779811d161200e17de8da24aae7feb\"\u003e\u003ccode\u003e48b8611\u003c/code\u003e\u003c/a\u003e Add instance support to attrs.fields() (\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1529\"\u003e#1529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/3a68d4913221abc6f8ad3be50937f7ae49300a98\"\u003e\u003ccode\u003e3a68d49\u003c/code\u003e\u003c/a\u003e dev: document missing git tags failure mode\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/a572c3a4c558a8b9b48cf989fcd956ab1a279439\"\u003e\u003ccode\u003ea572c3a\u003c/code\u003e\u003c/a\u003e Allow field(on_setattr=NO_OP) on frozen classes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/af9c510912ce604a94896cc35c27368d5baf6ae6\"\u003e\u003ccode\u003eaf9c510\u003c/code\u003e\u003c/a\u003e Fix validators.disabled() to save/restore state on nesting (\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1513\"\u003e#1513\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/ab7f8b2f4c0f747d5b1575247ce35e5adaad182e\"\u003e\u003ccode\u003eab7f8b2\u003c/code\u003e\u003c/a\u003e update dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/ce89f5d11feb0805da9ed10bb165238cc959f1bb\"\u003e\u003ccode\u003ece89f5d\u003c/code\u003e\u003c/a\u003e Fix message passing in frozen errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/eccd966d80aff5196efc959316961cfa780439f9\"\u003e\u003ccode\u003eeccd966\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eoptional\u003c/code\u003e validator to accept tuples of len \u0026gt; 1 (\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1496\"\u003e#1496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-attrs/attrs/commit/e92fe52dfe1eb07167e6473724c5a8ada978add0\"\u003e\u003ccode\u003ee92fe52\u003c/code\u003e\u003c/a\u003e policies: tighten screws (\u003ca href=\"https://redirect.github.com/python-attrs/attrs/issues/1528\"\u003e#1528\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-attrs/attrs/compare/25.4.0...26.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `boto3` from 1.42.64 to 1.42.84\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/d0fa3ae100330dbb8da23bad233375ff213795f5\"\u003e\u003ccode\u003ed0fa3ae\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.84'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/a4e41541b21c732aa4f727be55922d397e9eaf71\"\u003e\u003ccode\u003ea4e4154\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.84\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/7fe19908700fb438fdfb79bd0d304fa23658c248\"\u003e\u003ccode\u003e7fe1990\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/5eac8498e33192cfb2781b01cc3506b5db641203\"\u003e\u003ccode\u003e5eac849\u003c/code\u003e\u003c/a\u003e Add zizmor workflow and apply initial fixes (\u003ca href=\"https://redirect.github.com/boto/boto3/issues/4755\"\u003e#4755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/319798f7910ad2f4117bf423f0242c082a1f0abd\"\u003e\u003ccode\u003e319798f\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.83'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/5a0933ed83ba1f2cbd75e5673841882a507502dd\"\u003e\u003ccode\u003e5a0933e\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.83' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/afa955efa904e19965b744b7f6751218d4ded2ba\"\u003e\u003ccode\u003eafa955e\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.83\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/969066df9c961c562442fbaba3a70554c2fc094b\"\u003e\u003ccode\u003e969066d\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/f4c31406f10f0952510b8733ee4185c1407a3772\"\u003e\u003ccode\u003ef4c3140\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.82'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/boto3/commit/8237e0e7bec72aaa31544544d34fab241b37553e\"\u003e\u003ccode\u003e8237e0e\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.82' into develop\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/boto3/compare/1.42.64...1.42.84\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `botocore` from 1.42.64 to 1.42.84\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/0bb499c483b265313db66ed8804e4dd5e69385d2\"\u003e\u003ccode\u003e0bb499c\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.84'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/58019d1b8a0cb8c4669681d4b988f219a1865095\"\u003e\u003ccode\u003e58019d1\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.84\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/ed57861545a6a2372277969156b058dc892dd428\"\u003e\u003ccode\u003eed57861\u003c/code\u003e\u003c/a\u003e Update endpoints model\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/56f46aad89e8654f4b6bd5a991c94734cd205efe\"\u003e\u003ccode\u003e56f46aa\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/ca0b74dec5e2ae41f98c363d7a6d87eacb43bff4\"\u003e\u003ccode\u003eca0b74d\u003c/code\u003e\u003c/a\u003e Add zizmor GitHub Actions workflow for CI security analysis (\u003ca href=\"https://redirect.github.com/boto/botocore/issues/3665\"\u003e#3665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/da27682f6cf66cf28ed80e4c5c11023a8dfdde86\"\u003e\u003ccode\u003eda27682\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.83'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/feb29f88beaa808ede633f82d4821d5f292c2f89\"\u003e\u003ccode\u003efeb29f8\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.83' into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/ab51d1ab429850efd7a1bccc829ff44514e4f463\"\u003e\u003ccode\u003eab51d1a\u003c/code\u003e\u003c/a\u003e Bumping version to 1.42.83\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/007c8a9faf604a95c877bf44875b7265a86bab90\"\u003e\u003ccode\u003e007c8a9\u003c/code\u003e\u003c/a\u003e Update to latest models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/boto/botocore/commit/d3423dea21f083ff825eacd205bb074a855ff460\"\u003e\u003ccode\u003ed3423de\u003c/code\u003e\u003c/a\u003e Merge branch 'release-1.42.82'\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/boto/botocore/compare/1.42.64...1.42.84\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cbor2` from 5.8.0 to 5.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/cbor2/releases\"\u003ecbor2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003emax_depth\u003c/code\u003e decoder parameter to limit the maximum allowed nesting level of containers, with a default value of 400 levels (CVE-2026-26209)\u003c/li\u003e\n\u003cli\u003eChanged the default \u003ccode\u003eread_size\u003c/code\u003e from 4096 to 1 for backwards compatibility. The buffered reads introduced in 5.8.0 could cause issues when code needs to access the stream position after decoding. Users can opt-in to faster decoding by passing \u003ccode\u003eread_size=4096\u003c/code\u003e when they don't need to access the stream directly after decoding. Added a direct read path for \u003ccode\u003eread_size=1\u003c/code\u003e to avoid buffer management overhead. (\u003ca href=\"https://redirect.github.com/agronholm/cbor2/pull/275\"\u003e#275\u003c/a\u003e; PR by \u003ca href=\"https://github.com/andreer\"\u003e\u003ccode\u003e@​andreer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed C encoder not respecting string referencing when encoding string-type datetimes (tag 0) (\u003ca href=\"https://redirect.github.com/agronholm/cbor2/issues/254\"\u003e#254\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a missed check for an exception in the C implementation of \u003ccode\u003eCBOREncoder.encode_shared()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/cbor2/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed two reference/memory leaks in the C extension's long string decoder (\u003ca href=\"https://redirect.github.com/agronholm/cbor2/pull/290\"\u003e#290\u003c/a\u003e PR by \u003ca href=\"https://github.com/killiancowan82\"\u003e\u003ccode\u003e@​killiancowan82\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed C decoder ignoring the \u003ccode\u003estr_errors\u003c/code\u003e setting when decoding strings, and improved string decoding performance by using stack allocation for small strings and eliminating unnecessary conditionals. Benchmarks show 9-17% faster deserialization. (\u003ca href=\"https://redirect.github.com/agronholm/cbor2/issues/255\"\u003e#255\u003c/a\u003e; PR by \u003ca href=\"https://github.com/andreer\"\u003e\u003ccode\u003e@​andreer\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/cbor2/commit/93c598838d50b554e242920902aada82d32d55bc\"\u003e\u003ccode\u003e93c5988\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/cbor2/commit/d903d62c86de118e8abe626596f9be7b98ac44e9\"\u003e\u003ccode\u003ed903d62\u003c/code\u003e\u003c/a\u003e Updated the max_depth default value in the C function signature\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/cbor2/commit/2b53b2813d44a7919dae18747b5ac36cf9c5fb87\"\u003e\u003ccode\u003e2b53b28\u003c/code\u003e\u003c/a\u003e Stack allocate small strings (\u003ca href=\"https://redirect.github.com/agronholm/cbor2/issues/270\"\u003e#270\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/cbor2/commit/a7ac10d5cbb7a8622e8270c201a131ac2abc26c7\"\u003e\u003ccode\u003ea7ac10d\u003c/code\u003e\u003c/a\u003e Upped the max_depth value to 400\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/cbor2/commit/54c8ed541c5f4842508cace5ff4b2aae54bc731b\"\u003e\u003ccode\u003e54c8ed5\u003c/code\u003e\u003c/a\u003e Fixed reference/memory leaks in decode_definite_long_string (\u003ca href=\"https://redirect.github.com/agronholm/cbor2/issues/290\"\u003e#290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/cbor2/commit/a8d92dc3dc00233c796c4abccb5daa31089bf3c0\"\u003e\u003ccode\u003ea8d92dc\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/cbor2/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/cbor2/commit/c91aa007117828560329a1624eabc5dad5435ebc\"\u003e\u003ccode\u003ec91aa00\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/cbor2/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/cbor2/commit/53521e7ca96c7a19f8a529fe59ef566212a24b3f\"\u003e\u003ccode\u003e53521e7\u003c/code\u003e\u003c/a\u003e Fixed ssize_t to Py_ssize_t\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/cbor2/commit/94e0d2125fbfb183606afa9ef07754a8dba50748\"\u003e\u003ccode\u003e94e0d21\u003c/code\u003e\u003c/a\u003e Added missing Python counterpart for max_depth\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/cbor2/commit/bcb6cea4edde1d00ff4f0eece883dea951f66e1b\"\u003e\u003ccode\u003ebcb6cea\u003c/code\u003e\u003c/a\u003e Added the max_depth decoder parameter\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/cbor2/compare/5.8.0...5.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.5 to 3.4.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.7\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.6...3.4.7\"\u003e3.4.7\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-built optimized version using mypy[c] v1.20.\u003c/li\u003e\n\u003cli\u003eRelax \u003ccode\u003esetuptools\u003c/code\u003e constraint to \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;82.1\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrectly remove SIG remnant in utf-7 decoded string. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/718\"\u003e#718\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.6\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.5...3.4.6\"\u003e3.4.6\u003c/a\u003e (2026-03-15)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFlattened the logic in \u003ccode\u003echarset_normalizer.md\u003c/code\u003e for higher performance. Removed \u003ccode\u003eeligible(..)\u003c/code\u003e and \u003ccode\u003efeed(...)\u003c/code\u003e\nin favor of \u003ccode\u003efeed_info(...)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound for mypy[c] to 1.20, for our optimized version.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eUNICODE_RANGES_COMBINED\u003c/code\u003e using Unicode blocks v17.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEdge case where noise difference between two candidates can be almost insignificant. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/672\"\u003e#672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCLI \u003ccode\u003e--normalize\u003c/code\u003e writing to wrong path when passing multiple files in. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/702\"\u003e#702\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFreethreaded pre-built wheels now shipped in PyPI starting with 3.14t. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/616\"\u003e#616\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/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.6...3.4.7\"\u003e3.4.7\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-built optimized version using mypy[c] v1.20.\u003c/li\u003e\n\u003cli\u003eRelax \u003ccode\u003esetuptools\u003c/code\u003e constraint to \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;82.1\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrectly remove SIG remnant in utf-7 decoded string. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/718\"\u003e#718\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.5...3.4.6\"\u003e3.4.6\u003c/a\u003e (2026-03-15)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFlattened the logic in \u003ccode\u003echarset_normalizer.md\u003c/code\u003e for higher performance. Removed \u003ccode\u003eeligible(..)\u003c/code\u003e and \u003ccode\u003efeed(...)\u003c/code\u003e\nin favor of \u003ccode\u003efeed_info(...)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound for mypy[c] to 1.20, for our optimized version.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eUNICODE_RANGES_COMBINED\u003c/code\u003e using Unicode blocks v17.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEdge case where noise difference between two candidates can be almost insignificant. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/672\"\u003e#672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCLI \u003ccode\u003e--normalize\u003c/code\u003e writing to wrong path when passing multiple files in. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/702\"\u003e#702\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFreethreaded pre-built wheels now shipped in PyPI starting with 3.14t. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/616\"\u003e#616\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/jawah/charset_normalizer/commit/0f07891bf516b5d5231f1bd4dd2d8da7d4d09a9a\"\u003e\u003ccode\u003e0f07891\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/729\"\u003e#729\u003c/a\u003e from jawah/release-3.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/fdbeb299479e8f4d737e4d227cd0b2bd5d273dc0\"\u003e\u003ccode\u003efdbeb29\u003c/code\u003e\u003c/a\u003e chore: update dev, and ci requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b66f922bfbdbdd9dd46af18a8964d4fb888756d4\"\u003e\u003ccode\u003eb66f922\u003c/code\u003e\u003c/a\u003e chore: add ft classifier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f94249d0a2c712f2d03124f4de6b77f5e03aaa96\"\u003e\u003ccode\u003ef94249d\u003c/code\u003e\u003c/a\u003e chore: add test cases for utf_7 recent fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/95c866f6c984bbd043e7e3ed0628aa4f3f8d5a26\"\u003e\u003ccode\u003e95c866f\u003c/code\u003e\u003c/a\u003e chore: bump version to 3.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4f429bb764c7e893f99bb4bceb60856da1baacfb\"\u003e\u003ccode\u003e4f429bb\u003c/code\u003e\u003c/a\u003e chore: bump mypy pre-commit to v1.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b579cd6cab9bd83aa3fc0ca169d4df022bf4888c\"\u003e\u003ccode\u003eb579cd6\u003c/code\u003e\u003c/a\u003e fix: correctly remove SIG remnant in utf-7 decoded string\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/58bf944a77cc0883fc46a6ee8edac3549fea5d59\"\u003e\u003ccode\u003e58bf944\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump github/codeql-action from 4.32.4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/44cf8a1b676a2532a8f1694e62e4f4f98f9132e1\"\u003e\u003ccode\u003e44cf8a1\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/download-artifact from 8.0.0 to 8.0.1 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/726\"\u003e#726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/362bc20073f737b1ba4ca2f68cffb0c4cc024d20\"\u003e\u003ccode\u003e362bc20\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump docker/setup-qemu-action from 3.7.0 to 4.0.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/725\"\u003e#725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.5...3.4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.3.1 to 8.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.2 fix release, which fixes bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/click/8.3.2/\"\u003ehttps://pypi.org/project/click/8.3.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/29\"\u003ehttps://github.com/pallets/click/milestone/29\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix handling of \u003ccode\u003eflag_value\u003c/code\u003e when \u003ccode\u003eis_flag=False\u003c/code\u003e to allow such options to be\nused without an explicit value. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3084\"\u003e#3084\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3152\"\u003e#3152\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when using \u003ccode\u003elookup_default()\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3136\"\u003e#3136\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3199\"\u003e#3199\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3202\"\u003e#3202\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3209\"\u003e#3209\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3212\"\u003e#3212\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3224\"\u003e#3224\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e_NamedTextIOWrapper\u003c/code\u003e from closing streams owned by \u003ccode\u003eStreamMixer\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/824\"\u003e#824\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2991\"\u003e#2991\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2993\"\u003e#2993\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3110\"\u003e#3110\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3139\"\u003e#3139\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3140\"\u003e#3140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd comprehensive tests for \u003ccode\u003eCliRunner\u003c/code\u003e stream lifecycle, covering\nlogging interaction, multi-threaded safety, and sequential invocation\nisolation. Add high-iteration stress tests behind a \u003ccode\u003estress\u003c/code\u003e marker\nwith a dedicated CI job. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3139\"\u003e#3139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix callable \u003ccode\u003eflag_value\u003c/code\u003e being instantiated when used as a default via\n\u003ccode\u003edefault=True\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3121\"\u003e#3121\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3201\"\u003e#3201\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3213\"\u003e#3213\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3225\"\u003e#3225\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/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.2\u003c/h2\u003e\n\u003cp\u003eReleased 2026-04-02\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix handling of \u003ccode\u003eflag_value\u003c/code\u003e when \u003ccode\u003eis_flag=False\u003c/code\u003e to allow such options to be\nused without an explicit value. :issue:\u003ccode\u003e3084\u003c/code\u003e :pr:\u003ccode\u003e3152\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when using \u003ccode\u003elookup_default()\u003c/code\u003e.\n:issue:\u003ccode\u003e3136\u003c/code\u003e :pr:\u003ccode\u003e3199\u003c/code\u003e :pr:\u003ccode\u003e3202\u003c/code\u003e :pr:\u003ccode\u003e3209\u003c/code\u003e :pr:\u003ccode\u003e3212\u003c/code\u003e :pr:\u003ccode\u003e3224\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e_NamedTextIOWrapper\u003c/code\u003e from closing streams owned by \u003ccode\u003eStreamMixer\u003c/code\u003e.\n:issue:\u003ccode\u003e824\u003c/code\u003e :issue:\u003ccode\u003e2991\u003c/code\u003e :issue:\u003ccode\u003e2993\u003c/code\u003e :issue:\u003ccode\u003e3110\u003c/code\u003e :pr:\u003ccode\u003e3139\u003c/code\u003e :pr:\u003ccode\u003e3140\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd comprehensive tests for \u003ccode\u003eCliRunner\u003c/code\u003e stream lifecycle, covering\nlogging interaction, multi-threaded safety, and sequential invocation\nisolation. Add high-iteration stress tests behind a \u003ccode\u003estress\u003c/code\u003e marker\nwith a dedicated CI job. :pr:\u003ccode\u003e3139\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix callable \u003ccode\u003eflag_value\u003c/code\u003e being instantiated when used as a default via\n\u003ccode\u003edefault=True\u003c/code\u003e. :issue:\u003ccode\u003e3121\u003c/code\u003e :pr:\u003ccode\u003e3201\u003c/code\u003e :pr:\u003ccode\u003e3213\u003c/code\u003e :pr:\u003ccode\u003e3225\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/052c006033729bbb422cbdad0c4fee988ecb5aa5\"\u003e\u003ccode\u003e052c006\u003c/code\u003e\u003c/a\u003e Change update release date.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/502b7ce7b131473ef00a3586e60bb000f33b4c43\"\u003e\u003ccode\u003e502b7ce\u003c/code\u003e\u003c/a\u003e Merge branch 'stable' of \u003ca href=\"https://github.com/pallets/click\"\u003ehttps://github.com/pallets/click\u003c/a\u003e into release-8.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a0a37e411820861d48e21b131fdd840abaf746e0\"\u003e\u003ccode\u003ea0a37e4\u003c/code\u003e\u003c/a\u003e Change publish to werkzeug latest. (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3301\"\u003e#3301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/57be6fc2b40eb40279d022e6aabc983ee0dfb7a9\"\u003e\u003ccode\u003e57be6fc\u003c/code\u003e\u003c/a\u003e Change publish to werkzeug latest.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/781d6a88bdd30229e72a84cd6753b0235f339679\"\u003e\u003ccode\u003e781d6a8\u003c/code\u003e\u003c/a\u003e Update publish workflows (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3266\"\u003e#3266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ff795b66ba945239c779b528171f5fe4536cf844\"\u003e\u003ccode\u003eff795b6\u003c/code\u003e\u003c/a\u003e Update precommit pins with tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/dd87ef4f9fa7d6f13e14885e9a6842a21ededebc\"\u003e\u003ccode\u003edd87ef4\u003c/code\u003e\u003c/a\u003e Update github action pins with tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/93d3f9d22e90035bc2b51c2183c15bd4a021376f\"\u003e\u003ccode\u003e93d3f9d\u003c/code\u003e\u003c/a\u003e Release version 8.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/3299ba1a8a5de34b24a7226a683a837d8a0857e7\"\u003e\u003ccode\u003e3299ba1\u003c/code\u003e\u003c/a\u003e Add missing PR to changelog. (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3264\"\u003e#3264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b7f62c4d002e5b5bca3ebef6b995b7338740fe6f\"\u003e\u003ccode\u003eb7f62c4\u003c/code\u003e\u003c/a\u003e Add missing PR to changelog.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.3.1...8.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 23.0.0 to 25.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eGunicorn 25.3.0\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eHTTP/2 ASGI Body Duplication\u003c/strong\u003e: Fix request body being received twice in HTTP/2\nASGI requests, causing JSON parsing errors with \u0026quot;Extra data\u0026quot; messages\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3558\"\u003e#3558\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eASGI Chunked EOF Handling\u003c/strong\u003e: Add \u003ccode\u003efinish()\u003c/code\u003e method to callback parser to handle\nchunked encoding edge case where connection closes before final CRLF after zero-chunk\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eHTTP/2 Documentation\u003c/strong\u003e: Fix \u003ccode\u003ehttp_protocols\u003c/code\u003e examples to use comma-separated string\ninstead of list syntax (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3561\"\u003e#3561\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eChunked Encoding\u003c/strong\u003e: Reject chunk extensions containing bare CR bytes per RFC 9112\n(\u003ca href=\"https://github.com/benoitc/gunicorn/discussions/3556\"\u003e#3556\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eRequest Line Limit\u003c/strong\u003e: Fix \u003ccode\u003e--limit-request-line 0\u003c/code\u003e to mean unlimited as documented,\ninstead of using default maximum. Works with both Python and fast C parser.\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3563\"\u003e#3563\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Parser Header Validation\u003c/strong\u003e: Add security checks per RFC 9110/9112:\n\u003cul\u003e\n\u003cli\u003eReject duplicate Content-Length headers\u003c/li\u003e\n\u003cli\u003eReject requests with both Content-Length and Transfer-Encoding\u003c/li\u003e\n\u003cli\u003eReject chunked transfer encoding in HTTP/1.0\u003c/li\u003e\n\u003cli\u003eReject stacked chunked encoding\u003c/li\u003e\n\u003cli\u003eValidate Transfer-Encoding values\u003c/li\u003e\n\u003cli\u003eStrict chunk size validation\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFast HTTP Parser\u003c/strong\u003e: Update to gunicorn_h1c \u0026gt;= 0.6.3 for \u003ccode\u003easgi_headers\u003c/code\u003e property\nand \u003ccode\u003eInvalidChunkExtension\u003c/code\u003e validation for bare CR rejection\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eASGI PROXY Protocol\u003c/strong\u003e: Add PROXY protocol v1/v2 support to callback parser\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eDocker Images\u003c/strong\u003e: Update to Python 3.14\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eGunicorn 25.2.0\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFast HTTP Parser (gunicorn_h1c 0.4.1)\u003c/strong\u003e: Integrate new exception types and limit parameters from gunicorn_h1c 0.4.1 for both WSGI and ASGI workers\n\u003cul\u003e\n\u003cli\u003eRequires gunicorn_h1c \u0026gt;= 0.4.1 for \u003ccode\u003ehttp_parser='fast'\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFalls back to Python parser in \u003ccode\u003eauto\u003c/code\u003e mode if version not met\u003c/li\u003e\n\u003cli\u003eProper HTTP status codes for limit errors (414, 431)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003euWSGI Async Workers\u003c/strong\u003e: Fix \u003ccode\u003eInvalidUWSGIHeader: incomplete header\u003c/code\u003e error when using gevent or gthread workers with uwsgi protocol behind nginx. (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3552\"\u003e#3552\u003c/a\u003e, [PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3554\"\u003e#3554\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3554\"\u003ebenoitc/gunicorn#3554\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/9bce72cfc3985aba7e0c47bf3c00fa681b2847e4\"\u003e\u003ccode\u003e9bce72c\u003c/code\u003e\u003c/a\u003e Update changelog with missing 25.3.0 changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/2a15fdb93ab136e5776692d620852f481c89d610\"\u003e\u003ccode\u003e2a15fdb\u003c/code\u003e\u003c/a\u003e Fix pylint isinstance-second-argument-not-valid-type warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/8d08aaa2cbd38fdfa2ca6fb94094c47b9c16730a\"\u003e\u003ccode\u003e8d08aaa\u003c/code\u003e\u003c/a\u003e Fix --limit-request-line 0 to mean unlimited\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/d40a37454736e40916eb51e35895f1c22c0cd34a\"\u003e\u003ccode\u003ed40a374\u003c/code\u003e\u003c/a\u003e Fix pytest-asyncio configuration and treq_asgi hex escapes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/da8bd4850ac0f2d0df215390dad88392eb538d74\"\u003e\u003ccode\u003eda8bd48\u003c/code\u003e\u003c/a\u003e Remove unused AsyncRequest class\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/b00f125755ec3f509a3e82dc5568d9f2d8bddba7\"\u003e\u003ccode\u003eb00f125\u003c/code\u003e\u003c/a\u003e Integrate gunicorn_h1c 0.6.3 with InvalidChunkExtension support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/bdb2ebd5a4913fff1e92800f3763e4a879526d3e\"\u003e\u003ccode\u003ebdb2ebd\u003c/code\u003e\u003c/a\u003e Reject chunk extensions with bare CR bytes (RFC 9112)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/7057fc9f89f0ce4d9ac01a12ea2f39768fb32be6\"\u003e\u003ccode\u003e7057fc9\u003c/code\u003e\u003c/a\u003e Fix http_protocols documentation to use string syntax\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/d43acb8fe0910b6669c163e2f4a439e464eab012\"\u003e\u003ccode\u003ed43acb8\u003c/code\u003e\u003c/a\u003e Update to gunicorn_h1c \u0026gt;= 0.6.2 for asgi_headers support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/cbd27e82a238cb1326336c6aa4b8ae058e2c9ff9\"\u003e\u003ccode\u003ecbd27e8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3559\"\u003e#3559\u003c/a\u003e from benleembruggen/fix/http2-asgi-body-duplication\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/23.0.0...25.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nh3` from 0.3.3 to 0.3.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/messense/nh3/releases\"\u003enh3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.3.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump pyo3 from 0.28.1 to 0.28.2 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/messense/nh3/pull/114\"\u003emessense/nh3#114\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate rel attribute conflict with link_rel by \u003ca href=\"https://github.com/gghez\"\u003e\u003ccode\u003e@​gghez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/messense/nh3/pull/117\"\u003emessense/nh3#117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose default clean_content_tags as module constant by \u003ca href=\"https://github.com/gghez\"\u003e\u003ccode\u003e@​gghez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/messense/nh3/pull/118\"\u003emessense/nh3#118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAccept frozenset and Mapping in type stubs by \u003ca href=\"https://github.com/gghez\"\u003e\u003ccode\u003e@​gghez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/messense/nh3/pull/119\"\u003emessense/nh3#119\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/gghez\"\u003e\u003ccode\u003e@​gghez\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/messense/nh3/pull/117\"\u003emessense/nh3#117\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/messense/nh3/compare/v0.3.3...v0.3.4\"\u003ehttps://github.com/messense/nh3/compare/v0.3.3...v0.3.4\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/messense/nh3/commit/c2ddb81e29ceee428a49b621994098e4e490d172\"\u003e\u003ccode\u003ec2ddb81\u003c/code\u003e\u003c/a\u003e Bump version to 0.3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/d19279a664798d898ee68c73998d1d4a979bb97f\"\u003e\u003ccode\u003ed19279a\u003c/code\u003e\u003c/a\u003e Accept frozenset and Mapping in type stubs (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/119\"\u003e#119\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/b98f2c5f4a023c9281f4a2037931de4c73a3266b\"\u003e\u003ccode\u003eb98f2c5\u003c/code\u003e\u003c/a\u003e Expose default clean_content_tags as module constant (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/118\"\u003e#118\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/9fdfa76988dda100ae69a657f017655b86821b8a\"\u003e\u003ccode\u003e9fdfa76\u003c/code\u003e\u003c/a\u003e Validate rel attribute conflict with link_rel (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/117\"\u003e#117\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/8af5eeeb6b1c8a391c0c6f4e0634f3f859b75446\"\u003e\u003ccode\u003e8af5eee\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/115\"\u003e#115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/613bdaeedcd259ef76bef4f130c2ad14cdb9a293\"\u003e\u003ccode\u003e613bdae\u003c/code\u003e\u003c/a\u003e Bump pyo3 from 0.28.1 to 0.28.2 (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/114\"\u003e#114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/messense/nh3/commit/565c231d895692d7728b7d1588aed350bace8a5f\"\u003e\u003ccode\u003e565c231\u003c/code\u003e\u003c/a\u003e Bump pyo3 from 0.28.0 to 0.28.1 (\u003ca href=\"https://redirect.github.com/messense/nh3/issues/113\"\u003e#113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/messense/nh3/compare/v0.3.3...v0.3.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phonenumbers` from 9.0.25 to 9.0.27\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/3b082bf38fac2ac2a1556b9b416562f464c9d780\"\u003e\u003ccode\u003e3b082bf\u003c/code\u003e\u003c/a\u003e Prep for 9.0.27 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/c496532280afda5778e45d23d5feb621e55fc397\"\u003e\u003ccode\u003ec496532\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/ee29e8518101d039dbaf4463087a786e7c11e01d\"\u003e\u003ccode\u003eee29e85\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.27\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/07e2c75b1dc1d94c806755e4842410e19cd1e17e\"\u003e\u003ccode\u003e07e2c75\u003c/code\u003e\u003c/a\u003e Prep for 9.0.26 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/55522da42bff8bd7eefd08b17c978971bc60e135\"\u003e\u003ccode\u003e55522da\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/8ca762b2309a1df12f2eadf601ce413bf3cd1826\"\u003e\u003ccode\u003e8ca762b\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.26\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.25...v9.0.27\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.11.0 to 2.12.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.12.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd typing_extensions dependency for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/jpadilla\"\u003e\u003ccode\u003e@​jpadilla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1151\"\u003ejpadilla/pyjwt#1151\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.12.0\u003c/h2\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. by \u003ca href=\"https://github.com/dmbs335\"\u003e\u003ccode\u003e@​dmbs335\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-752w-5fwx-jx9f\"\u003eGHSA-752w-5fwx-jx9f\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1132\"\u003ejpadilla/pyjwt#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(docs): fix docs build by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1137\"\u003ejpadilla/pyjwt#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAnnotate PyJWKSet.keys for pyright by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1134\"\u003ejpadilla/pyjwt#1134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: close HTTPError to prevent ResourceWarning on Python 3.14 by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1133\"\u003ejpadilla/pyjwt#1133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove superfluous constants by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1136\"\u003ejpadilla/pyjwt#1136\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1135\"\u003ejpadilla/pyjwt#1135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(tests): enable mypy by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1138\"\u003ejpadilla/pyjwt#1138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 7 to 8 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/jpadilla/pyjwt/pull/1142\"\u003ejpadilla/pyjwt#1142\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1141\"\u003ejpadilla/pyjwt#1141\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1145\"\u003ejpadilla/pyjwt#1145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: do not store reference to algorithms dict on PyJWK by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1143\"\u003ejpadilla/pyjwt#1143\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse PyJWK algorithm when encoding without explicit algorithm by \u003ca href=\"https://github.com/jpadilla\"\u003e\u003ccode\u003e@​jpadilla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1148\"\u003ejpadilla/pyjwt#1148\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/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1137\"\u003ejpadilla/pyjwt#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1133\"\u003ejpadilla/pyjwt#1133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.12.1 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Add missing ``typing_extensions`` dependency for Python \u0026lt; 3.11 in `[#1150](https://github.com/jpadilla/pyjwt/issues/1150) \u0026lt;https://github.com/jpadilla/pyjwt/issues/1150\u0026gt;`__\n\u003ch2\u003e\u003ccode\u003ev2.12.0 \u0026amp;lt;https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\u0026amp;gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAnnotate PyJWKSet.keys for pyright by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1134](https://github.com/jpadilla/pyjwt/issues/1134) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1134\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eClose \u003ccode\u003eHTTPError\u003c/code\u003e response to prevent \u003ccode\u003eResourceWarning\u003c/code\u003e on Python 3.14 by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1133](https://github.com/jpadilla/pyjwt/issues/1133) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1133\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDo not keep \u003ccode\u003ealgorithms\u003c/code\u003e dict in PyJWK instances by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1143](https://github.com/jpadilla/pyjwt/issues/1143) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1143\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eValidate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. by \u003ca href=\"https://github.com/dmbs335\"\u003e\u003ccode\u003e@​dmbs335\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003eGHSA-752w-5fwx-jx9f \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-752w-5fwx-jx9f\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eUse PyJWK algorithm when encoding without explicit algorithm in \u003ccode\u003e[#1148](https://github.com/jpadilla/pyjwt/issues/1148) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1148\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAdded\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Docs: Add ``PyJWKClient`` API reference and document the two-tier caching system (JWK Set cache and signing key LRU cache).\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/a4e1a3d1218b01c5806420b8f16d9308ac4adc30\"\u003e\u003ccode\u003ea4e1a3d\u003c/code\u003e\u003c/a\u003e Add typing_extensions dependency for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/bd9700cca7f9258fadcc429c1034e508025931f2\"\u003e\u003ccode\u003ebd9700c\u003c/code\u003e\u003c/a\u003e Use PyJWK algorithm when encoding without explicit algorithm (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1148\"\u003e#1148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/051ea341b5573fe3edcd53042f347929b92c2b92\"\u003e\u003ccode\u003e051ea34\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/1451d70eca2059bc472703692f0bb0777bc0fe93\"\u003e\u003ccode\u003e1451d70\u003c/code\u003e\u003c/a\u003e fix: do not store reference to algorithms dict on PyJWK (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1143\"\u003e#1143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/f3ba74c106df9ce10e272dfaad96acb4ab3ef5a5\"\u003e\u003ccode\u003ef3ba74c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1145\"\u003e#1145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/0318ffa7b156b01600376e38952bf961382e0724\"\u003e\u003ccode\u003e0318ffa\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1141\"\u003e#1141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/a52753db3c1075ac01337fa8b7cc92b13a19ac09\"\u003e\u003ccode\u003ea52753d\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7 to 8 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1142\"\u003e#1142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/b85050f1d444c6828bb4618ee764443b0a3f5d18\"\u003e\u003ccode\u003eb85050f\u003c/code\u003e\u003c/a\u003e chore(tests): enable mypy (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1138\"\u003e#1138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/1272b264779717cc481c8341f321a7fc8b3aaba6\"\u003e\u003ccode\u003e1272b26\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1135\"\u003e#1135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/99a87287c26cb97c94399084ee4186ee52207a7f\"\u003e\u003ccode\u003e99a8728\u003c/code\u003e\u003c/a\u003e chore: remove superfluous constants (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1136\"\u003e#1136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyopenssl` from 25.3.0 to 26.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/pyopenssl/blob/main/CHANGELOG.rst\"\u003epyopenssl's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0.0 (2026-03-15)\u003c/h2\u003e\n\u003cp\u003eBackward-incompatible changes:\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.7.\u003c/li\u003e\n\u003cli\u003eThe minimum \u003ccode\u003ecryptography\u003c/code\u003e version is now 46.0.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDeprecations:\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eChanges:\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for using aws-lc instead of OpenSSL.\u003c/li\u003e\n\u003cli\u003eProperly raise an error if a DTLS cookie callback returned a cookie longer than \u003ccode\u003eDTLS1_COOKIE_LENGTH\u003c/code\u003e bytes. Previously this would result in a buffer-overflow. Credit to \u003cstrong\u003edark_haxor\u003c/strong\u003e for reporting the issue. \u003cstrong\u003eCVE-2026-27459\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eOpenSSL.SSL.Connection.get_group_name\u003c/code\u003e to determine which group name was negotiated.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.set_tlsext_servername_callback\u003c/code\u003e now handles exceptions raised in the callback by calling \u003ccode\u003esys.excepthook\u003c/code\u003e and returning a fatal TLS alert. Previously, exceptions were silently swallowed and the handshake would proceed as if the callback had succeeded. Credit to \u003cstrong\u003eLeury Castillo\u003c/strong\u003e for reporting this issue. \u003cstrong\u003eCVE-2026-27448\u003c/strong\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/pyca/pyopenssl/commit/358cbf29c4e364c59930e53a270116249581eaa3\"\u003e\u003ccode\u003e358cbf2\u003c/code\u003e\u003c/a\u003e Prepare for 26.0.0 release (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1487\"\u003e#1487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/a8d28e7069ca213049ccfbcc227ed9ef6080a15b\"\u003e\u003ccode\u003ea8d28e7\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4 to 5 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1486\"\u003e#1486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/6fefff05561c0a5e8f668b4e029a6ba3adb7d89e\"\u003e\u003ccode\u003e6fefff0\u003c/code\u003e\u003c/a\u003e Add aws-lc compatibility to tests and CI (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1476\"\u003e#1476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/a739f9661d09ec6cda448ad71ca3e6df0dce9d75\"\u003e\u003ccode\u003ea739f96\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 8.0.0 to 8.0.1 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1485\"\u003e#1485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/8b4c66b1b5649ce046665b151772d40c1cddd66a\"\u003e\u003ccode\u003e8b4c66b\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact in /.github/actions/upload-coverage (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1484\"\u003e#1484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/02a5c78435cd445a7d5ef20b354dba2b6abdac64\"\u003e\u003ccode\u003e02a5c78\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/d9733878d67ee2ad94327768bb6dc416f7827443\"\u003e\u003ccode\u003ed973387\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7.0.0 to 8.0.0 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1482\"\u003e#1482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/57f09bb4bb051d3bc2a1abd36e9525313d5cd408\"\u003e\u003ccode\u003e57f09bb\u003c/code\u003e\u003c/a\u003e Fix buffer overflow in DTLS cookie generation callback (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1479\"\u003e#1479\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/d41a814759a9fb49584ca8ab3f7295de49a85aa0\"\u003e\u003ccode\u003ed41a814\u003c/code\u003e\u003c/a\u003e Handle exceptions in set_tlsext_servername_callback callbacks (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1478\"\u003e#1478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/7b29beba7759f0b810b5d5375a50469c4f8947b3\"\u003e\u003ccode\u003e7b29beb\u003c/code\u003e\u003c/a\u003e Fix not using a cryptography wheel on uv (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1475\"\u003e#1475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/pyopenssl/compare/25.3.0...26.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.5 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\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/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.48 to 2.0.49\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.49\u003c/h1\u003e\n\u003cp\u003eReleased: April 3, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where \u003ccode\u003e_orm.Session.get()\u003c/code\u003e would bypass the identity map\nand emit unnecessary SQL when \u003ccode\u003ewith_for_update=False\u003c/code\u003e was passed,\nrather than treating it equivalently to the default of \u003ccode\u003eNone\u003c/code\u003e.\nPull request courtesy of Joshua Swanson.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13176\"\u003e#13176\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where chained \u003ccode\u003e_orm.joinedload()\u003c/code\u003e options would not be\napplied correctly when the final relationship in the chain is declared on a\nbase mapper and accessed through a subclass mapper in a\n\u003ccode\u003e_orm.with_polymorphic()\u003c/code\u003e query. The path registry now correctly\ncomputes the natural path when a property declared on a base class is\naccessed through a path containing a subclass mapper, ensuring the loader\noption can be located during query compilation.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13193\"\u003e#13193\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using \u003ccode\u003e_orm.Load.options()\u003c/code\u003e to apply a chained loader\noption such as \u003ccode\u003e_orm.joinedload()\u003c/code\u003e or \u003ccode\u003e_orm.selectinload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot generate the necessary clauses for the polymorphic subclasses. The\npolymorphic loading strategy is now correctly propagated when using a call\nsuch as \u003ccode\u003ejoinedload(A.b).options(joinedload(B.c.of_type(poly)))\u003c/code\u003e to match\nthe behavior of direct chaining e.g.\n\u003ccode\u003ejoinedload(A.b).joinedload(B.c.of_type(poly))\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13202\"\u003e#13202\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using chained loader options such as\n\u003ccode\u003e_orm.selectinload()\u003c/code\u003e after \u003ccode\u003e_orm.joinedload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot properly apply ...\n\n_Description has been truncated_","html_url":"https://github.com/brendanbank/bcource/pull/49","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/brendanbank%2Fbcource/issues/49","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/49/packages"}},{"old_version":"9.0.26","new_version":"9.0.27","update_type":"patch","path":null,"pr_created_at":"2026-04-06T08:14:37.000Z","version_change":"9.0.26 → 9.0.27","issue":{"uuid":"4210465264","node_id":"PR_kwDOK5vSp87QJgDE","number":802,"state":"open","title":"deps(deps): bump the python-production group across 1 directory with 2 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-06T08:14:37.000Z","updated_at":"2026-04-20T08:37:51.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps): bump","group_name":"python-production","update_count":2,"packages":[{"name":"phonenumbers","old_version":"9.0.26","new_version":"9.0.27","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"},{"name":"regex","old_version":"2026.2.28","new_version":"2026.4.4","repository_url":"https://github.com/mrabarnett/mrab-regex"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-production group with 2 updates in the / directory: [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) and [regex](https://github.com/mrabarnett/mrab-regex).\n\nUpdates `phonenumbers` from 9.0.26 to 9.0.27\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/3b082bf38fac2ac2a1556b9b416562f464c9d780\"\u003e\u003ccode\u003e3b082bf\u003c/code\u003e\u003c/a\u003e Prep for 9.0.27 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/c496532280afda5778e45d23d5feb621e55fc397\"\u003e\u003ccode\u003ec496532\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/ee29e8518101d039dbaf4463087a786e7c11e01d\"\u003e\u003ccode\u003eee29e85\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.27\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.26...v9.0.27\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `regex` from 2026.2.28 to 2026.4.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2aff2db5542ec5b58705be6ddb7b69a99d3e38a8\"\u003e\u003ccode\u003e2aff2db\u003c/code\u003e\u003c/a\u003e Fixed bug again.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/16af8aed2b3211e90588d2ac96f7c588ed477b2c\"\u003e\u003ccode\u003e16af8ae\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2356563bbfd51b3986320a866c35a50b89833949\"\u003e\u003ccode\u003e2356563\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/f579e8ff60e2993a11cf4fd96748e4b7866c9fed\"\u003e\u003ccode\u003ef579e8f\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/55315a0497722898bed8286a596a64db698f498e\"\u003e\u003ccode\u003e55315a0\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/923d78e39b8ff92db67606be3bfbc2e595b6475a\"\u003e\u003ccode\u003e923d78e\u003c/code\u003e\u003c/a\u003e Various fixes, including ones to improve free-threading support.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/softwareone-platform/swo-adobe-vipm-extension/pull/802","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/softwareone-platform%2Fswo-adobe-vipm-extension/issues/802","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/802/packages"}},{"old_version":"9.0.21","new_version":"9.0.26","update_type":"patch","path":null,"pr_created_at":"2026-03-30T08:20:17.000Z","version_change":"9.0.21 → 9.0.26","issue":{"uuid":"4168606490","node_id":"PR_kwDOQ466oc7OiD5y","number":14,"state":"closed","title":"deps(deps): bump the python-production group across 1 directory with 13 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-06T08:16:29.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-30T08:20:17.000Z","updated_at":"2026-04-06T08:16:30.000Z","time_to_close":604572,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps): bump","group_name":"python-production","update_count":13,"packages":[{"name":"azure-identity","old_version":"1.25.1","new_version":"1.25.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"debugpy","old_version":"1.8.19","new_version":"1.8.20","repository_url":"https://github.com/microsoft/debugpy"},{"name":"gunicorn","old_version":"23.0.0","new_version":"25.3.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"phonenumbers","old_version":"9.0.21","new_version":"9.0.26","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"},{"name":"pyjwt","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"rich","old_version":"14.2.0","new_version":"14.3.3","repository_url":"https://github.com/Textualize/rich"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-production group with 7 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.1` | `1.25.3` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.19` | `1.8.20` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `25.3.0` |\n| [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) | `9.0.21` | `9.0.26` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.10.1` | `2.12.1` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.0` |\n| [rich](https://github.com/Textualize/rich) | `14.2.0` | `14.3.3` |\n\n\nUpdates `azure-identity` from 1.25.1 to 1.25.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-identity's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-identity_1.25.3\u003c/h2\u003e\n\u003ch2\u003e1.25.3 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an expired token could skip refresh when a recent token request was made, due to the retry delay taking precedence over expiration. (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/pull/45496\"\u003e#45496\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBumped minimum dependency on \u003ccode\u003emsal\u003c/code\u003e to \u003ccode\u003e\u0026gt;=1.35.1\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eazure-identity_1.25.2\u003c/h2\u003e\n\u003ch2\u003e1.25.2 (2026-02-10)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue with certain credentials not bypassing the token cache when claims are provided in \u003ccode\u003eget_token\u003c/code\u003e or \u003ccode\u003eget_token_info\u003c/code\u003e calls. (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/pull/44552\"\u003e#44552\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/pull/44815\"\u003e#44815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed an issue where an unhelpful TypeError was raised during Entra ID token requests that returned empty responses. Now, a ClientAuthenticationError is raised with the full response for better troubleshooting. (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/pull/44258\"\u003e#44258\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBumped minimum dependency on \u003ccode\u003emsal\u003c/code\u003e to \u003ccode\u003e\u0026gt;=1.31.0\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdded debug logging of access token cache hits in several credentials to improve troubleshooting of token cache behavior. (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/pull/44963\"\u003e#44963\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace instances of \u003ccode\u003eazure.core.pipeline.transport.HttpRequest\u003c/code\u003e with \u003ccode\u003eazure.core.rest.HttpRequest\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/pull/44993\"\u003e#44993\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/Azure/azure-sdk-for-python/commit/a989ea467731265fdf097b622ba254703187746b\"\u003e\u003ccode\u003ea989ea4\u003c/code\u003e\u003c/a\u003e [Identity] Prep patch release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/79728834e7f38018d372860cf9117bf51d9ed417\"\u003e\u003ccode\u003e7972883\u003c/code\u003e\u003c/a\u003e [Identity] Adjust refresh logic (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45496\"\u003e#45496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/04764a9a8a0cb59aab6421b41152246853dfcfe8\"\u003e\u003ccode\u003e04764a9\u003c/code\u003e\u003c/a\u003e add psscript to convert apiview json files to md (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45589\"\u003e#45589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/50e01659d7204865dfa07c5ece1019ed9a229b4f\"\u003e\u003ccode\u003e50e0165\u003c/code\u003e\u003c/a\u003e Sync eng/common directory with azure-sdk-tools for PR 14461 (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45646\"\u003e#45646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/5333117e0e181404ff4deaa757e9b6ef86dabf8b\"\u003e\u003ccode\u003e5333117\u003c/code\u003e\u003c/a\u003e Add Bo to /sdk/ai/azure-ai-projects owner list (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45664\"\u003e#45664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/775d6942e4335422fc69da8e997a6069e356b104\"\u003e\u003ccode\u003e775d694\u003c/code\u003e\u003c/a\u003e Doc and automation updates for .github sync directory changes (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45630\"\u003e#45630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/c6e48b5cd71adf5728a5e2f33bc9f62fb221221f\"\u003e\u003ccode\u003ec6e48b5\u003c/code\u003e\u003c/a\u003e [Core] Prepare release (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45656\"\u003e#45656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/ae769c4e9379c8d309bffa5ccb76dcfba64e1f71\"\u003e\u003ccode\u003eae769c4\u003c/code\u003e\u003c/a\u003e Fix custom Memory Stores LRO poller operation (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45662\"\u003e#45662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/6074492844d670316eb171756483f1394a6c94c7\"\u003e\u003ccode\u003e6074492\u003c/code\u003e\u003c/a\u003e Add asset id none check in dt (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45618\"\u003e#45618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/e1a986aeb7a8001bd3a4f336cf096c2b050aa480\"\u003e\u003ccode\u003ee1a986a\u003c/code\u003e\u003c/a\u003e Bump tar from 7.5.10 to 7.5.11 in /eng/common/tsp-client (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45640\"\u003e#45640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-identity_1.25.1...azure-identity_1.25.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `debugpy` from 1.8.19 to 1.8.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/debugpy/releases\"\u003edebugpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003edebugpy v1.8.20\u003c/h2\u003e\n\u003cp\u003eFixes for:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eannotate in 3.14 causing exceptions: \u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1971\"\u003emicrosoft/debugpy#1971\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eEnhancements:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse remote_exec if available: \u003ca href=\"https://github.com/microsoft/debugpy/commit/c7e86a1954381ceadb2ea398fc60079deef91358\"\u003ehttps://github.com/microsoft/debugpy/commit/c7e86a1954381ceadb2ea398fc60079deef91358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport more architectures: \u003ca href=\"https://github.com/microsoft/debugpy/commit/1bbecdf366016c58e62a076b46d4f3c00aea097f\"\u003ehttps://github.com/microsoft/debugpy/commit/1bbecdf366016c58e62a076b46d4f3c00aea097f\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInfrastructure work:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport devcontainers for development: \u003ca href=\"https://github.com/microsoft/debugpy/commit/7dbc2292b1a23e5ae80db67a1b25f002bd104776\"\u003ehttps://github.com/microsoft/debugpy/commit/7dbc2292b1a23e5ae80db67a1b25f002bd104776\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/rameshvarun\"\u003e\u003ccode\u003e@​rameshvarun\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Xeonacid\"\u003e\u003ccode\u003e@​Xeonacid\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/pdepetro\"\u003e\u003ccode\u003e@​pdepetro\u003c/code\u003e\u003c/a\u003e for the commits\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/microsoft/debugpy/commit/7ac3d1f2c65ccf6b2e62a762863093f0242179f0\"\u003e\u003ccode\u003e7ac3d1f\u003c/code\u003e\u003c/a\u003e Try 6 on this file (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1995\"\u003e#1995\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/e1646137a8346292a528b2899c7c8a8fe8d60224\"\u003e\u003ccode\u003ee164613\u003c/code\u003e\u003c/a\u003e O365 new advice (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1994\"\u003e#1994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/4cbf8b1ce99a856b032470c19c3261195e137ca2\"\u003e\u003ccode\u003e4cbf8b1\u003c/code\u003e\u003c/a\u003e Try another suppression (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1993\"\u003e#1993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/ea9fcaeb59482ad97c51cbe584247f30a0c7ae2d\"\u003e\u003ccode\u003eea9fcae\u003c/code\u003e\u003c/a\u003e Try a different way to suppress binskim problems (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1992\"\u003e#1992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/ea2746aafcd830a96a2144c3f636ba587f90a15d\"\u003e\u003ccode\u003eea2746a\u003c/code\u003e\u003c/a\u003e Add LTCG flags to compile_windows.bat for BinSkim BA6006 compliance (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1991\"\u003e#1991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/7dbc2292b1a23e5ae80db67a1b25f002bd104776\"\u003e\u003ccode\u003e7dbc229\u003c/code\u003e\u003c/a\u003e Added devcontainer specification (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1989\"\u003e#1989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/bb450fc27202cdf0676343dc0150be962b627233\"\u003e\u003ccode\u003ebb450fc\u003c/code\u003e\u003c/a\u003e Fix: Treat \u003cstrong\u003eannotate\u003c/strong\u003e functions as library code in Python 3.14+ (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1988\"\u003e#1988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/1bbecdf366016c58e62a076b46d4f3c00aea097f\"\u003e\u003ccode\u003e1bbecdf\u003c/code\u003e\u003c/a\u003e Better experience for unsupported arch (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1984\"\u003e#1984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/c7e86a1954381ceadb2ea398fc60079deef91358\"\u003e\u003ccode\u003ec7e86a1\u003c/code\u003e\u003c/a\u003e Use sys.remote_exec() to attach to pid, if available (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1986\"\u003e#1986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/microsoft/debugpy/compare/v1.8.19...v1.8.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gunicorn` from 23.0.0 to 25.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/benoitc/gunicorn/releases\"\u003egunicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eGunicorn 25.3.0\u003c/h2\u003e\n\u003ch2\u003eBug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eHTTP/2 ASGI Body Duplication\u003c/strong\u003e: Fix request body being received twice in HTTP/2\nASGI requests, causing JSON parsing errors with \u0026quot;Extra data\u0026quot; messages\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3558\"\u003e#3558\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eASGI Chunked EOF Handling\u003c/strong\u003e: Add \u003ccode\u003efinish()\u003c/code\u003e method to callback parser to handle\nchunked encoding edge case where connection closes before final CRLF after zero-chunk\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eHTTP/2 Documentation\u003c/strong\u003e: Fix \u003ccode\u003ehttp_protocols\u003c/code\u003e examples to use comma-separated string\ninstead of list syntax (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3561\"\u003e#3561\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eChunked Encoding\u003c/strong\u003e: Reject chunk extensions containing bare CR bytes per RFC 9112\n(\u003ca href=\"https://github.com/benoitc/gunicorn/discussions/3556\"\u003e#3556\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eRequest Line Limit\u003c/strong\u003e: Fix \u003ccode\u003e--limit-request-line 0\u003c/code\u003e to mean unlimited as documented,\ninstead of using default maximum. Works with both Python and fast C parser.\n(\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3563\"\u003e#3563\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eASGI Parser Header Validation\u003c/strong\u003e: Add security checks per RFC 9110/9112:\n\u003cul\u003e\n\u003cli\u003eReject duplicate Content-Length headers\u003c/li\u003e\n\u003cli\u003eReject requests with both Content-Length and Transfer-Encoding\u003c/li\u003e\n\u003cli\u003eReject chunked transfer encoding in HTTP/1.0\u003c/li\u003e\n\u003cli\u003eReject stacked chunked encoding\u003c/li\u003e\n\u003cli\u003eValidate Transfer-Encoding values\u003c/li\u003e\n\u003cli\u003eStrict chunk size validation\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFast HTTP Parser\u003c/strong\u003e: Update to gunicorn_h1c \u0026gt;= 0.6.3 for \u003ccode\u003easgi_headers\u003c/code\u003e property\nand \u003ccode\u003eInvalidChunkExtension\u003c/code\u003e validation for bare CR rejection\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eASGI PROXY Protocol\u003c/strong\u003e: Add PROXY protocol v1/v2 support to callback parser\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eDocker Images\u003c/strong\u003e: Update to Python 3.14\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eGunicorn 25.2.0\u003c/h2\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFast HTTP Parser (gunicorn_h1c 0.4.1)\u003c/strong\u003e: Integrate new exception types and limit parameters from gunicorn_h1c 0.4.1 for both WSGI and ASGI workers\n\u003cul\u003e\n\u003cli\u003eRequires gunicorn_h1c \u0026gt;= 0.4.1 for \u003ccode\u003ehttp_parser='fast'\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFalls back to Python parser in \u003ccode\u003eauto\u003c/code\u003e mode if version not met\u003c/li\u003e\n\u003cli\u003eProper HTTP status codes for limit errors (414, 431)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003euWSGI Async Workers\u003c/strong\u003e: Fix \u003ccode\u003eInvalidUWSGIHeader: incomplete header\u003c/code\u003e error when using gevent or gthread workers with uwsgi protocol behind nginx. (\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3552\"\u003e#3552\u003c/a\u003e, [PR \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3554\"\u003e#3554\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/benoitc/gunicorn/pull/3554\"\u003ebenoitc/gunicorn#3554\u003c/a\u003e))\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/9bce72cfc3985aba7e0c47bf3c00fa681b2847e4\"\u003e\u003ccode\u003e9bce72c\u003c/code\u003e\u003c/a\u003e Update changelog with missing 25.3.0 changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/2a15fdb93ab136e5776692d620852f481c89d610\"\u003e\u003ccode\u003e2a15fdb\u003c/code\u003e\u003c/a\u003e Fix pylint isinstance-second-argument-not-valid-type warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/8d08aaa2cbd38fdfa2ca6fb94094c47b9c16730a\"\u003e\u003ccode\u003e8d08aaa\u003c/code\u003e\u003c/a\u003e Fix --limit-request-line 0 to mean unlimited\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/d40a37454736e40916eb51e35895f1c22c0cd34a\"\u003e\u003ccode\u003ed40a374\u003c/code\u003e\u003c/a\u003e Fix pytest-asyncio configuration and treq_asgi hex escapes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/da8bd4850ac0f2d0df215390dad88392eb538d74\"\u003e\u003ccode\u003eda8bd48\u003c/code\u003e\u003c/a\u003e Remove unused AsyncRequest class\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/b00f125755ec3f509a3e82dc5568d9f2d8bddba7\"\u003e\u003ccode\u003eb00f125\u003c/code\u003e\u003c/a\u003e Integrate gunicorn_h1c 0.6.3 with InvalidChunkExtension support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/bdb2ebd5a4913fff1e92800f3763e4a879526d3e\"\u003e\u003ccode\u003ebdb2ebd\u003c/code\u003e\u003c/a\u003e Reject chunk extensions with bare CR bytes (RFC 9112)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/7057fc9f89f0ce4d9ac01a12ea2f39768fb32be6\"\u003e\u003ccode\u003e7057fc9\u003c/code\u003e\u003c/a\u003e Fix http_protocols documentation to use string syntax\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/d43acb8fe0910b6669c163e2f4a439e464eab012\"\u003e\u003ccode\u003ed43acb8\u003c/code\u003e\u003c/a\u003e Update to gunicorn_h1c \u0026gt;= 0.6.2 for asgi_headers support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/benoitc/gunicorn/commit/cbd27e82a238cb1326336c6aa4b8ae058e2c9ff9\"\u003e\u003ccode\u003ecbd27e8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/benoitc/gunicorn/issues/3559\"\u003e#3559\u003c/a\u003e from benleembruggen/fix/http2-asgi-body-duplication\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/benoitc/gunicorn/compare/23.0.0...25.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-api` from 1.30.0 to 1.39.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/v1.39.1/CHANGELOG.md\"\u003eopentelemetry-api's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.39.1/0.60b1 (2025-12-11)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSilence events API warnings for internal users\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4847\"\u003e#4847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.39.0/0.60b0 (2025-12-03)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e: Convert objects of any type other than AnyValue in attributes to string to be exportable\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4808\"\u003e#4808\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edocs: Added sqlcommenter example\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4734\"\u003e#4734\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ebuild: bump ruff to 0.14.1\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4782\"\u003e#4782\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eopentelemetry-exporter-credential-provider-gcp\u003c/code\u003e as an optional dependency to \u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e\nand \u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4760\"\u003e#4760\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003esemantic-conventions: Bump to 1.38.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4791\"\u003e#4791\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[BREAKING] Remove LogData and extend SDK LogRecord to have instrumentation scope\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4676\"\u003e#4676\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[BREAKING] Rename several classes from Log to LogRecord\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4647\"\u003e#4647\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMigration Guide:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eLogData\u003c/code\u003e has been removed. Users should update their code as follows:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFor Log Exporters:\u003c/strong\u003e Change from \u003ccode\u003eSequence[LogData]\u003c/code\u003e to \u003ccode\u003eSequence[ReadableLogRecord]\u003c/code\u003e\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before\nfrom opentelemetry.sdk._logs import LogData\ndef export(self, batch: Sequence[LogData]) -\u0026gt; LogRecordExportResult:\n    ...\n\u003ch1\u003eAfter\u003c/h1\u003e\n\u003cp\u003efrom opentelemetry.sdk._logs import ReadableLogRecord\ndef export(self, batch: Sequence[ReadableLogRecord]) -\u0026gt; LogRecordExportResult:\n...\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFor Log Processors:\u003c/strong\u003e Use \u003ccode\u003eReadWriteLogRecord\u003c/code\u003e for processing, \u003ccode\u003eReadableLogRecord\u003c/code\u003e for exporting\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before\nfrom opentelemetry.sdk._logs import LogData\ndef on_emit(self, log_data: LogData):\n    ...\n\u003ch1\u003eAfter\u003c/h1\u003e\n\u003cp\u003efrom opentelemetry.sdk._logs import ReadWriteLogRecord, ReadableLogRecord\ndef on_emit(self, log_record: ReadWriteLogRecord):\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\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/open-telemetry/opentelemetry-python/commit/b4c13279187941b561de5d62e6483a91759ba123\"\u003e\u003ccode\u003eb4c1327\u003c/code\u003e\u003c/a\u003e Prepare release 1.39.1/0.60b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4851\"\u003e#4851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/2fdd6587582febe0978d4b841c0f9ec92596d89b\"\u003e\u003ccode\u003e2fdd658\u003c/code\u003e\u003c/a\u003e Silence events warnings for internal users (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4850\"\u003e#4850\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/dc0a9b340446b985cdebb6f45d70eab3e042c92a\"\u003e\u003ccode\u003edc0a9b3\u003c/code\u003e\u003c/a\u003e Prepare release 1.39.0/0.60b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4833\"\u003e#4833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/cd150c3a201df6ff55c5a9b40ee877717d973a82\"\u003e\u003ccode\u003ecd150c3\u003c/code\u003e\u003c/a\u003e Fix changelog before the release (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4831\"\u003e#4831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/382fa46621953a80a6659bc4fb0a8266c4c982fc\"\u003e\u003ccode\u003e382fa46\u003c/code\u003e\u003c/a\u003e Mark events API/SDK as deprecated (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4654\"\u003e#4654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/5307dd0a6cabea2877a67e067cf81be5285d586b\"\u003e\u003ccode\u003e5307dd0\u003c/code\u003e\u003c/a\u003e Fix errors on serialization of values that are not AnyValue in LogRecord attr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/8615ba0a0bc675d6ccad6693c637f009fec727eb\"\u003e\u003ccode\u003e8615ba0\u003c/code\u003e\u003c/a\u003e Fix type checking for built in metric exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4820\"\u003e#4820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/62da90eda4b1348730180ce2fa0aeae72e09c7ed\"\u003e\u003ccode\u003e62da90e\u003c/code\u003e\u003c/a\u003e Add lmolkova to approvers (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4812\"\u003e#4812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/61bda605d71498b15a13a106ed7564eaea9f642b\"\u003e\u003ccode\u003e61bda60\u003c/code\u003e\u003c/a\u003e Fix meeting and typos (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4817\"\u003e#4817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/546e47b0001b40ca777515325953106e81ed8dbd\"\u003e\u003ccode\u003e546e47b\u003c/code\u003e\u003c/a\u003e [logs-api/sdk] Rename several classes from Log to LogRecord (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4647\"\u003e#4647\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.30.0...v1.39.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-django` from 0.51b0 to 0.60b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-django's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.0.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to \u003ca href=\"https://semver.org/spec/v2.0.0.html\"\u003eSemantic Versioning\u003c/a\u003e.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!NOTE]\nThe following components are released independently and maintain individual CHANGELOG files.\nUse \u003ca href=\"https://github.com/search?q=repo%3Aopen-telemetry%2Fopentelemetry-python-contrib+path%3A**%2FCHANGELOG.md\u0026amp;type=code\"\u003ethis search for a list of all CHANGELOG.md files in this repo\u003c/a\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eUnreleased\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-confluent-kafka\u003c/code\u003e: Loosen confluent-kafka upper bound to \u0026lt;3.0.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4289\"\u003e#4289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add support for wrapt 2.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4203\"\u003e#4203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-psycopg2\u003c/code\u003e: Add parameter \u003ccode\u003ecapture_parameters\u003c/code\u003e to instrumentor.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4212\"\u003e#4212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-botocore\u003c/code\u003e: Add support for instrumenting \u003ccode\u003eaiobotocore\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4049\"\u003e#4049\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: Replace deprecated \u003ccode\u003eSpanAttributes\u003c/code\u003e from \u003ccode\u003eopentelemetry.semconv.trace\u003c/code\u003e with \u003ccode\u003eopentelemetry.semconv._incubating.attributes\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4339\"\u003e#4339\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-confluent-kafka\u003c/code\u003e: Skip \u003ccode\u003erecv\u003c/code\u003e span creation when \u003ccode\u003epoll()\u003c/code\u003e returns no message or \u003ccode\u003econsume()\u003c/code\u003e returns an empty list, avoiding empty spans on idle polls\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4349\"\u003e#4349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix intermittent \u003ccode\u003eCore Contrib Test\u003c/code\u003e CI failures caused by GitHub git CDN SHA propagation lag by installing core packages from the already-checked-out local copy instead of a second git clone\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4305\"\u003e#4305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't import module in unwrap if not already imported\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4321\"\u003e#4321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add recursion guard in LoggingHandler.emit to prevent deadlock\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4302\"\u003e#4302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-grpc\u003c/code\u003e: Fix bidirectional streaming RPCs raising \u003ccode\u003eAttributeError: 'generator' object has no attribute 'add_done_callback'\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4259\"\u003e#4259\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-boto\u003c/code\u003e: Remove instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4303\"\u003e#4303\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.40.0/0.61b0 (2026-03-04)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4193\"\u003e#4193\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\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-logging` from 0.51b0 to 0.60b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-logging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.0.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to \u003ca href=\"https://semver.org/spec/v2.0.0.html\"\u003eSemantic Versioning\u003c/a\u003e.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!NOTE]\nThe following components are released independently and maintain individual CHANGELOG files.\nUse \u003ca href=\"https://github.com/search?q=repo%3Aopen-telemetry%2Fopentelemetry-python-contrib+path%3A**%2FCHANGELOG.md\u0026amp;type=code\"\u003ethis search for a list of all CHANGELOG.md files in this repo\u003c/a\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eUnreleased\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-confluent-kafka\u003c/code\u003e: Loosen confluent-kafka upper bound to \u0026lt;3.0.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4289\"\u003e#4289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add support for wrapt 2.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4203\"\u003e#4203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-psycopg2\u003c/code\u003e: Add parameter \u003ccode\u003ecapture_parameters\u003c/code\u003e to instrumentor.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4212\"\u003e#4212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-botocore\u003c/code\u003e: Add support for instrumenting \u003ccode\u003eaiobotocore\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4049\"\u003e#4049\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: Replace deprecated \u003ccode\u003eSpanAttributes\u003c/code\u003e from \u003ccode\u003eopentelemetry.semconv.trace\u003c/code\u003e with \u003ccode\u003eopentelemetry.semconv._incubating.attributes\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4339\"\u003e#4339\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-confluent-kafka\u003c/code\u003e: Skip \u003ccode\u003erecv\u003c/code\u003e span creation when \u003ccode\u003epoll()\u003c/code\u003e returns no message or \u003ccode\u003econsume()\u003c/code\u003e returns an empty list, avoiding empty spans on idle polls\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4349\"\u003e#4349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix intermittent \u003ccode\u003eCore Contrib Test\u003c/code\u003e CI failures caused by GitHub git CDN SHA propagation lag by installing core packages from the already-checked-out local copy instead of a second git clone\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4305\"\u003e#4305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't import module in unwrap if not already imported\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4321\"\u003e#4321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add recursion guard in LoggingHandler.emit to prevent deadlock\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4302\"\u003e#4302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-grpc\u003c/code\u003e: Fix bidirectional streaming RPCs raising \u003ccode\u003eAttributeError: 'generator' object has no attribute 'add_done_callback'\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4259\"\u003e#4259\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-boto\u003c/code\u003e: Remove instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4303\"\u003e#4303\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.40.0/0.61b0 (2026-03-04)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4193\"\u003e#4193\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\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-requests` from 0.51b0 to 0.60b1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-requests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.0.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to \u003ca href=\"https://semver.org/spec/v2.0.0.html\"\u003eSemantic Versioning\u003c/a\u003e.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!NOTE]\nThe following components are released independently and maintain individual CHANGELOG files.\nUse \u003ca href=\"https://github.com/search?q=repo%3Aopen-telemetry%2Fopentelemetry-python-contrib+path%3A**%2FCHANGELOG.md\u0026amp;type=code\"\u003ethis search for a list of all CHANGELOG.md files in this repo\u003c/a\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eUnreleased\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-confluent-kafka\u003c/code\u003e: Loosen confluent-kafka upper bound to \u0026lt;3.0.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4289\"\u003e#4289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add support for wrapt 2.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4203\"\u003e#4203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-psycopg2\u003c/code\u003e: Add parameter \u003ccode\u003ecapture_parameters\u003c/code\u003e to instrumentor.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4212\"\u003e#4212\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-botocore\u003c/code\u003e: Add support for instrumenting \u003ccode\u003eaiobotocore\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4049\"\u003e#4049\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-docker-tests\u003c/code\u003e: Replace deprecated \u003ccode\u003eSpanAttributes\u003c/code\u003e from \u003ccode\u003eopentelemetry.semconv.trace\u003c/code\u003e with \u003ccode\u003eopentelemetry.semconv._incubating.attributes\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4339\"\u003e#4339\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-confluent-kafka\u003c/code\u003e: Skip \u003ccode\u003erecv\u003c/code\u003e span creation when \u003ccode\u003epoll()\u003c/code\u003e returns no message or \u003ccode\u003econsume()\u003c/code\u003e returns an empty list, avoiding empty spans on idle polls\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4349\"\u003e#4349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix intermittent \u003ccode\u003eCore Contrib Test\u003c/code\u003e CI failures caused by GitHub git CDN SHA propagation lag by installing core packages from the already-checked-out local copy instead of a second git clone\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4305\"\u003e#4305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't import module in unwrap if not already imported\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4321\"\u003e#4321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add recursion guard in LoggingHandler.emit to prevent deadlock\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4302\"\u003e#4302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-grpc\u003c/code\u003e: Fix bidirectional streaming RPCs raising \u003ccode\u003eAttributeError: 'generator' object has no attribute 'add_done_callback'\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4259\"\u003e#4259\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-boto\u003c/code\u003e: Remove instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4303\"\u003e#4303\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.40.0/0.61b0 (2026-03-04)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4193\"\u003e#4193\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\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-sdk` from 1.30.0 to 1.39.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/blob/v1.39.1/CHANGELOG.md\"\u003eopentelemetry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.39.1/0.60b1 (2025-12-11)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSilence events API warnings for internal users\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4847\"\u003e#4847\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.39.0/0.60b0 (2025-12-03)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003eopentelemetry-api\u003c/code\u003e: Convert objects of any type other than AnyValue in attributes to string to be exportable\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4808\"\u003e#4808\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003edocs: Added sqlcommenter example\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4734\"\u003e#4734\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ebuild: bump ruff to 0.14.1\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4782\"\u003e#4782\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eopentelemetry-exporter-credential-provider-gcp\u003c/code\u003e as an optional dependency to \u003ccode\u003eopentelemetry-exporter-otlp-proto-grpc\u003c/code\u003e\nand \u003ccode\u003eopentelemetry-exporter-otlp-proto-http\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4760\"\u003e#4760\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003esemantic-conventions: Bump to 1.38.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4791\"\u003e#4791\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[BREAKING] Remove LogData and extend SDK LogRecord to have instrumentation scope\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4676\"\u003e#4676\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[BREAKING] Rename several classes from Log to LogRecord\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/pull/4647\"\u003e#4647\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMigration Guide:\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eLogData\u003c/code\u003e has been removed. Users should update their code as follows:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFor Log Exporters:\u003c/strong\u003e Change from \u003ccode\u003eSequence[LogData]\u003c/code\u003e to \u003ccode\u003eSequence[ReadableLogRecord]\u003c/code\u003e\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before\nfrom opentelemetry.sdk._logs import LogData\ndef export(self, batch: Sequence[LogData]) -\u0026gt; LogRecordExportResult:\n    ...\n\u003ch1\u003eAfter\u003c/h1\u003e\n\u003cp\u003efrom opentelemetry.sdk._logs import ReadableLogRecord\ndef export(self, batch: Sequence[ReadableLogRecord]) -\u0026gt; LogRecordExportResult:\n...\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eFor Log Processors:\u003c/strong\u003e Use \u003ccode\u003eReadWriteLogRecord\u003c/code\u003e for processing, \u003ccode\u003eReadableLogRecord\u003c/code\u003e for exporting\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e# Before\nfrom opentelemetry.sdk._logs import LogData\ndef on_emit(self, log_data: LogData):\n    ...\n\u003ch1\u003eAfter\u003c/h1\u003e\n\u003cp\u003efrom opentelemetry.sdk._logs import ReadWriteLogRecord, ReadableLogRecord\ndef on_emit(self, log_record: ReadWriteLogRecord):\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\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/open-telemetry/opentelemetry-python/commit/b4c13279187941b561de5d62e6483a91759ba123\"\u003e\u003ccode\u003eb4c1327\u003c/code\u003e\u003c/a\u003e Prepare release 1.39.1/0.60b1 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4851\"\u003e#4851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/2fdd6587582febe0978d4b841c0f9ec92596d89b\"\u003e\u003ccode\u003e2fdd658\u003c/code\u003e\u003c/a\u003e Silence events warnings for internal users (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4850\"\u003e#4850\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/dc0a9b340446b985cdebb6f45d70eab3e042c92a\"\u003e\u003ccode\u003edc0a9b3\u003c/code\u003e\u003c/a\u003e Prepare release 1.39.0/0.60b0 (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4833\"\u003e#4833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/cd150c3a201df6ff55c5a9b40ee877717d973a82\"\u003e\u003ccode\u003ecd150c3\u003c/code\u003e\u003c/a\u003e Fix changelog before the release (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4831\"\u003e#4831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/382fa46621953a80a6659bc4fb0a8266c4c982fc\"\u003e\u003ccode\u003e382fa46\u003c/code\u003e\u003c/a\u003e Mark events API/SDK as deprecated (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4654\"\u003e#4654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/5307dd0a6cabea2877a67e067cf81be5285d586b\"\u003e\u003ccode\u003e5307dd0\u003c/code\u003e\u003c/a\u003e Fix errors on serialization of values that are not AnyValue in LogRecord attr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/8615ba0a0bc675d6ccad6693c637f009fec727eb\"\u003e\u003ccode\u003e8615ba0\u003c/code\u003e\u003c/a\u003e Fix type checking for built in metric exporters (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4820\"\u003e#4820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/62da90eda4b1348730180ce2fa0aeae72e09c7ed\"\u003e\u003ccode\u003e62da90e\u003c/code\u003e\u003c/a\u003e Add lmolkova to approvers (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4812\"\u003e#4812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/61bda605d71498b15a13a106ed7564eaea9f642b\"\u003e\u003ccode\u003e61bda60\u003c/code\u003e\u003c/a\u003e Fix meeting and typos (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4817\"\u003e#4817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/commit/546e47b0001b40ca777515325953106e81ed8dbd\"\u003e\u003ccode\u003e546e47b\u003c/code\u003e\u003c/a\u003e [logs-api/sdk] Rename several classes from Log to LogRecord (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python/issues/4647\"\u003e#4647\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python/compare/v1.30.0...v1.39.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phonenumbers` from 9.0.21 to 9.0.26\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/07e2c75b1dc1d94c806755e4842410e19cd1e17e\"\u003e\u003ccode\u003e07e2c75\u003c/code\u003e\u003c/a\u003e Prep for 9.0.26 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/55522da42bff8bd7eefd08b17c978971bc60e135\"\u003e\u003ccode\u003e55522da\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/8ca762b2309a1df12f2eadf601ce413bf3cd1826\"\u003e\u003ccode\u003e8ca762b\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.26\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/c4d8bac7ec270537b05834520c8cee08dedf2743\"\u003e\u003ccode\u003ec4d8bac\u003c/code\u003e\u003c/a\u003e Prep for 9.0.25 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/17db64648ac55e3e519716bb9d2cdf568737b102\"\u003e\u003ccode\u003e17db646\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/d08f6b4b541f7b5811469ad883db1daf620e259b\"\u003e\u003ccode\u003ed08f6b4\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/69451b21e20b240e715d63c20353c2ad13ffee82\"\u003e\u003ccode\u003e69451b2\u003c/code\u003e\u003c/a\u003e Prep for 9.0.24 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/f59bdd69ee750f680250cce67f82c824f648c734\"\u003e\u003ccode\u003ef59bdd6\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/3ceb9f5fec321768c5d940d9cdc41672a4236301\"\u003e\u003ccode\u003e3ceb9f5\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.24\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/d439fae6fdeee53fab86534737be8eb8deff7371\"\u003e\u003ccode\u003ed439fae\u003c/code\u003e\u003c/a\u003e tools: add cd - to instructions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.21...v9.0.26\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.10.1 to 2.12.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.12.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd typing_extensions dependency for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/jpadilla\"\u003e\u003ccode\u003e@​jpadilla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1151\"\u003ejpadilla/pyjwt#1151\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.12.0\u003c/h2\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. by \u003ca href=\"https://github.com/dmbs335\"\u003e\u003ccode\u003e@​dmbs335\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-752w-5fwx-jx9f\"\u003eGHSA-752w-5fwx-jx9f\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1132\"\u003ejpadilla/pyjwt#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(docs): fix docs build by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1137\"\u003ejpadilla/pyjwt#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAnnotate PyJWKSet.keys for pyright by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1134\"\u003ejpadilla/pyjwt#1134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: close HTTPError to prevent ResourceWarning on Python 3.14 by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1133\"\u003ejpadilla/pyjwt#1133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove superfluous constants by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1136\"\u003ejpadilla/pyjwt#1136\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1135\"\u003ejpadilla/pyjwt#1135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(tests): enable mypy by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1138\"\u003ejpadilla/pyjwt#1138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 7 to 8 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/jpadilla/pyjwt/pull/1142\"\u003ejpadilla/pyjwt#1142\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1141\"\u003ejpadilla/pyjwt#1141\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1145\"\u003ejpadilla/pyjwt#1145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: do not store reference to algorithms dict on PyJWK by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1143\"\u003ejpadilla/pyjwt#1143\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse PyJWK algorithm when encoding without explicit algorithm by \u003ca href=\"https://github.com/jpadilla\"\u003e\u003ccode\u003e@​jpadilla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1148\"\u003ejpadilla/pyjwt#1148\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/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1137\"\u003ejpadilla/pyjwt#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1133\"\u003ejpadilla/pyjwt#1133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed type error in comment by \u003ca href=\"https://github.com/shuhaib-aot\"\u003e\u003ccode\u003e@​shuhaib-aot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1026\"\u003ejpadilla/pyjwt#1026\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1018\"\u003ejpadilla/pyjwt#1018\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1033\"\u003ejpadilla/pyjwt#1033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake note of use of leeway with nbf by \u003ca href=\"https://github.com/djw8605\"\u003e\u003ccode\u003e@​djw8605\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1034\"\u003ejpadilla/pyjwt#1034\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1035\"\u003ejpadilla/pyjwt#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/964\"\u003e#964\u003c/a\u003e: Validate key against allowed types for Algorithm family by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/985\"\u003ejpadilla/pyjwt#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1024\"\u003e#1024\u003c/a\u003e: Add iterator for PyJWKSet by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1041\"\u003ejpadilla/pyjwt#1041\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1039\"\u003e#1039\u003c/a\u003e: Add iss, issuer type checks by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1040\"\u003ejpadilla/pyjwt#1040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/660\"\u003e#660\u003c/a\u003e: Improve typing/logic for \u003ccode\u003eoptions\u003c/code\u003e in decode, decode_complete; Improve docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1045\"\u003ejpadilla/pyjwt#1045\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1042\"\u003ejpadilla/pyjwt#1042\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1052\"\u003ejpadilla/pyjwt#1052\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1053\"\u003ejpadilla/pyjwt#1053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1022\"\u003e#1022\u003c/a\u003e: Map \u003ccode\u003ealgorithm=None\u003c/code\u003e to \u0026quot;none\u0026quot; by \u003ca href=\"https://github.com/qqii\"\u003e\u003ccode\u003e@​qqii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1056\"\u003ejpadilla/pyjwt#1056\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1055\"\u003ejpadilla/pyjwt#1055\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1058\"\u003ejpadilla/pyjwt#1058\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1060\"\u003ejpadilla/pyjwt#1060\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1061\"\u003ejpadilla/pyjwt#1061\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/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.12.1 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Add missing ``typing_extensions`` dependency for Python \u0026lt; 3.11 in `[#1150](https://github.com/jpadilla/pyjwt/issues/1150) \u0026lt;https://github.com/jpadilla/pyjwt/issues/1150\u0026gt;`__\n\u003ch2\u003e\u003ccode\u003ev2.12.0 \u0026amp;lt;https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\u0026amp;gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAnnotate PyJWKSet.keys for pyright by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1134](https://github.com/jpadilla/pyjwt/issues/1134) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1134\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eClose \u003ccode\u003eHTTPError\u003c/code\u003e response to prevent \u003ccode\u003eResourceWarning\u003c/code\u003e on Python 3.14 by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1133](https://github.com/jpadilla/pyjwt/issues/1133) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1133\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDo not keep \u003ccode\u003ealgorithms\u003c/code\u003e dict in PyJWK instances by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1143](https://github.com/jpadilla/pyjwt/issues/1143) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1143\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eValidate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. by \u003ca href=\"https://github.com/dmbs335\"\u003e\u003ccode\u003e@​dmbs335\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003eGHSA-752w-5fwx-jx9f \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-752w-5fwx-jx9f\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eUse PyJWK algorithm when encoding without explicit algorithm in \u003ccode\u003e[#1148](https://github.com/jpadilla/pyjwt/issues/1148) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1148\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAdded\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Docs: Add ``PyJWKClient`` API reference and document the two-tier caching system (JWK Set cache and signing key LRU cache).\n\u003ch2\u003e\u003ccode\u003ev2.11.0 \u0026amp;lt;https://github.com/jpadilla/pyjwt/compare/2.10.1...2.11.0\u0026amp;gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnforce ECDSA curve validation per RFC 7518 Section 3.4.\u003c/li\u003e\n\u003cli\u003eFix build system warnings by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1105](https://github.com/jpadilla/pyjwt/issues/1105) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1105\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eValidate key against allowed types for Algorithm family in \u003ccode\u003e[#964](https://github.com/jpadilla/pyjwt/issues/964) \u0026lt;https://github.com/jpadilla/pyjwt/pull/964\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eAdd iterator for JWKSet in \u003ccode\u003e[#1041](https://github.com/jpadilla/pyjwt/issues/1041) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1041\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eValidate \u003ccode\u003eiss\u003c/code\u003e claim is a string during encoding and decoding by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1040](https://github.com/jpadilla/pyjwt/issues/1040) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1040\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eImprove typing/logic for \u003ccode\u003eoptions\u003c/code\u003e in decode, decode_complete by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1045](https://github.com/jpadilla/pyjwt/issues/1045) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1045\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDeclare float supported type for lifespan and timeout by \u003ca href=\"https://github.com/nikitagashkov\"\u003e\u003ccode\u003e@​nikitagashkov\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1068](https://github.com/jpadilla/pyjwt/issues/1068) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1068\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eSyntaxWarning\u003c/code\u003e\\s/\u003ccode\u003eDeprecationWarning\u003c/code\u003e\\s caused by invalid escape sequences by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1103](https://github.com/jpadilla/pyjwt/issues/1103) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1103\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Build a shared wheel once to speed up test suite setup times by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1114](https://github.com/jpadilla/pyjwt/issues/1114) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1114\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Test type annotations across all supported Python versions,\nincrease the strictness of the type checking, and remove the mypy pre-commit hook\nby \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1112](https://github.com/jpadilla/pyjwt/issues/1112) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1112\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAdded\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Support Python 3.14, and test against PyPy 3.10 and 3.11 by @kurtmckee in `[#1104](https://github.com/jpadilla/pyjwt/issues/1104) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1104\u0026gt;`__\n- Development: Migrate to ``build`` to test package building in CI by @kurtmckee in `[#1108](https://github.com/jpadilla/pyjwt/issues/1108) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1108\u0026gt;`__\n- Development: Improve coverage config and eliminate unused test suite code by @kurtmckee in `[#1115](https://github.com/jpadilla/pyjwt/issues/1115) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1115\u0026gt;`__\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/jpadilla/pyjwt/commit/a4e1a3d1218b01c5806420b8f16d9308ac4adc30\"\u003e\u003ccode\u003ea4e1a3d\u003c/code\u003e\u003c/a\u003e Add typing_extensions dependency for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/bd9700cca7f9258fadcc429c1034e508025931f2\"\u003e\u003ccode\u003ebd9700c\u003c/code\u003e\u003c/a\u003e Use PyJWK algorithm when encoding without explicit algorithm (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1148\"\u003e#1148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/051ea341b5573fe3edcd53042f347929b92c2b92\"\u003e\u003ccode\u003e051ea34\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/1451d70eca2059bc472703692f0bb0777bc0fe93\"\u003e\u003ccode\u003e1451d70\u003c/code\u003e\u003c/a\u003e fix: do not store reference to algorithms dict on PyJWK (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1143\"\u003e#1143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/f3ba74c106df9ce10e272dfaad96acb4ab3ef5a5\"\u003e\u003ccode\u003ef3ba74c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1145\"\u003e#1145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/0318ffa7b156b01600376e38952bf961382e0724\"\u003e\u003ccode\u003e0318ffa\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1141\"\u003e#1141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/a52753db3c1075ac01337fa8b7cc92b13a19ac09\"\u003e\u003ccode\u003ea52753d\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7 to 8 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1142\"\u003e#1142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/b85050f1d444c6828bb4618ee764443b0a3f5d18\"\u003e\u003ccode\u003eb85050f\u003c/code\u003e\u003c/a\u003e chore(tests): enable mypy (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1138\"\u003e#1138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/1272b264779717cc481c8341f321a7fc8b3aaba6\"\u003e\u003ccode\u003e1272b26\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1135\"\u003e#1135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/99a87287c26cb97c94399084ee4186ee52207a7f\"\u003e\u003ccode\u003e99a8728\u003c/code\u003e\u003c/a\u003e chore: remove superfluous constants (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1136\"\u003e#1136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.10.1...2.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `regex` from 2024.11.6 to 2025.11.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt\"\u003eregex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReplaced atomic operations with mutex on pattern object for free-threaded Python.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.26\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ePR [#598](https://github.com/mrabarnett/mrab-regex/issues/598): Fix race condition in storage caching with atomic operations.\n\u003cp\u003eReplaced use of PyUnicode_GET_LENGTH with PyUnicode_GetLength.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.2.19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eAdded \\z as alias of \\Z, like in re module.\n\u003cp\u003eAdded prefixmatch as alias of match, like in re module.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.1.15\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eRe-uploaded.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.1.14\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eGit issue 596: Specifying {e\u0026lt;=0} causes ca 210× slow-down.\n\u003cp\u003eAdded RISC-V wheels.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2025.11.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eGit issue 594: Support relative PARNO in recursive subpatterns.\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/b01d6e7349f1f754f9576e85aa19575acff0c839\"\u003e\u003ccode\u003eb01d6e7\u003c/code\u003e\u003c/a\u003e Git issue 594: Support relative PARNO in recursive subpatterns\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/dd256cd36e6d7da215bb82be8e9b6e846e1140e5\"\u003e\u003ccode\u003edd256cd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/mrabarnett/mrab-regex/issues/591\"\u003e#591\u003c/a\u003e from foosel/ci-tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/26454da3a67572197648032fe5e7f9a288fa4a0f\"\u003e\u003ccode\u003e26454da\u003c/code\u003e\u003c/a\u003e 'setup.py' was missing from the source distribution.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/1b2ca8c31d8d256f398576ddd3b8c27033d72a63\"\u003e\u003ccode\u003e1b2ca8c\u003c/code\u003e\u003c/a\u003e ci: run tests against sdist\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/609733abe4d957b02406eeec59240850b03ff34d\"\u003e\u003ccode\u003e609733a\u003c/code\u003e\u003c/a\u003e ci: only release if the tests are green\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/fa08ff1ed46ffeb7e618a7def415ddf89d888112\"\u003e\u003ccode\u003efa08ff1\u003c/code\u003e\u003c/a\u003e ci: make sure to always run tests against full matrix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/f2d31b0844789ec19123aa1b5eb19e070018a981\"\u003e\u003ccode\u003ef2d31b0\u003c/code\u003e\u003c/a\u003e Fixed test in main.yml.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2fd4dc061617b317d0f760f93756a6ae742f055f\"\u003e\u003ccode\u003e2fd4dc0\u003c/code\u003e\u003c/a\u003e Moved tests into subfolder.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/54fa96c29247056b1e9a76eab9dafd929587bbfc\"\u003e\u003ccode\u003e54fa96c\u003c/code\u003e\u003c/a\u003e Re-organised files.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/4359a6a565e6725a899a4e1179c75fdad09030ae\"\u003e\u003ccode\u003e4359a6a\u003c/code\u003e\u003c/a\u003e Enable free-threading support in cibuildwheel in another place.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2024.11.6...2025.11.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.5 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca ...\n\n_Description has been truncated_","html_url":"https://github.com/d3rky/mpt-extension-sdk/pull/14","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3rky%2Fmpt-extension-sdk/issues/14","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/14/packages"}},{"old_version":"9.0.25","new_version":"9.0.26","update_type":"patch","path":null,"pr_created_at":"2026-03-30T01:30:56.000Z","version_change":"9.0.25 → 9.0.26","issue":{"uuid":"4166387371","node_id":"PR_kwDOQ-6P2s7Oc7QS","number":249,"state":"open","title":"chore(deps): bump the minor-and-patch group across 1 directory with 2 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-30T01:30:56.000Z","updated_at":"2026-03-30T01:30:56.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"minor-and-patch","update_count":2,"packages":[{"name":"pyjwt","old_version":"2.11.0","new_version":"2.12.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"phonenumbers","old_version":"9.0.25","new_version":"9.0.26","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-and-patch group with 2 updates in the /backend directory: [pyjwt](https://github.com/jpadilla/pyjwt) and [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers).\n\nUpdates `pyjwt` from 2.11.0 to 2.12.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.12.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd typing_extensions dependency for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/jpadilla\"\u003e\u003ccode\u003e@​jpadilla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1151\"\u003ejpadilla/pyjwt#1151\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.12.0\u003c/h2\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. by \u003ca href=\"https://github.com/dmbs335\"\u003e\u003ccode\u003e@​dmbs335\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-752w-5fwx-jx9f\"\u003eGHSA-752w-5fwx-jx9f\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1132\"\u003ejpadilla/pyjwt#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(docs): fix docs build by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1137\"\u003ejpadilla/pyjwt#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAnnotate PyJWKSet.keys for pyright by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1134\"\u003ejpadilla/pyjwt#1134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: close HTTPError to prevent ResourceWarning on Python 3.14 by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1133\"\u003ejpadilla/pyjwt#1133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove superfluous constants by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1136\"\u003ejpadilla/pyjwt#1136\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1135\"\u003ejpadilla/pyjwt#1135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(tests): enable mypy by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1138\"\u003ejpadilla/pyjwt#1138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 7 to 8 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/jpadilla/pyjwt/pull/1142\"\u003ejpadilla/pyjwt#1142\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1141\"\u003ejpadilla/pyjwt#1141\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1145\"\u003ejpadilla/pyjwt#1145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: do not store reference to algorithms dict on PyJWK by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1143\"\u003ejpadilla/pyjwt#1143\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse PyJWK algorithm when encoding without explicit algorithm by \u003ca href=\"https://github.com/jpadilla\"\u003e\u003ccode\u003e@​jpadilla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1148\"\u003ejpadilla/pyjwt#1148\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/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1137\"\u003ejpadilla/pyjwt#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1133\"\u003ejpadilla/pyjwt#1133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.12.1 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Add missing ``typing_extensions`` dependency for Python \u0026lt; 3.11 in `[#1150](https://github.com/jpadilla/pyjwt/issues/1150) \u0026lt;https://github.com/jpadilla/pyjwt/issues/1150\u0026gt;`__\n\u003ch2\u003e\u003ccode\u003ev2.12.0 \u0026amp;lt;https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\u0026amp;gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAnnotate PyJWKSet.keys for pyright by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1134](https://github.com/jpadilla/pyjwt/issues/1134) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1134\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eClose \u003ccode\u003eHTTPError\u003c/code\u003e response to prevent \u003ccode\u003eResourceWarning\u003c/code\u003e on Python 3.14 by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1133](https://github.com/jpadilla/pyjwt/issues/1133) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1133\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDo not keep \u003ccode\u003ealgorithms\u003c/code\u003e dict in PyJWK instances by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1143](https://github.com/jpadilla/pyjwt/issues/1143) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1143\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eValidate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. by \u003ca href=\"https://github.com/dmbs335\"\u003e\u003ccode\u003e@​dmbs335\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003eGHSA-752w-5fwx-jx9f \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-752w-5fwx-jx9f\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eUse PyJWK algorithm when encoding without explicit algorithm in \u003ccode\u003e[#1148](https://github.com/jpadilla/pyjwt/issues/1148) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1148\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAdded\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Docs: Add ``PyJWKClient`` API reference and document the two-tier caching system (JWK Set cache and signing key LRU cache).\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/a4e1a3d1218b01c5806420b8f16d9308ac4adc30\"\u003e\u003ccode\u003ea4e1a3d\u003c/code\u003e\u003c/a\u003e Add typing_extensions dependency for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/bd9700cca7f9258fadcc429c1034e508025931f2\"\u003e\u003ccode\u003ebd9700c\u003c/code\u003e\u003c/a\u003e Use PyJWK algorithm when encoding without explicit algorithm (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1148\"\u003e#1148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/051ea341b5573fe3edcd53042f347929b92c2b92\"\u003e\u003ccode\u003e051ea34\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/1451d70eca2059bc472703692f0bb0777bc0fe93\"\u003e\u003ccode\u003e1451d70\u003c/code\u003e\u003c/a\u003e fix: do not store reference to algorithms dict on PyJWK (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1143\"\u003e#1143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/f3ba74c106df9ce10e272dfaad96acb4ab3ef5a5\"\u003e\u003ccode\u003ef3ba74c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1145\"\u003e#1145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/0318ffa7b156b01600376e38952bf961382e0724\"\u003e\u003ccode\u003e0318ffa\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1141\"\u003e#1141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/a52753db3c1075ac01337fa8b7cc92b13a19ac09\"\u003e\u003ccode\u003ea52753d\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7 to 8 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1142\"\u003e#1142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/b85050f1d444c6828bb4618ee764443b0a3f5d18\"\u003e\u003ccode\u003eb85050f\u003c/code\u003e\u003c/a\u003e chore(tests): enable mypy (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1138\"\u003e#1138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/1272b264779717cc481c8341f321a7fc8b3aaba6\"\u003e\u003ccode\u003e1272b26\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1135\"\u003e#1135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/99a87287c26cb97c94399084ee4186ee52207a7f\"\u003e\u003ccode\u003e99a8728\u003c/code\u003e\u003c/a\u003e chore: remove superfluous constants (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1136\"\u003e#1136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phonenumbers` from 9.0.25 to 9.0.26\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/07e2c75b1dc1d94c806755e4842410e19cd1e17e\"\u003e\u003ccode\u003e07e2c75\u003c/code\u003e\u003c/a\u003e Prep for 9.0.26 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/55522da42bff8bd7eefd08b17c978971bc60e135\"\u003e\u003ccode\u003e55522da\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/8ca762b2309a1df12f2eadf601ce413bf3cd1826\"\u003e\u003ccode\u003e8ca762b\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.26\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.25...v9.0.26\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/lcacchiani/siutindei/pull/249","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/lcacchiani%2Fsiutindei/issues/249","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/249/packages"}},{"old_version":"9.0.25","new_version":"9.0.26","update_type":"patch","path":null,"pr_created_at":"2026-03-28T04:05:54.000Z","version_change":"9.0.25 → 9.0.26","issue":{"uuid":"4157370711","node_id":"PR_kwDORnH83s7ON3L8","number":7,"state":"open","title":"chore(deps): bump the minor-and-patches group across 1 directory with 5 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":9,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-28T04:05:54.000Z","updated_at":"2026-05-30T09:32:10.381Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"minor-and-patches","update_count":5,"packages":[{"name":"ruff","old_version":"0.14.6","new_version":"0.15.6","repository_url":"https://github.com/astral-sh/ruff"},{"name":"phonenumbers","old_version":"9.0.25","new_version":"9.0.26","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"},{"name":"pysaml2","old_version":"7.5.0","new_version":"7.5.4","repository_url":"https://github.com/IdentityPython/pysaml2"},{"name":"tornado","old_version":"6.5.4","new_version":"6.5.5","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"pympler","old_version":"1.0.1","new_version":"1.1","repository_url":"https://github.com/pympler/pympler"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-and-patches group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.6` | `0.15.6` |\n| [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) | `9.0.25` | `9.0.26` |\n| [pysaml2](https://github.com/IdentityPython/pysaml2) | `7.5.0` | `7.5.4` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.5.4` | `6.5.5` |\n| [pympler](https://github.com/pympler/pympler) | `1.0.1` | `1.1` |\n\n\nUpdates `ruff` from 0.14.6 to 0.15.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.6\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-12.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for \u003ccode\u003elazy\u003c/code\u003e import parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23755\"\u003e#23755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for star-unpacking of comprehensions (PEP 798) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23788\"\u003e#23788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject semantic syntax errors for lazy imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23757\"\u003e#23757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop a few rules from the preview default set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23879\"\u003e#23879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Flag \u003ccode\u003eVariable.get()\u003c/code\u003e calls outside of task execution context (\u003ccode\u003eAIR003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23584\"\u003e#23584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Flag runtime-varying values in DAG/task constructor arguments (\u003ccode\u003eAIR304\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23631\"\u003e#23631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003edelattr-with-constant\u003c/code\u003e (\u003ccode\u003eB043\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23737\"\u003e#23737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Add \u003ccode\u003eTID254\u003c/code\u003e to enforce lazy imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23777\"\u003e#23777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Allow users to ban lazy imports with \u003ccode\u003eTID254\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23847\"\u003e#23847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Retain \u003ccode\u003elazy\u003c/code\u003e keyword when sorting imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23762\"\u003e#23762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Add \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e automatically (\u003ccode\u003eUP006\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23260\"\u003e#23260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Support \u003ccode\u003enewline\u003c/code\u003e parameter in \u003ccode\u003eFURB101\u003c/code\u003e for Python 3.13+ (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23754\"\u003e#23754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eos-path-commonprefix\u003c/code\u003e (\u003ccode\u003eRUF071\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23814\"\u003e#23814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add unsafe fix for os-path-commonprefix (\u003ccode\u003eRUF071\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23852\"\u003e#23852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Limit \u003ccode\u003eRUF036\u003c/code\u003e to typing contexts; make it unsafe for non-typing-only (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23765\"\u003e#23765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Use starred unpacking for \u003ccode\u003eRUF017\u003c/code\u003e in Python 3.15+ (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23789\"\u003e#23789\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--add-noqa\u003c/code\u003e creating unwanted leading whitespace (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23773\"\u003e#23773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e--add-noqa\u003c/code\u003e breaking shebangs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23577\"\u003e#23577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Fix lambda body formatting for multiline calls and subscripts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23866\"\u003e#23866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Preserve required annotation parentheses in annotated assignments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23865\"\u003e#23865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Preserve type-expression parentheses in the formatter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23867\"\u003e#23867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-annotations\u003c/code\u003e] Fix stack overflow in \u003ccode\u003eANN401\u003c/code\u003e on quoted annotations with escape sequences (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23912\"\u003e#23912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epep8-naming\u003c/code\u003e] Check naming conventions in \u003ccode\u003ematch\u003c/code\u003e pattern bindings (\u003ccode\u003eN806\u003c/code\u003e, \u003ccode\u003eN815\u003c/code\u003e, \u003ccode\u003eN816\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23899\"\u003e#23899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Fix comment duplication in fixes (\u003ccode\u003ePERF401\u003c/code\u003e, \u003ccode\u003ePERF403\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23729\"\u003e#23729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Properly trigger \u003ccode\u003esuper\u003c/code\u003e change in nested class (\u003ccode\u003eUP008\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22677\"\u003e#22677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Avoid syntax errors in \u003ccode\u003eRUF036\u003c/code\u003e fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23764\"\u003e#23764\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Flag \u003ccode\u003eS501\u003c/code\u003e with \u003ccode\u003erequests.request\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23873\"\u003e#23873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-executable\u003c/code\u003e] Fix WSL detection in non-Docker containers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22879\"\u003e#22879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-print\u003c/code\u003e] Ignore \u003ccode\u003epprint\u003c/code\u003e calls with \u003ccode\u003estream=\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23787\"\u003e#23787\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate docs for Markdown code block formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23871\"\u003e#23871\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix misleading description for \u003ccode\u003eB904\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23731\"\u003e#23731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\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/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.6\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-12.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for \u003ccode\u003elazy\u003c/code\u003e import parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23755\"\u003e#23755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for star-unpacking of comprehensions (PEP 798) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23788\"\u003e#23788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject semantic syntax errors for lazy imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23757\"\u003e#23757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop a few rules from the preview default set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23879\"\u003e#23879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Flag \u003ccode\u003eVariable.get()\u003c/code\u003e calls outside of task execution context (\u003ccode\u003eAIR003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23584\"\u003e#23584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Flag runtime-varying values in DAG/task constructor arguments (\u003ccode\u003eAIR304\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23631\"\u003e#23631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003edelattr-with-constant\u003c/code\u003e (\u003ccode\u003eB043\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23737\"\u003e#23737\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Add \u003ccode\u003eTID254\u003c/code\u003e to enforce lazy imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23777\"\u003e#23777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-tidy-imports\u003c/code\u003e] Allow users to ban lazy imports with \u003ccode\u003eTID254\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23847\"\u003e#23847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eisort\u003c/code\u003e] Retain \u003ccode\u003elazy\u003c/code\u003e keyword when sorting imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23762\"\u003e#23762\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Add \u003ccode\u003efrom __future__ import annotations\u003c/code\u003e automatically (\u003ccode\u003eUP006\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23260\"\u003e#23260\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Support \u003ccode\u003enewline\u003c/code\u003e parameter in \u003ccode\u003eFURB101\u003c/code\u003e for Python 3.13+ (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23754\"\u003e#23754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add \u003ccode\u003eos-path-commonprefix\u003c/code\u003e (\u003ccode\u003eRUF071\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23814\"\u003e#23814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add unsafe fix for os-path-commonprefix (\u003ccode\u003eRUF071\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23852\"\u003e#23852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Limit \u003ccode\u003eRUF036\u003c/code\u003e to typing contexts; make it unsafe for non-typing-only (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23765\"\u003e#23765\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Use starred unpacking for \u003ccode\u003eRUF017\u003c/code\u003e in Python 3.15+ (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23789\"\u003e#23789\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003e--add-noqa\u003c/code\u003e creating unwanted leading whitespace (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23773\"\u003e#23773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e--add-noqa\u003c/code\u003e breaking shebangs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23577\"\u003e#23577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Fix lambda body formatting for multiline calls and subscripts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23866\"\u003e#23866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Preserve required annotation parentheses in annotated assignments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23865\"\u003e#23865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[formatter] Preserve type-expression parentheses in the formatter (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23867\"\u003e#23867\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-annotations\u003c/code\u003e] Fix stack overflow in \u003ccode\u003eANN401\u003c/code\u003e on quoted annotations with escape sequences (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23912\"\u003e#23912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epep8-naming\u003c/code\u003e] Check naming conventions in \u003ccode\u003ematch\u003c/code\u003e pattern bindings (\u003ccode\u003eN806\u003c/code\u003e, \u003ccode\u003eN815\u003c/code\u003e, \u003ccode\u003eN816\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23899\"\u003e#23899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Fix comment duplication in fixes (\u003ccode\u003ePERF401\u003c/code\u003e, \u003ccode\u003ePERF403\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23729\"\u003e#23729\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Properly trigger \u003ccode\u003esuper\u003c/code\u003e change in nested class (\u003ccode\u003eUP008\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22677\"\u003e#22677\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Avoid syntax errors in \u003ccode\u003eRUF036\u003c/code\u003e fixes (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23764\"\u003e#23764\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Flag \u003ccode\u003eS501\u003c/code\u003e with \u003ccode\u003erequests.request\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23873\"\u003e#23873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-executable\u003c/code\u003e] Fix WSL detection in non-Docker containers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22879\"\u003e#22879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-print\u003c/code\u003e] Ignore \u003ccode\u003epprint\u003c/code\u003e calls with \u003ccode\u003estream=\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23787\"\u003e#23787\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate docs for Markdown code block formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23871\"\u003e#23871\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Fix misleading description for \u003ccode\u003eB904\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23731\"\u003e#23731\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/zsol\"\u003e\u003ccode\u003e@​zsol\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/e4c7f357777a2fdd34dbe6a98b1b7d3e7488f675\"\u003e\u003ccode\u003ee4c7f35\u003c/code\u003e\u003c/a\u003e Bump 0.15.6 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23919\"\u003e#23919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/edfe6c17a493669227da45ce7edc786208d9d0b0\"\u003e\u003ccode\u003eedfe6c1\u003c/code\u003e\u003c/a\u003e [ty] Narrow type context during collection literal inference (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23844\"\u003e#23844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/dd16d689abd9d0fa1caf4316e70479fd422b6142\"\u003e\u003ccode\u003edd16d68\u003c/code\u003e\u003c/a\u003e Exclude broken symlink in ecosystem check (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23921\"\u003e#23921\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/3f94c6ac6397cdc3160459d9d6e3892e3f3242dd\"\u003e\u003ccode\u003e3f94c6a\u003c/code\u003e\u003c/a\u003e Fix stack overflow in ANN401 on quoted annotations with escape sequences (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23\"\u003e#23\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/91fc7bd3f936974d7107ba8fd0668bc251a55c58\"\u003e\u003ccode\u003e91fc7bd\u003c/code\u003e\u003c/a\u003e [ty] Fix false-positive diagnostics for PEP-604 union annotations on attribut...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/04229cffb44dfe8c64a0879eb3cea472a08d1565\"\u003e\u003ccode\u003e04229cf\u003c/code\u003e\u003c/a\u003e [ty] Initial test suite for PEP-728 \u003ccode\u003eTypedDict\u003c/code\u003e features (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23832\"\u003e#23832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/728b9d6fd300d492fc2572bcfade170141296f97\"\u003e\u003ccode\u003e728b9d6\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epep8-naming\u003c/code\u003e] Check naming conventions in \u003ccode\u003ematch\u003c/code\u003e pattern bindings (\u003ccode\u003eN806\u003c/code\u003e,...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/88d1eecd261679fc9d1d10f30d814230a7f28513\"\u003e\u003ccode\u003e88d1eec\u003c/code\u003e\u003c/a\u003e [ty] Ensure a \u003ccode\u003etype[]\u003c/code\u003e type \u003ccode\u003eT\u003c/code\u003e is always considered assignable to a union th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/37cdd61406ad4965847c9baa7c3f6ca633887d68\"\u003e\u003ccode\u003e37cdd61\u003c/code\u003e\u003c/a\u003e Fix lambda body formatting for multiline calls and subscripts (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23866\"\u003e#23866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a25a4df54aca67d23b4867ddad634fe0768fd6a2\"\u003e\u003ccode\u003ea25a4df\u003c/code\u003e\u003c/a\u003e [ty] Disambiguate duplicate-looking overloaded callables in union display (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.6...0.15.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phonenumbers` from 9.0.25 to 9.0.26\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/07e2c75b1dc1d94c806755e4842410e19cd1e17e\"\u003e\u003ccode\u003e07e2c75\u003c/code\u003e\u003c/a\u003e Prep for 9.0.26 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/55522da42bff8bd7eefd08b17c978971bc60e135\"\u003e\u003ccode\u003e55522da\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/8ca762b2309a1df12f2eadf601ce413bf3cd1826\"\u003e\u003ccode\u003e8ca762b\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.26\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.25...v9.0.26\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pysaml2` from 7.5.0 to 7.5.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/IdentityPython/pysaml2/releases\"\u003epysaml2's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion v7.5.4\u003c/h2\u003e\n\u003ch2\u003ev7.5.4 (2025-10-07)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMinor refactor to handle \u003ccode\u003eshelve.open\u003c/code\u003e and \u003ccode\u003edbm\u003c/code\u003e errors\u003c/li\u003e\n\u003cli\u003eRemove import of deprecated \u003ccode\u003ecgi\u003c/code\u003e module\u003c/li\u003e\n\u003cli\u003eReplace deprecated \u003ccode\u003edatetime.utcnow()\u003c/code\u003e by \u003ccode\u003edatetime.now(timezone.utc)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003edeps: Remove the \u003ccode\u003eimportlib_metadata\u003c/code\u003e dependency\u003c/li\u003e\n\u003cli\u003edeps: Remove the \u003ccode\u003eimportlib_resources\u003c/code\u003e dependency\u003c/li\u003e\n\u003cli\u003edeps: Update dependency versions and lockfile\u003c/li\u003e\n\u003cli\u003ebuild: Update pyproject and lockfile to be compatible with PEP 621\u003c/li\u003e\n\u003cli\u003edocs: Correct spelling mistakes\u003c/li\u003e\n\u003cli\u003edocs: Fix interal references/links\u003c/li\u003e\n\u003cli\u003edocs: Clarify units for accepted_time_diff config param\u003c/li\u003e\n\u003cli\u003edocs: Correct documentation for contact_person\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 7.5.3\u003c/h2\u003e\n\u003ch2\u003e7.5.3 (2025-10-04)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/IdentityPython/pysaml2/issues/973\"\u003e#973\u003c/a\u003e Fix prepare_for_negotiated_authenticate to avoid double signing redirect requests\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 7.5.2\u003c/h2\u003e\n\u003ch2\u003e7.5.2 (2025-02-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInclude the XSD of the XML Encryption Syntax and Processing Version 1.1 to the schema validator\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 7.5.1\u003c/h2\u003e\n\u003ch2\u003e7.5.1 (2025-02-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edeps: restrict pyOpenSSL up to v24.2.1 until it is replaced\u003c/li\u003e\n\u003cli\u003edeps: update dependncies for the lockfile and examples\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/IdentityPython/pysaml2/blob/master/CHANGELOG.md\"\u003epysaml2's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev7.5.4 (2025-10-07)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMinor refactor to handle \u003ccode\u003eshelve.open\u003c/code\u003e and \u003ccode\u003edbm\u003c/code\u003e errors\u003c/li\u003e\n\u003cli\u003eRemove import of deprecated \u003ccode\u003ecgi\u003c/code\u003e module\u003c/li\u003e\n\u003cli\u003eReplace deprecated \u003ccode\u003edatetime.utcnow()\u003c/code\u003e by \u003ccode\u003edatetime.now(timezone.utc)\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003edeps: Remove the \u003ccode\u003eimportlib_metadata\u003c/code\u003e dependency\u003c/li\u003e\n\u003cli\u003edeps: Remove the \u003ccode\u003eimportlib_resources\u003c/code\u003e dependency\u003c/li\u003e\n\u003cli\u003edeps: Update dependency versions and lockfile\u003c/li\u003e\n\u003cli\u003ebuild: Update pyproject and lockfile to be compatible with PEP 621\u003c/li\u003e\n\u003cli\u003edocs: Correct spelling mistakes\u003c/li\u003e\n\u003cli\u003edocs: Fix interal references/links\u003c/li\u003e\n\u003cli\u003edocs: Clarify units for accepted_time_diff config param\u003c/li\u003e\n\u003cli\u003edocs: Correct documentation for contact_person\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.5.3 (2025-10-04)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/IdentityPython/pysaml2/issues/973\"\u003e#973\u003c/a\u003e Fix prepare_for_negotiated_authenticate to avoid double signing redirect requests\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.5.2 (2025-02-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInclude the XSD of the XML Encryption Syntax and Processing Version 1.1 to the schema validator\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e7.5.1 (2025-02-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edeps: restrict pyOpenSSL up to v24.2.1 until it is replaced\u003c/li\u003e\n\u003cli\u003edeps: update dependencies for the lockfile and examples\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/IdentityPython/pysaml2/commit/9cf71f7f9e37e2bfa10d885ffe6252743b84bfb8\"\u003e\u003ccode\u003e9cf71f7\u003c/code\u003e\u003c/a\u003e Release version 7.5.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IdentityPython/pysaml2/commit/c3ec7199d117c2918b5e5057ee608636c12579ac\"\u003e\u003ccode\u003ec3ec719\u003c/code\u003e\u003c/a\u003e Refactor _shelve_compat\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IdentityPython/pysaml2/commit/1d6ea6024efc84486b668a9d375b8eb9d983a80a\"\u003e\u003ccode\u003e1d6ea60\u003c/code\u003e\u003c/a\u003e Remove import of deprecated cgi module\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IdentityPython/pysaml2/commit/c45eb9df8248ad983b220bb1fd2b4e8ed779a40d\"\u003e\u003ccode\u003ec45eb9d\u003c/code\u003e\u003c/a\u003e Replace deprecated datetime.utcnow() by datetime.now(timezone.utc)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IdentityPython/pysaml2/commit/178f6d12b43a52a37b59b2ed1fee308af3537082\"\u003e\u003ccode\u003e178f6d1\u003c/code\u003e\u003c/a\u003e Remove unneeded dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IdentityPython/pysaml2/commit/1f0a25a5cf122e47aaafbfd93397d095ca9005e4\"\u003e\u003ccode\u003e1f0a25a\u003c/code\u003e\u003c/a\u003e remove importlib_metadata import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IdentityPython/pysaml2/commit/099f716ae7245732dfb302a69074a331914136ff\"\u003e\u003ccode\u003e099f716\u003c/code\u003e\u003c/a\u003e remove importlib_resources imports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IdentityPython/pysaml2/commit/3fa11ee15db1a69426db3546586ac59056cc6c2c\"\u003e\u003ccode\u003e3fa11ee\u003c/code\u003e\u003c/a\u003e spelling updates.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IdentityPython/pysaml2/commit/4b7887f59a5e24650ad52d05c2285bd5dbb53a3e\"\u003e\u003ccode\u003e4b7887f\u003c/code\u003e\u003c/a\u003e update link.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/IdentityPython/pysaml2/commit/bc8d3b4ecce7753f2473100127581c895134541a\"\u003e\u003ccode\u003ebc8d3b4\u003c/code\u003e\u003c/a\u003e update link.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/IdentityPython/pysaml2/compare/v7.5.0...v7.5.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tornado` from 6.5.4 to 6.5.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tornadoweb/tornado/blob/master/docs/releases.rst\"\u003etornado's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease notes\u003c/h1\u003e\n\u003cp\u003e.. toctree::\n:maxdepth: 2\u003c/p\u003e\n\u003cp\u003ereleases/v6.5.5\nreleases/v6.5.4\nreleases/v6.5.3\nreleases/v6.5.2\nreleases/v6.5.1\nreleases/v6.5.0\nreleases/v6.4.2\nreleases/v6.4.1\nreleases/v6.4.0\nreleases/v6.3.3\nreleases/v6.3.2\nreleases/v6.3.1\nreleases/v6.3.0\nreleases/v6.2.0\nreleases/v6.1.0\nreleases/v6.0.4\nreleases/v6.0.3\nreleases/v6.0.2\nreleases/v6.0.1\nreleases/v6.0.0\nreleases/v5.1.1\nreleases/v5.1.0\nreleases/v5.0.2\nreleases/v5.0.1\nreleases/v5.0.0\nreleases/v4.5.3\nreleases/v4.5.2\nreleases/v4.5.1\nreleases/v4.5.0\nreleases/v4.4.3\nreleases/v4.4.2\nreleases/v4.4.1\nreleases/v4.4.0\nreleases/v4.3.0\nreleases/v4.2.1\nreleases/v4.2.0\nreleases/v4.1.0\nreleases/v4.0.2\nreleases/v4.0.1\nreleases/v4.0.0\nreleases/v3.2.2\nreleases/v3.2.1\nreleases/v3.2.0\nreleases/v3.1.1\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/tornadoweb/tornado/commit/7d6465056ceb7a054b3f64cf1c18271753b10482\"\u003e\u003ccode\u003e7d64650\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3586\"\u003e#3586\u003c/a\u003e from bdarnell/update-cibw\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/d05d59b8080a0d5d6a260994c7aad7049209d345\"\u003e\u003ccode\u003ed05d59b\u003c/code\u003e\u003c/a\u003e build: Bump cibuildwheel to 3.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/c2f46732b0ad14bf0db4219c96a945f4b60205f5\"\u003e\u003ccode\u003ec2f4673\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3585\"\u003e#3585\u003c/a\u003e from bdarnell/release-655\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/e5f1aa4b6fa2c16b29024830227838fcb0c79b6f\"\u003e\u003ccode\u003ee5f1aa4\u003c/code\u003e\u003c/a\u003e Release notes and version bump for v6.5.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/78a046f99f89977dfc8ff5a1fe16d298afbeeaca\"\u003e\u003ccode\u003e78a046f\u003c/code\u003e\u003c/a\u003e httputil: Add CRLF to _FORBIDDEN_HEADER_CHARS_RE\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/24a2d96ea115f663b223887deb0060f13974c104\"\u003e\u003ccode\u003e24a2d96\u003c/code\u003e\u003c/a\u003e web: Validate characters in all cookie attributes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/119a195e290c43ad2d63a2cf012c29d43d6ed839\"\u003e\u003ccode\u003e119a195\u003c/code\u003e\u003c/a\u003e httputil: Add limits on multipart form data parsing\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tornadoweb/tornado/compare/v6.5.4...v6.5.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pympler` from 1.0.1 to 1.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pympler/pympler/blob/master/CHANGELOG.md\"\u003epympler's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.1 - 2024-06-28\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.11 and 3.12 support\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRequire pywin32 on Windows\u003c/li\u003e\n\u003cli\u003eUpdate bottle.py to 0.12.25  -- Reported by Ben Poweski, fixed by Chris Adams (\u003ca href=\"https://redirect.github.com/pympler/pympler/issues/158\"\u003e#158\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eHandle sizing of numpy.str and numpy.str_ -- Reported by Rui Xue (\u003ca href=\"https://redirect.github.com/pympler/pympler/issues/155\"\u003e#155\u003c/a\u003e), fixed by Jean Brouwers\u003c/li\u003e\n\u003cli\u003eFix sizing of multiple objects with references to each other\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/pympler/pympler/commit/25578c386cb21231a81066b5262e6101f8e16315\"\u003e\u003ccode\u003e25578c3\u003c/code\u003e\u003c/a\u003e Update version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pympler/pympler/commit/1f588bc12d9623cca86361a49c2e891a42e40abc\"\u003e\u003ccode\u003e1f588bc\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pympler/pympler/commit/c9560b421f9ec5ca447103ff9ba9a4566c348867\"\u003e\u003ccode\u003ec9560b4\u003c/code\u003e\u003c/a\u003e Update changelog and version requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pympler/pympler/commit/b674075c8de622d5f8ec3f6db2080872075e647c\"\u003e\u003ccode\u003eb674075\u003c/code\u003e\u003c/a\u003e Remove Python 3.13 support for now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pympler/pympler/commit/07c31b73f17cccff75032d03cf2976521285eb5b\"\u003e\u003ccode\u003e07c31b7\u003c/code\u003e\u003c/a\u003e Fix RefBrowser on Python 3.11+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pympler/pympler/commit/dd1fecd43c0b4fed77cd16e843bcd37ab9a525eb\"\u003e\u003ccode\u003edd1fecd\u003c/code\u003e\u003c/a\u003e Adapt the garbage collector test to Python 3.11+\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pympler/pympler/commit/11c4632318eac0e8eace8b67c1fbf24605b77ced\"\u003e\u003ccode\u003e11c4632\u003c/code\u003e\u003c/a\u003e Catch errors on numpy attribute check\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pympler/pympler/commit/3fabce2c5d46e05d3748bb224e42d9e9bd3f9576\"\u003e\u003ccode\u003e3fabce2\u003c/code\u003e\u003c/a\u003e Fix sizing of objects with references to each other\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pympler/pympler/commit/c73234d1e864069e323f0ad47d271d3b83f83244\"\u003e\u003ccode\u003ec73234d\u003c/code\u003e\u003c/a\u003e Install setuptools for all Python versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pympler/pympler/commit/c1d28bd6633d82f9974c3ae93bf6ca8a657fd9c3\"\u003e\u003ccode\u003ec1d28bd\u003c/code\u003e\u003c/a\u003e Temporarily disable build cancellations\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pympler/pympler/compare/1.0.1...1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/sisyphus1212/synapse/pull/7","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/sisyphus1212%2Fsynapse/issues/7","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7/packages"}},{"old_version":"9.0.11","new_version":"9.0.26","update_type":"patch","path":null,"pr_created_at":"2026-03-26T17:55:41.000Z","version_change":"9.0.11 → 9.0.26","issue":{"uuid":"4146150306","node_id":"PR_kwDOGfc8987Nz2FI","number":621,"state":"closed","title":"Bump the minor group across 1 directory with 11 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-18T18:44:27.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-26T17:55:41.000Z","updated_at":"2026-04-18T18:44:29.000Z","time_to_close":1990126,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor","update_count":11,"packages":[{"name":"pymongo","old_version":"4.14.0","new_version":"4.16.0","repository_url":"https://github.com/mongodb/mongo-python-driver"},{"name":"pydantic","old_version":"2.12.3","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"phonenumbers","old_version":"9.0.11","new_version":"9.0.26","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"},{"name":"mypy","old_version":"1.17.1","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"openapi-spec-validator","old_version":"0.7.2","new_version":"0.8.4","repository_url":"https://github.com/python-openapi/openapi-spec-validator"},{"name":"ruff","old_version":"0.12.9","new_version":"0.15.7","repository_url":"https://github.com/astral-sh/ruff"},{"name":"pyenchant","old_version":"3.2.2","new_version":"3.3.0","repository_url":"https://github.com/pyenchant/pyenchant"},{"name":"sphinx-autoapi","old_version":"3.6.0","new_version":"3.8.0","repository_url":"https://github.com/readthedocs/sphinx-autoapi"},{"name":"sphinxcontrib-spelling","old_version":"8.0.1","new_version":"8.0.2","repository_url":"https://github.com/sphinx-contrib/spelling"},{"name":"sphinxext-opengraph","old_version":"0.12.0","new_version":"0.13.0","repository_url":"https://github.com/sphinx-doc/sphinxext-opengraph"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor group with 11 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [pymongo](https://github.com/mongodb/mongo-python-driver) | `4.14.0` | `4.16.0` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.3` | `2.12.5` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) | `9.0.11` | `9.0.26` |\n| [mypy](https://github.com/python/mypy) | `1.17.1` | `1.19.1` |\n| [openapi-spec-validator](https://github.com/python-openapi/openapi-spec-validator) | `0.7.2` | `0.8.4` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.12.9` | `0.15.7` |\n| [pyenchant](https://github.com/pyenchant/pyenchant) | `3.2.2` | `3.3.0` |\n| [sphinx-autoapi](https://github.com/readthedocs/sphinx-autoapi) | `3.6.0` | `3.8.0` |\n| [sphinxcontrib-spelling](https://github.com/sphinx-contrib/spelling) | `8.0.1` | `8.0.2` |\n| [sphinxext-opengraph](https://github.com/sphinx-doc/sphinxext-opengraph) | `0.12.0` | `0.13.0` |\n\n\nUpdates `pymongo` from 4.14.0 to 4.16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mongodb/mongo-python-driver/releases\"\u003epymongo's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ePyMongo 4.16.0\u003c/h2\u003e\n\u003cp\u003eCommunity notes: \u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch2\u003ePyMongo 4.15.5\u003c/h2\u003e\n\u003cp\u003eCommunity notes: \u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-15-5-released/332185\"\u003ehttps://www.mongodb.com/community/forums/t/pymongo-4-15-5-released/332185\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ePyMongo 4.15.4\u003c/h2\u003e\n\u003cp\u003eCommunity notes: \u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-15-4-released/331292\"\u003ehttps://www.mongodb.com/community/forums/t/pymongo-4-15-4-released/331292\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ePyMongo 4.15.3\u003c/h2\u003e\n\u003cp\u003eCommunity notes: \u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-15-3-released/329778\"\u003ehttps://www.mongodb.com/community/forums/t/pymongo-4-15-3-released/329778\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ePyMongo 4.15.2\u003c/h2\u003e\n\u003cp\u003eCommunity notes: \u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-15-2-released/329543\"\u003ehttps://www.mongodb.com/community/forums/t/pymongo-4-15-2-released/329543\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ePyMongo 4.15.1\u003c/h2\u003e\n\u003cp\u003eCommunity notes: \u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-15-1-released/328837\"\u003ehttps://www.mongodb.com/community/forums/t/pymongo-4-15-1-released/328837\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ePyMongo 4.15.0\u003c/h2\u003e\n\u003cp\u003eCommunity notes: \u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-15-released/328574\"\u003ehttps://www.mongodb.com/community/forums/t/pymongo-4-15-released/328574\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ePyMongo 4.14.1\u003c/h2\u003e\n\u003cp\u003eCommunity notes: \u003ca href=\"https://www.mongodb.com/community/forums/t/pymongo-4-14-1-released/327511\"\u003ehttps://www.mongodb.com/community/forums/t/pymongo-4-14-1-released/327511\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/mongodb/mongo-python-driver/blob/master/doc/changelog.rst\"\u003epymongo's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChanges in Version 4.16.0 (2026/01/07)\u003c/h2\u003e\n\u003cp\u003ePyMongo 4.16 brings a number of changes including:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved invalid documents from :class:\u003ccode\u003ebson.errors.InvalidDocument\u003c/code\u003e error messages as\ndoing so may leak sensitive user data.\nInstead, invalid documents are stored in :attr:\u003ccode\u003ebson.errors.InvalidDocument.document\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003ePyMongo now requires \u003ccode\u003ednspython\u0026gt;=2.6.1\u003c/code\u003e, since \u003ccode\u003ednspython\u003c/code\u003e 1.0 is no longer maintained.\nThe minimum version is \u003ccode\u003e2.6.1\u003c/code\u003e to account for \u003ccode\u003eCVE-2023-29483 \u0026lt;https://www.cve.org/CVERecord?id=CVE-2023-29483\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eRemoved support for Eventlet.\nEventlet is actively being sunset by its maintainers and has compatibility issues with PyMongo's dnspython dependency.\u003c/li\u003e\n\u003cli\u003eUse Zstandard support from the standard library for Python 3.14+, and use \u003ccode\u003ebackports.zstd\u003c/code\u003e for older versions.\u003c/li\u003e\n\u003cli\u003eFixed return type annotation for \u003ccode\u003efind_one_and_*\u003c/code\u003e methods on :class:\u003ccode\u003e~pymongo.asynchronous.collection.AsyncCollection\u003c/code\u003e\nand :class:\u003ccode\u003e~pymongo.synchronous.collection.Collection\u003c/code\u003e to include \u003ccode\u003eNone\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAdded support for NumPy 1D-arrays in :class:\u003ccode\u003ebson.binary.BinaryVector\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003ePrevented :class:\u003ccode\u003e~pymongo.encryption.ClientEncryption\u003c/code\u003e from loading the crypt\nshared library to fix \u0026quot;MongoCryptError: An existing crypt_shared library is\nloaded by the application\u0026quot; unless the linked library search path is set.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanges in Version 4.15.5 (2025/12/02)\u003c/h2\u003e\n\u003cp\u003eVersion 4.15.5 is a bug fix release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a bug that could cause \u003ccode\u003eAutoReconnect(\u0026quot;connection pool paused\u0026quot;)\u003c/code\u003e errors when cursors fetched more documents from the database after SDAM heartbeat failures.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanges in Version 4.15.4 (2025/10/21)\u003c/h2\u003e\n\u003cp\u003eVersion 4.15.4 is a bug fix release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRelaxed the callback type of :meth:\u003ccode\u003e~pymongo.asynchronous.client_session.AsyncClientSession.with_transaction\u003c/code\u003e to allow the broader Awaitable type rather than only Coroutine objects.\u003c/li\u003e\n\u003cli\u003eAdded the missing Python 3.14 trove classifier to the package metadata.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIssues Resolved\n...............\u003c/p\u003e\n\u003cp\u003eSee the \u003ccode\u003ePyMongo 4.15.4 release notes in JIRA\u003c/code\u003e_ for the list of resolved issues\nin this release.\u003c/p\u003e\n\u003cp\u003e.. _PyMongo 4.15.4 release notes in JIRA: \u003ca href=\"https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=10004\u0026amp;version=47237\"\u003ehttps://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=10004\u0026amp;version=47237\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eChanges in Version 4.15.3 (2025/10/07)\u003c/h2\u003e\n\u003cp\u003eVersion 4.15.3 is a bug fix release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a memory leak when raising :class:\u003ccode\u003ebson.errors.InvalidDocument\u003c/code\u003e with C extensions.\u003c/li\u003e\n\u003cli\u003eFixed the return type of the  :meth:\u003ccode\u003e~pymongo.asynchronous.collection.AsyncCollection.distinct\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/mongodb/mongo-python-driver/commit/32901018ca14d9acb05004a88d65b6ab0b29c877\"\u003e\u003ccode\u003e3290101\u003c/code\u003e\u003c/a\u003e Prepare 4.16.0 release (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2672\"\u003e#2672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/1be94d262dd0281b032b6f9e56d381cac3a7a6d9\"\u003e\u003ccode\u003e1be94d2\u003c/code\u003e\u003c/a\u003e PYTHON-5685 Fix unified spec sync metadata for csot and sessions tests (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2669\"\u003e#2669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/6585d9cb51d5c9b2d85eec4f49b8196612d9e8ee\"\u003e\u003ccode\u003e6585d9c\u003c/code\u003e\u003c/a\u003e PYTHON-2442: Refactor: use _asdict() in _options_dict() (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2670\"\u003e#2670\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/fdb1f7ea4abe128ae4e59e3d063fd95d7daaa964\"\u003e\u003ccode\u003efdb1f7e\u003c/code\u003e\u003c/a\u003e PYTHON-5677 Prevent ClientEncryption from loading crypt shared library (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2659\"\u003e#2659\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/0cd9763423b85cd37779ea934bf7b1f8be8bbf8e\"\u003e\u003ccode\u003e0cd9763\u003c/code\u003e\u003c/a\u003e Bump zizmorcore/zizmor-action from cb3d8e846e148d1111d90b03375b9c03deceda37 t...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/2f263d4d3f11eb4a2b32ace467fd2767c371f4d7\"\u003e\u003ccode\u003e2f263d4\u003c/code\u003e\u003c/a\u003e PYTHON-5680 Fix handling of expectedDocuments in Unified Test Runner (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2665\"\u003e#2665\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/e9658b2406232b6bd6ac1d961b368142f8819479\"\u003e\u003ccode\u003ee9658b2\u003c/code\u003e\u003c/a\u003e Add 4.15.5 release date to changelog (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2666\"\u003e#2666\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/10dd20405ba19c643a1b305ff84f742b19c40daf\"\u003e\u003ccode\u003e10dd204\u003c/code\u003e\u003c/a\u003e Update coverage[toml] requirement from \u0026lt;=7.10.6,\u0026gt;=5 to \u0026gt;=5,\u0026lt;=7.10.7 (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2662\"\u003e#2662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/130067799cc671d4dcc2f34dafff73c4ef5ddeaf\"\u003e\u003ccode\u003e1300677\u003c/code\u003e\u003c/a\u003e [Spec Resync] 12-22-2025 (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2663\"\u003e#2663\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mongodb/mongo-python-driver/commit/18c1f142b5b3fd179a677b2736332dc17770b7c2\"\u003e\u003ccode\u003e18c1f14\u003c/code\u003e\u003c/a\u003e PYTHON-5529 Introduce optin setting to await for MinPoolSize population (\u003ca href=\"https://redirect.github.com/mongodb/mongo-python-driver/issues/2664\"\u003e#2664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mongodb/mongo-python-driver/compare/4.14.0...4.16.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.12.3 to 2.12.5\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.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes 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/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields 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/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\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-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types 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/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict 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/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries 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/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 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/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\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.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\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/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.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes 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/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields 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/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types 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/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict 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/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries 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/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 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/1864\"\u003epydantic-core#1864\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/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-extra-types` from 2.10.5 to 2.11.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-extra-types/releases\"\u003epydantic-extra-types's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.11.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 fix Cron Tests (Happy New Year 🎉 ) by \u003ca href=\"https://github.com/anthonycicc\"\u003e\u003ccode\u003e@​anthonycicc\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/361\"\u003epydantic/pydantic-extra-types#361\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact 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-extra-types/pull/362\"\u003epydantic/pydantic-extra-types#362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/download-artifact from 6 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-extra-types/pull/363\"\u003epydantic/pydantic-extra-types#363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump 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-extra-types/pull/365\"\u003epydantic/pydantic-extra-types#365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd UUID v7 support (and v6/v8) by \u003ca href=\"https://github.com/sshaheerkhann\"\u003e\u003ccode\u003e@​sshaheerkhann\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/367\"\u003epydantic/pydantic-extra-types#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: migrate DSN types from pydantic.networks by \u003ca href=\"https://github.com/bBlazewavE\"\u003e\u003ccode\u003e@​bBlazewavE\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/368\"\u003epydantic/pydantic-extra-types#368\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExport \u003ccode\u003eColor\u003c/code\u003e from package \u003ccode\u003e__init__.py\u003c/code\u003e by \u003ca href=\"https://github.com/bBlazewavE\"\u003e\u003ccode\u003e@​bBlazewavE\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/373\"\u003epydantic/pydantic-extra-types#373\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump 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-extra-types/pull/371\"\u003epydantic/pydantic-extra-types#371\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/download-artifact from 7 to 8 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-extra-types/pull/370\"\u003epydantic/pydantic-extra-types#370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 6 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-extra-types/pull/369\"\u003epydantic/pydantic-extra-types#369\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add IBAN (International Bank Account Number) type by \u003ca href=\"https://github.com/toroleapinc\"\u003e\u003ccode\u003e@​toroleapinc\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/372\"\u003epydantic/pydantic-extra-types#372\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔖 Release version 2.11.1  by \u003ca href=\"https://github.com/yezz123\"\u003e\u003ccode\u003e@​yezz123\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/375\"\u003epydantic/pydantic-extra-types#375\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/anthonycicc\"\u003e\u003ccode\u003e@​anthonycicc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/361\"\u003epydantic/pydantic-extra-types#361\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/sshaheerkhann\"\u003e\u003ccode\u003e@​sshaheerkhann\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/367\"\u003epydantic/pydantic-extra-types#367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bBlazewavE\"\u003e\u003ccode\u003e@​bBlazewavE\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/368\"\u003epydantic/pydantic-extra-types#368\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/toroleapinc\"\u003e\u003ccode\u003e@​toroleapinc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/372\"\u003epydantic/pydantic-extra-types#372\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-extra-types/compare/v2.11.0...v2.11.1\"\u003ehttps://github.com/pydantic/pydantic-extra-types/compare/v2.11.0...v2.11.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs: improve example formatting in PhoneNumber documentation by \u003ca href=\"https://github.com/hengky-kurniawan-1\"\u003e\u003ccode\u003e@​hengky-kurniawan-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/347\"\u003epydantic/pydantic-extra-types#347\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix import typo in the script code's documentation by \u003ca href=\"https://github.com/wesley312\"\u003e\u003ccode\u003e@​wesley312\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/349\"\u003epydantic/pydantic-extra-types#349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/350\"\u003epydantic/pydantic-extra-types#350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump astral-sh/setup-uv from 6 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-extra-types/pull/352\"\u003epydantic/pydantic-extra-types#352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/download-artifact 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-extra-types/pull/351\"\u003epydantic/pydantic-extra-types#351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix: url typo in docstring by \u003ca href=\"https://github.com/lch\"\u003e\u003ccode\u003e@​lch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/355\"\u003epydantic/pydantic-extra-types#355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e♻️ raise \u003ccode\u003eValueError\u003c/code\u003e instead of \u003ccode\u003eAttributeError\u003c/code\u003e on wrong \u003ccode\u003eS3Path\u003c/code\u003e value by \u003ca href=\"https://github.com/Danipulok\"\u003e\u003ccode\u003e@​Danipulok\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/354\"\u003epydantic/pydantic-extra-types#354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/checkout 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-extra-types/pull/357\"\u003epydantic/pydantic-extra-types#357\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor type hints to use built-in tuple syntax  by \u003ca href=\"https://github.com/yezz123\"\u003e\u003ccode\u003e@​yezz123\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/359\"\u003epydantic/pydantic-extra-types#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate version number for release 2.11.0 by \u003ca href=\"https://github.com/yezz123\"\u003e\u003ccode\u003e@​yezz123\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/360\"\u003epydantic/pydantic-extra-types#360\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/wesley312\"\u003e\u003ccode\u003e@​wesley312\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/349\"\u003epydantic/pydantic-extra-types#349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lch\"\u003e\u003ccode\u003e@​lch\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/355\"\u003epydantic/pydantic-extra-types#355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Danipulok\"\u003e\u003ccode\u003e@​Danipulok\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/354\"\u003epydantic/pydantic-extra-types#354\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-extra-types/compare/v2.10.6...v2.11.0\"\u003ehttps://github.com/pydantic/pydantic-extra-types/compare/v2.10.6...v2.11.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.10.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: update credit card brands by \u003ca href=\"https://github.com/LorhanSohaky\"\u003e\u003ccode\u003e@​LorhanSohaky\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/325\"\u003epydantic/pydantic-extra-types#325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix various documentation layout issues 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-extra-types/pull/328\"\u003epydantic/pydantic-extra-types#328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded test coverage for DomainStr validation including punycode and invalid inputs by \u003ca href=\"https://github.com/rhealakhotia\"\u003e\u003ccode\u003e@​rhealakhotia\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/330\"\u003epydantic/pydantic-extra-types#330\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ Add time parsing to \u003ccode\u003ependulum\u003c/code\u003e by \u003ca href=\"https://github.com/yezz123\"\u003e\u003ccode\u003e@​yezz123\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/331\"\u003epydantic/pydantic-extra-types#331\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative path creation on Windows for fixtures by \u003ca href=\"https://github.com/denini08\"\u003e\u003ccode\u003e@​denini08\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/333\"\u003epydantic/pydantic-extra-types#333\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-extra-types/blob/main/HISTORY.md\"\u003epydantic-extra-types's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eCHANGELOG\u003c/h1\u003e\n\u003ch2\u003eLatest Changes\u003c/h2\u003e\n\u003ch2\u003e2.11.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e📝 docs: improve example formatting in PhoneNumber documentation by \u003ca href=\"https://github.com/hengky-kurniawan-1\"\u003e\u003ccode\u003e@​hengky-kurniawan-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/347\"\u003epydantic/pydantic-extra-types#347\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix import typo in the script code's documentation by \u003ca href=\"https://github.com/wesley312\"\u003e\u003ccode\u003e@​wesley312\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/349\"\u003epydantic/pydantic-extra-types#349\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/upload-artifact from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/350\"\u003epydantic/pydantic-extra-types#350\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump astral-sh/setup-uv from 6 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-extra-types/pull/352\"\u003epydantic/pydantic-extra-types#352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/download-artifact 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-extra-types/pull/351\"\u003epydantic/pydantic-extra-types#351\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 fix: url typo in docstring by \u003ca href=\"https://github.com/lch\"\u003e\u003ccode\u003e@​lch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/355\"\u003epydantic/pydantic-extra-types#355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e♻️ raise \u003ccode\u003eValueError\u003c/code\u003e instead of \u003ccode\u003eAttributeError\u003c/code\u003e on wrong \u003ccode\u003eS3Path\u003c/code\u003e value by \u003ca href=\"https://github.com/Danipulok\"\u003e\u003ccode\u003e@​Danipulok\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/354\"\u003epydantic/pydantic-extra-types#354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/checkout 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-extra-types/pull/357\"\u003epydantic/pydantic-extra-types#357\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor type hints to use built-in tuple syntax  by \u003ca href=\"https://github.com/yezz123\"\u003e\u003ccode\u003e@​yezz123\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/359\"\u003epydantic/pydantic-extra-types#359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate version number for release 2.11.0 by \u003ca href=\"https://github.com/yezz123\"\u003e\u003ccode\u003e@​yezz123\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/360\"\u003epydantic/pydantic-extra-types#360\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.10.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: update credit card brands by \u003ca href=\"https://github.com/LorhanSohaky\"\u003e\u003ccode\u003e@​LorhanSohaky\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/325\"\u003epydantic/pydantic-extra-types#325\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix various documentation layout issues 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-extra-types/pull/328\"\u003epydantic/pydantic-extra-types#328\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded test coverage for DomainStr validation including punycode and invalid inputs by \u003ca href=\"https://github.com/rhealakhotia\"\u003e\u003ccode\u003e@​rhealakhotia\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/330\"\u003epydantic/pydantic-extra-types#330\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e✨ Add time parsing to \u003ccode\u003ependulum\u003c/code\u003e by \u003ca href=\"https://github.com/yezz123\"\u003e\u003ccode\u003e@​yezz123\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/331\"\u003epydantic/pydantic-extra-types#331\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix relative path creation on Windows for fixtures by \u003ca href=\"https://github.com/denini08\"\u003e\u003ccode\u003e@​denini08\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/333\"\u003epydantic/pydantic-extra-types#333\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump 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-extra-types/pull/336\"\u003epydantic/pydantic-extra-types#336\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/334\"\u003epydantic/pydantic-extra-types#334\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e⬆ Bump actions/download-artifact from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/335\"\u003epydantic/pydantic-extra-types#335\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: fix-isbn-typos by \u003ca href=\"https://github.com/gem7318\"\u003e\u003ccode\u003e@​gem7318\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/337\"\u003epydantic/pydantic-extra-types#337\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e♻️ refactor \u003ccode\u003emac_address\u003c/code\u003e validation logic by \u003ca href=\"https://github.com/Stormageddon37\"\u003e\u003ccode\u003e@​Stormageddon37\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/338\"\u003epydantic/pydantic-extra-types#338\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🐛 set \u003ccode\u003e@classmethod\u003c/code\u003e in \u003ccode\u003ephone_numbers\u003c/code\u003e schema by \u003ca href=\"https://github.com/Stormageddon37\"\u003e\u003ccode\u003e@​Stormageddon37\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/339\"\u003epydantic/pydantic-extra-types#339\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📝 chore: fix random typos by \u003ca href=\"https://github.com/Stormageddon37\"\u003e\u003ccode\u003e@​Stormageddon37\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/340\"\u003epydantic/pydantic-extra-types#340\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e📝 docs: enhance docstring for \u003ccode\u003ePhoneNumber\u003c/code\u003e class with usage examples by \u003ca href=\"https://github.com/hengky-kurniawan-1\"\u003e\u003ccode\u003e@​hengky-kurniawan-1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/341\"\u003epydantic/pydantic-extra-types#341\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded cron type by \u003ca href=\"https://github.com/Neko1313\"\u003e\u003ccode\u003e@​Neko1313\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/343\"\u003epydantic/pydantic-extra-types#343\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e🔖 Release version 2.10.6 by \u003ca href=\"https://github.com/yezz123\"\u003e\u003ccode\u003e@​yezz123\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/pull/344\"\u003epydantic/pydantic-extra-types#344\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/efe22fb050b6020950bb4797d36c4aca3c5340ec\"\u003e\u003ccode\u003eefe22fb\u003c/code\u003e\u003c/a\u003e 🔖 Release version 2.11.1  (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/375\"\u003e#375\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/6fc6756c43eb6045eab29c9ab6f37d03f17cc650\"\u003e\u003ccode\u003e6fc6756\u003c/code\u003e\u003c/a\u003e feat: add IBAN (International Bank Account Number) type (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/372\"\u003e#372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/558e5c891bf86f9dc09fe1bfa47a93bec3f1cd2e\"\u003e\u003ccode\u003e558e5c8\u003c/code\u003e\u003c/a\u003e ⬆ Bump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/369\"\u003e#369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/aab5a5a6a19accb3905cb2825f55a8d10f056186\"\u003e\u003ccode\u003eaab5a5a\u003c/code\u003e\u003c/a\u003e ⬆ Bump actions/download-artifact from 7 to 8 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/370\"\u003e#370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/89b2a1615d7411f3fbab2319ef77845aee02b3d4\"\u003e\u003ccode\u003e89b2a16\u003c/code\u003e\u003c/a\u003e ⬆ Bump the python-packages group with 2 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/371\"\u003e#371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/496cf00733b33304ea0b8dae97c8b0e6c9c02c94\"\u003e\u003ccode\u003e496cf00\u003c/code\u003e\u003c/a\u003e Export Color from package \u003cstrong\u003einit\u003c/strong\u003e.py (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/373\"\u003e#373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/07628d1099aa2751d3e9661134a28fa85fe6e2f8\"\u003e\u003ccode\u003e07628d1\u003c/code\u003e\u003c/a\u003e feat: migrate DSN types from pydantic.networks (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/368\"\u003e#368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/b999077b5609188f8634d24a9961b1baeff7b64d\"\u003e\u003ccode\u003eb999077\u003c/code\u003e\u003c/a\u003e Add UUID v7 support (and v6/v8) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/367\"\u003e#367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/712421fd49fc49f68b68f74913d5e15d346fbcce\"\u003e\u003ccode\u003e712421f\u003c/code\u003e\u003c/a\u003e ⬆ Bump the python-packages group with 4 updates (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-extra-types/commit/a99dd63e81652f9e51082f6fc27d6997dbf0f070\"\u003e\u003ccode\u003ea99dd63\u003c/code\u003e\u003c/a\u003e ⬆ Bump actions/download-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-extra-types/issues/363\"\u003e#363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-extra-types/compare/v2.10.5...v2.11.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phonenumbers` from 9.0.11 to 9.0.26\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/07e2c75b1dc1d94c806755e4842410e19cd1e17e\"\u003e\u003ccode\u003e07e2c75\u003c/code\u003e\u003c/a\u003e Prep for 9.0.26 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/55522da42bff8bd7eefd08b17c978971bc60e135\"\u003e\u003ccode\u003e55522da\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/8ca762b2309a1df12f2eadf601ce413bf3cd1826\"\u003e\u003ccode\u003e8ca762b\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.26\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/c4d8bac7ec270537b05834520c8cee08dedf2743\"\u003e\u003ccode\u003ec4d8bac\u003c/code\u003e\u003c/a\u003e Prep for 9.0.25 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/17db64648ac55e3e519716bb9d2cdf568737b102\"\u003e\u003ccode\u003e17db646\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/d08f6b4b541f7b5811469ad883db1daf620e259b\"\u003e\u003ccode\u003ed08f6b4\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.25\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/69451b21e20b240e715d63c20353c2ad13ffee82\"\u003e\u003ccode\u003e69451b2\u003c/code\u003e\u003c/a\u003e Prep for 9.0.24 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/f59bdd69ee750f680250cce67f82c824f648c734\"\u003e\u003ccode\u003ef59bdd6\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/3ceb9f5fec321768c5d940d9cdc41672a4236301\"\u003e\u003ccode\u003e3ceb9f5\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.24\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/d439fae6fdeee53fab86534737be8eb8deff7371\"\u003e\u003ccode\u003ed439fae\u003c/code\u003e\u003c/a\u003e tools: add cd - to instructions\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.11...v9.0.26\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.17.1 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\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\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/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.17.1...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `openapi-spec-validator` from 0.7.2 to 0.8.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-openapi/openapi-spec-validator/releases\"\u003eopenapi-spec-validator's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.8.4\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eJsonschema-rs backend \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/478\"\u003e#478\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.8.3\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse resolved cache feature of jsonschema-path \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/479\"\u003e#479\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.8.2\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOpenAPI 3.2 support \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/472\"\u003e#472\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OAS 3.1 jsonSchemaDialect-aware schema meta-validation \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/471\"\u003e#471\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.8.1\u003c/h2\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCLI version option \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/466\"\u003e#466\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit CLI error controls into validation and subschema modes \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/469\"\u003e#469\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix malformed schema traversal to report validation errors instead of internal exceptions \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/467\"\u003e#467\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eValidate declared path parameters against path template \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/470\"\u003e#470\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecates \u003ccode\u003e--error\u003c/code\u003e/\u003ccode\u003e--errors\u003c/code\u003e CLI options \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/469\"\u003e#469\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.8.0\u003c/h2\u003e\n\u003ch2\u003eUpgrades\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eJsonschema-path 0.4 and openapi-schema-validator 0.7 upgrades \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/459\"\u003e#459\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePython 3.13 and 3.14 support \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/392\"\u003e#392\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/457\"\u003e#457\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate openapi-schema-validator version constraint \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/439\"\u003e#439\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBackward incompatibilities\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.8 and 3.9 drop \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/392\"\u003e#392\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/456\"\u003e#456\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.8.0b3\u003c/h2\u003e\n\u003ch2\u003eUpgrades\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eJsonschema-path 0.4.0b8 upgrade \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/455\"\u003e#455\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/python-openapi/openapi-spec-validator/commit/cca400fbe29ebaea5c3b3e7db04548db260690ea\"\u003e\u003ccode\u003ecca400f\u003c/code\u003e\u003c/a\u003e Version 0.8.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-openapi/openapi-spec-validator/commit/33585eab47df9c3d6bd18479463da15fb0007f36\"\u003e\u003ccode\u003e33585ea\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/478\"\u003e#478\u003c/a\u003e from python-openapi/poc/rust-backend\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-openapi/openapi-spec-validator/commit/a10dfe6ce166865eb36c75b2a473d470cc5bb0e1\"\u003e\u003ccode\u003ea10dfe6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/480\"\u003e#480\u003c/a\u003e from python-openapi/copilot/sub-pr-478\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-openapi/openapi-spec-validator/commit/da9c9cbce67e12764db36886a850eb5a9017dc51\"\u003e\u003ccode\u003eda9c9cb\u003c/code\u003e\u003c/a\u003e Address review feedback: fix docstring, trailing whitespace, f-string, instal...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-openapi/openapi-spec-validator/commit/629f4e2bdfe60ce54c51f8e8cdce54f6f83f1da7\"\u003e\u003ccode\u003e629f4e2\u003c/code\u003e\u003c/a\u003e Initial plan\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-openapi/openapi-spec-validator/commit/df9ba9b77384f1102e98033219feddb64b4e85fa\"\u003e\u003ccode\u003edf9ba9b\u003c/code\u003e\u003c/a\u003e Rust backend\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-openapi/openapi-spec-validator/commit/a093f9c4783792da2b181c03e718844b57cdb19c\"\u003e\u003ccode\u003ea093f9c\u003c/code\u003e\u003c/a\u003e Version 0.8.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-openapi/openapi-spec-validator/commit/0d757b58adc86d3b939b048aa4263ddea6462fd3\"\u003e\u003ccode\u003e0d757b5\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-openapi/openapi-spec-validator/issues/479\"\u003e#479\u003c/a\u003e from python-openapi/feature/upgrade-jsonschema-path-0...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-openapi/openapi-spec-validator/commit/0bbd76166fcd1833dcbe63cf335a3da26fdc9015\"\u003e\u003ccode\u003e0bbd761\u003c/code\u003e\u003c/a\u003e Expose resolved cache\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-openapi/openapi-spec-validator/commit/023da9563279a37bcedb5ffb6208f663e46a53cc\"\u003e\u003ccode\u003e023da95\u003c/code\u003e\u003c/a\u003e Upgrade jsonschema-path 0.4.3\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-openapi/openapi-spec-validator/compare/0.7.2...0.8.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.12.9 to 0.15.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.7\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisplay output severity in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23845\"\u003e#23845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't show \u003ccode\u003enoqa\u003c/code\u003e hover for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24040\"\u003e#24040\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Recognize \u003ccode\u003epyrefly:\u003c/code\u003e as a pragma comment (\u003ccode\u003eE501\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24019\"\u003e#24019\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't return code actions for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23905\"\u003e#23905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd company AI policy to contributing guide (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24021\"\u003e#24021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument editor features for Markdown code formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23924\"\u003e#23924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Improve phrasing (\u003ccode\u003ePLC0208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24033\"\u003e#24033\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse PEP 639 license information (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19661\"\u003e#19661\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tmimmanuel\"\u003e\u003ccode\u003e@​tmimmanuel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statxc\"\u003e\u003ccode\u003e@​statxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.7\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.7/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/ruff/releases/download/0.15.7/ruff-installer.ps1 | iex\u0026quot;\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.7\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisplay output severity in preview (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23845\"\u003e#23845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't show \u003ccode\u003enoqa\u003c/code\u003e hover for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24040\"\u003e#24040\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Recognize \u003ccode\u003epyrefly:\u003c/code\u003e as a pragma comment (\u003ccode\u003eE501\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24019\"\u003e#24019\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't return code actions for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23905\"\u003e#23905\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd company AI policy to contributing guide (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24021\"\u003e#24021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument editor features for Markdown code formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23924\"\u003e#23924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Improve phrasing (\u003ccode\u003ePLC0208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24033\"\u003e#24033\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse PEP 639 license information (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19661\"\u003e#19661\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tmimmanuel\"\u003e\u003ccode\u003e@​tmimmanuel\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/statxc\"\u003e\u003ccode\u003e@​statxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hunterhogan\"\u003e\u003ccode\u003e@​hunterhogan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.6\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-12.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for \u003ccode\u003elazy\u003c/code\u003e import parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23755\"\u003e#23755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for star-unpacking of comprehensions (PEP 798) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23788\"\u003e#23788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject semantic syntax errors for lazy imports (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23757\"\u003e#23757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop a few rules from the preview default set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23879\"\u003e#23879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Flag \u003ccode\u003eVariable.get()\u003c/code\u003e calls outside of task execution context (\u003ccode\u003eAIR003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23584\"\u003e#23584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eairflow\u003c/code\u003e] Flag runtime-varying values in DAG/task constructor arguments (\u003ccode\u003eAIR304\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23631\"\u003e#23631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Implement \u003ccode\u003edelattr-with-constant\u003c/code\u003e (\u003ccode\u003eB043\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23737\"\u003e#23737\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/0ef39de46c006994fb1e90f7bd4ba09c0b2c1f79\"\u003e\u003ccode\u003e0ef39de\u003c/code\u003e\u003c/a\u003e Bump 0.15.7 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24049\"\u003e#24049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/beb543b5c666be9fd3f13c88df818f202b63e9d0\"\u003e\u003ccode\u003ebeb543b\u003c/code\u003e\u003c/a\u003e [ty] ecosystem-analyzer: Fail on newly panicking projects (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24043\"\u003e#24043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/378fe730929ccd67a7f2426b3012093da814b31d\"\u003e\u003ccode\u003e378fe73\u003c/code\u003e\u003c/a\u003e Don't show noqa hover for non-Python documents (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24040\"\u003e#24040\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b5665bd18eecab4d3b5ab1256b36904cd99a4c57\"\u003e\u003ccode\u003eb5665bd\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epylint\u003c/code\u003e] Improve phrasing (\u003ccode\u003ePLC0208\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24033\"\u003e#24033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6e20f2219020e61eeae29458013d2d3684f75a79\"\u003e\u003ccode\u003e6e20f22\u003c/code\u003e\u003c/a\u003e test: migrate \u003ccode\u003eshow_settings\u003c/code\u003e and \u003ccode\u003eversion\u003c/code\u003e tests to use \u003ccode\u003eCliTest\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23702\"\u003e#23702\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f99b284c1fe1399a82da7f6669467488017d44a7\"\u003e\u003ccode\u003ef99b284\u003c/code\u003e\u003c/a\u003e Drain file watcher events during test setup (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24030\"\u003e#24030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/744c996c35016a8c0e05aa2823f4f822ac7b842c\"\u003e\u003ccode\u003e744c996\u003c/code\u003e\u003c/a\u003e [ty] Filter out unsatisfiable inference attempts during generic call narrowin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/16160958bdafb6106b6fffc72ffe2e4db0c0ac33\"\u003e\u003ccode\u003e1616095\u003c/code\u003e\u003c/a\u003e [ty] Avoid inferring intersection types for call arguments (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23933\"\u003e#23933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7f275f431bf8c60d59601b74d441e9f4bef89f35\"\u003e\u003ccode\u003e7f275f4\u003c/code\u003e\u003c/a\u003e [ty] Pin mypy_primer in \u003ccode\u003esetup_primer_project.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24020\"\u003e#24020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7255e362e4b171a641222279cd28d2ca88a74fdc\"\u003e\u003ccode\u003e7255e36\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epycodestyle\u003c/code\u003e] Recognize \u003ccode\u003epyrefly:\u003c/code\u003e as a pragma comment (\u003ccode\u003eE501\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24019\"\u003e#24019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.12.9...0.15.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyenchant` from 3.2.2 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyenchant/pyenchant/commit/f8b40fdf543dea52e043a89bfbd5d0e0b8ed3c99\"\u003e\u003ccode\u003ef8b40fd\u003c/code\u003e\u003c/a\u003e Bump to 3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyenchant/pyenchant/commit/07928e1be608a2b8b33f36594329eb02559e030c\"\u003e\u003ccode\u003e07928e1\u003c/code\u003e\u003c/a\u003e Update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyenchant/pyenchant/commit/bc49633f76781885dea3d1e06422e250347fba50\"\u003e\u003ccode\u003ebc49633\u003c/code\u003e\u003c/a\u003e Bump to 3.3.0rc4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyenchant/pyenchant/commit/f74975f419f79c12b7bf265998114bc85b854a2d\"\u003e\u003ccode\u003ef74975f\u003c/code\u003e\u003c/a\u003e tbump: don't try and make a release after the push\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyenchant/pyenchant/commit/6f32de5ac51d46ab5abdad67306d43abf92001d5\"\u003e\u003ccode\u003e6f32de5\u003c/code\u003e\u003c/a\u003e Bump to 3.3.0rc3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyenchant/pyenchant/commit/86ae615568c368030342c8e38c68ea696b5919dc\"\u003e\u003ccode\u003e86ae615\u003c/code\u003e\u003c/a\u003e Try to publish to pypi.org from GitHub\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyenchant/pyenchant/commit/1dd14706cfcc7439fe6e825ca4e7d4870c0316c2\"\u003e\u003ccode\u003e1dd1470\u003c/code\u003e\u003c/a\u003e Rename build.py -\u0026gt; build_artifacts.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyenchant/pyenchant/commit/6283bcea20bb65522a25af52530c2710a1198f6a\"\u003e\u003ccode\u003e6283bce\u003c/code\u003e\u003c/a\u003e Add workflow to publish to testpypi\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyenchant/pyenchant/commit/53ab967f5fa7ac7b149793d64d43bf4e812b86e7\"\u003e\u003ccode\u003e53ab967\u003c/code\u003e\u003c/a\u003e Bump to 3.3.0rc2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyenchant/pyenchant/commit/640a82a3c93a5c79bff263720677b417cb9fffd8\"\u003e\u003ccode\u003e640a82a\u003c/code\u003e\u003c/a\u003e rename release -\u0026gt; build, don't use setup.py do build\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyenchant/pyenchant/compare/v3.2.2...v3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sphinx-autoapi` from 3.6.0 to 3.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/readthedocs/sphinx-autoapi/releases\"\u003esphinx-autoapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.8.0\u003c/h2\u003e\n\u003ch1\u003eFeatures\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAutodoc-style directives can access members excluded by autoapi_options\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eMisc\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/553\"\u003e#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.7.0\u003c/h2\u003e\n\u003ch1\u003eFeatures\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded autoapi.import warning for when AutoAPI directives are given non-existent objects\u003c/li\u003e\n\u003cli\u003eAdding autoapi_follow_symlinks, which allows api to traverse into symlinked directories when generating the API documentation.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 and officially support Python 3.14\u003c/li\u003e\n\u003cli\u003eSupport rendering PEP-695 type parameters\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBugfixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRender typing_extensions.TypeAlias like other type aliases (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix PythonFunction.overloads typing when source code overload(s) do not provide a return type (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eMisc\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix deprecation warnings raised by astroid and sphinx\u003c/li\u003e\n\u003cli\u003eHandling case where match returns None to fix mypy unit test.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.6.1\u003c/h2\u003e\n\u003ch1\u003eBugfixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate the supported versions of astroid. Fix the breaking change to Import and pass in the AstroidManager to the AstroidBuilder (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/536\"\u003e#536\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/readthedocs/sphinx-autoapi/blob/main/CHANGELOG.rst\"\u003esphinx-autoapi's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.8.0 (2026-03-07)\u003c/h2\u003e\n\u003cp\u003eFeatures\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAutodoc-style directives can access members excluded by autoapi_options\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eMisc\n^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/553\"\u003e#553\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.7.0 (2026-02-10)\u003c/h2\u003e\n\u003cp\u003eFeatures\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded autoapi.import warning for when AutoAPI directives are given non-existent objects\u003c/li\u003e\n\u003cli\u003eAdding \u003ccode\u003eautoapi_follow_symlinks\u003c/code\u003e, which allows api to traverse into symlinked directories when generating the API documentation.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 and officially support Python 3.14\u003c/li\u003e\n\u003cli\u003eSupport rendering PEP-695 type parameters\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBugfixes\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRender typing_extensions.TypeAlias like other type aliases (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/520\"\u003e#520\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003ePythonFunction.overloads\u003c/code\u003e typing when source code overload(s) do not provide a return type (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/523\"\u003e#523\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eMisc\n^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix deprecation warnings raised by astroid and sphinx\u003c/li\u003e\n\u003cli\u003eHandling case where match returns None to fix mypy unit test.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.6.1 (2025-10-06)\u003c/h2\u003e\n\u003cp\u003eBugfixes\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate the supported versions of astroid.\nFix the breaking change to Import and pass in the AstroidManager to the AstroidBuilder (\u003ca href=\"https://redirect.github.com/readthedocs/sphinx-autoapi/issues/536\"\u003e#536\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/readthedocs/sphinx-autoapi/commit/75cbff...\n\n_Description has been truncated_","html_url":"https://github.com/KittyCAD/kittycad.py/pull/621","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/KittyCAD%2Fkittycad.py/issues/621","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/621/packages"}},{"old_version":"9.0.24","new_version":"9.0.26","update_type":"patch","path":null,"pr_created_at":"2026-03-16T21:33:12.000Z","version_change":"9.0.24 → 9.0.26","issue":{"uuid":"4084893007","node_id":"PR_kwDOGTov7c7LC1zZ","number":260,"state":"closed","title":"build(deps): bump the production-dependencies group across 1 directory with 3 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-30T22:08:50.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-16T21:33:12.000Z","updated_at":"2026-03-30T22:08:52.000Z","time_to_close":1211738,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"production-dependencies","update_count":3,"packages":[{"name":"peewee","old_version":"4.0.0","new_version":"4.0.2","repository_url":"https://github.com/coleifer/peewee"},{"name":"phonenumbers","old_version":"9.0.24","new_version":"9.0.26","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"},{"name":"pyopenssl","old_version":"25.3.0","new_version":"26.0.0","repository_url":"https://github.com/pyca/pyopenssl"}],"path":null,"ecosystem":"pip"},"body":"Bumps the production-dependencies group with 3 updates in the / directory: [peewee](https://github.com/coleifer/peewee), [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) and [pyopenssl](https://github.com/pyca/pyopenssl).\n\nUpdates `peewee` from 4.0.0 to 4.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coleifer/peewee/releases\"\u003epeewee's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove all Python 2.x compatibility code.\u003c/li\u003e\n\u003cli\u003eAdd streaming result cursors to pwasyncio module via \u003ccode\u003edb.iterate(query)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eBetter serialization and deserialization of datetimes and binary data in the DataSet module. Previously binary data was encoded as base64, going forward hex is the new default. For base64 specify \u003ccode\u003ebase64_bytes=True\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eImprovements to Postgres \u003ccode\u003eBinaryJSONField\u003c/code\u003e, support atomic removal of sub-elements, as well as alternate helper for extracting sub-elements and querying array length.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.peewee-orm.com/en/latest/peewee/orm_utils.html#module-playhouse.pydantic_utils\"\u003ePydantic integration\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.1...4.0.2\"\u003eView commits\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure \u003ccode\u003egr_context\u003c/code\u003e is set on greenlet in \u003ccode\u003egreenlet_spawn\u003c/code\u003e so that contextvars will be operable in sync handlers.\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eSqliteExtDatabase\u003c/code\u003e (it basically served no purpose in 4.0). Use \u003ccode\u003eSqliteDatabase\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eMoved driver and extension-specific pooled implementations into the corresponding extension module rather than putting all into \u003ccode\u003eplayhouse.pool\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRestore custom \u003ccode\u003edumps\u003c/code\u003e option for postgres JSON fields.\u003c/li\u003e\n\u003cli\u003eMajor docs rewrite / reorganization.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.0...4.0.1\"\u003eView commits\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/coleifer/peewee/blob/master/CHANGELOG.md\"\u003epeewee's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.0.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove all Python 2.x compatibility code.\u003c/li\u003e\n\u003cli\u003eAdd streaming result cursors to pwasyncio module via \u003ccode\u003edb.iterate(query)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eBetter serialization and deserialization of datetimes and binary data in the\nDataSet module. Previously binary data was encoded as base64, going forward\nhex is the new default. For base64 specify \u003ccode\u003ebase64_bytes=True\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eImprovements to Postgres \u003ccode\u003eBinaryJSONField\u003c/code\u003e, support atomic removal of\nsub-elements, as well as alternate helper for extracting sub-elements and\nquerying array length.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.peewee-orm.com/en/latest/peewee/orm_utils.html#module-playhouse.pydantic_utils\"\u003ePydantic integration\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.1...4.0.2\"\u003eView commits\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e4.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure \u003ccode\u003egr_context\u003c/code\u003e is set on greenlet in \u003ccode\u003egreenlet_spawn\u003c/code\u003e so that\ncontextvars will be operable in sync handlers.\u003c/li\u003e\n\u003cli\u003eRemoved \u003ccode\u003eSqliteExtDatabase\u003c/code\u003e (it basically served no purpose in 4.0). Use\n\u003ccode\u003eSqliteDatabase\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eMoved driver and extension-specific pooled implementations into the\ncorresponding extension module rather than putting all into \u003ccode\u003eplayhouse.pool\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRestore custom \u003ccode\u003edumps\u003c/code\u003e option for postgres JSON fields.\u003c/li\u003e\n\u003cli\u003eMajor docs rewrite / reorganization.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.0...4.0.1\"\u003eView commits\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/coleifer/peewee/commit/a285042db7961d8c3c2357afccde0fdc79df4528\"\u003e\u003ccode\u003ea285042\u003c/code\u003e\u003c/a\u003e 4.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/e7b30916810e879b9bdd92a11c60b5457a58c5d2\"\u003e\u003ccode\u003ee7b3091\u003c/code\u003e\u003c/a\u003e More idiomatic usage in doc examples.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/7f85343a7b681ff946576516582a635b969d4976\"\u003e\u003ccode\u003e7f85343\u003c/code\u003e\u003c/a\u003e Fix misnamed method in examples.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/c505a135237dfe8433ab60fcb8461eac83b7e6da\"\u003e\u003ccode\u003ec505a13\u003c/code\u003e\u003c/a\u003e Update flaky tests that were relying on async callback ordering.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/90d469127c1c246a0ceb1b7ad5c345b622cd93dd\"\u003e\u003ccode\u003e90d4691\u003c/code\u003e\u003c/a\u003e Small cleanups to pydantic doc.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/2ee08ef9307cd36d6247593dd5c060fa28380281\"\u003e\u003ccode\u003e2ee08ef\u003c/code\u003e\u003c/a\u003e Attempt fix for hung cursors w/postgres in tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/e87d2ad96072d51143c91cde83b5aefa22ed84c2\"\u003e\u003ccode\u003ee87d2ad\u003c/code\u003e\u003c/a\u003e Doc cleanups\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/afb6d8bbcec8e937e3d81787843383a0f2eb2200\"\u003e\u003ccode\u003eafb6d8b\u003c/code\u003e\u003c/a\u003e Add additional server-side cursor concurrency test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/2f0b39106d8bc9ec6f1e05264ed975a4371ba175\"\u003e\u003ccode\u003e2f0b391\u003c/code\u003e\u003c/a\u003e Update changelog as well.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coleifer/peewee/commit/3cf0b6556f0ae18ee1d39d3b4a3a59c299a54f9b\"\u003e\u003ccode\u003e3cf0b65\u003c/code\u003e\u003c/a\u003e Update readme/doc index to mention pydantic integration.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coleifer/peewee/compare/4.0.0...4.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phonenumbers` from 9.0.24 to 9.0.26\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/07e2c75b1dc1d94c806755e4842410e19cd1e17e\"\u003e\u003ccode\u003e07e2c75\u003c/code\u003e\u003c/a\u003e Prep for 9.0.26 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/55522da42bff8bd7eefd08b17c978971bc60e135\"\u003e\u003ccode\u003e55522da\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/8ca762b2309a1df12f2eadf601ce413bf3cd1826\"\u003e\u003ccode\u003e8ca762b\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.26\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/c4d8bac7ec270537b05834520c8cee08dedf2743\"\u003e\u003ccode\u003ec4d8bac\u003c/code\u003e\u003c/a\u003e Prep for 9.0.25 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/17db64648ac55e3e519716bb9d2cdf568737b102\"\u003e\u003ccode\u003e17db646\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/d08f6b4b541f7b5811469ad883db1daf620e259b\"\u003e\u003ccode\u003ed08f6b4\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.25\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.24...v9.0.26\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyopenssl` from 25.3.0 to 26.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/pyopenssl/blob/main/CHANGELOG.rst\"\u003epyopenssl's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0.0 (2026-03-15)\u003c/h2\u003e\n\u003cp\u003eBackward-incompatible changes:\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.7.\u003c/li\u003e\n\u003cli\u003eThe minimum \u003ccode\u003ecryptography\u003c/code\u003e version is now 46.0.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDeprecations:\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eChanges:\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for using aws-lc instead of OpenSSL.\u003c/li\u003e\n\u003cli\u003eProperly raise an error if a DTLS cookie callback returned a cookie longer than \u003ccode\u003eDTLS1_COOKIE_LENGTH\u003c/code\u003e bytes. Previously this would result in a buffer-overflow. Credit to \u003cstrong\u003edark_haxor\u003c/strong\u003e for reporting the issue. \u003cstrong\u003eCVE-2026-27459\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eOpenSSL.SSL.Connection.get_group_name\u003c/code\u003e to determine which group name was negotiated.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.set_tlsext_servername_callback\u003c/code\u003e now handles exceptions raised in the callback by calling \u003ccode\u003esys.excepthook\u003c/code\u003e and returning a fatal TLS alert. Previously, exceptions were silently swallowed and the handshake would proceed as if the callback had succeeded. Credit to \u003cstrong\u003eLeury Castillo\u003c/strong\u003e for reporting this issue. \u003cstrong\u003eCVE-2026-27448\u003c/strong\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/pyca/pyopenssl/commit/358cbf29c4e364c59930e53a270116249581eaa3\"\u003e\u003ccode\u003e358cbf2\u003c/code\u003e\u003c/a\u003e Prepare for 26.0.0 release (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1487\"\u003e#1487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/a8d28e7069ca213049ccfbcc227ed9ef6080a15b\"\u003e\u003ccode\u003ea8d28e7\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4 to 5 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1486\"\u003e#1486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/6fefff05561c0a5e8f668b4e029a6ba3adb7d89e\"\u003e\u003ccode\u003e6fefff0\u003c/code\u003e\u003c/a\u003e Add aws-lc compatibility to tests and CI (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1476\"\u003e#1476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/a739f9661d09ec6cda448ad71ca3e6df0dce9d75\"\u003e\u003ccode\u003ea739f96\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 8.0.0 to 8.0.1 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1485\"\u003e#1485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/8b4c66b1b5649ce046665b151772d40c1cddd66a\"\u003e\u003ccode\u003e8b4c66b\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact in /.github/actions/upload-coverage (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1484\"\u003e#1484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/02a5c78435cd445a7d5ef20b354dba2b6abdac64\"\u003e\u003ccode\u003e02a5c78\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/d9733878d67ee2ad94327768bb6dc416f7827443\"\u003e\u003ccode\u003ed973387\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7.0.0 to 8.0.0 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1482\"\u003e#1482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/57f09bb4bb051d3bc2a1abd36e9525313d5cd408\"\u003e\u003ccode\u003e57f09bb\u003c/code\u003e\u003c/a\u003e Fix buffer overflow in DTLS cookie generation callback (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1479\"\u003e#1479\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/d41a814759a9fb49584ca8ab3f7295de49a85aa0\"\u003e\u003ccode\u003ed41a814\u003c/code\u003e\u003c/a\u003e Handle exceptions in set_tlsext_servername_callback callbacks (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1478\"\u003e#1478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/7b29beba7759f0b810b5d5375a50469c4f8947b3\"\u003e\u003ccode\u003e7b29beb\u003c/code\u003e\u003c/a\u003e Fix not using a cryptography wheel on uv (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1475\"\u003e#1475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/pyopenssl/compare/25.3.0...26.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \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/smswithoutborders/RelaySMS-Gateway-Server/pull/260","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/smswithoutborders%2FRelaySMS-Gateway-Server/issues/260","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/260/packages"}},{"old_version":"9.0.25","new_version":"9.0.26","update_type":"patch","path":"/backend","pr_created_at":"2026-03-16T05:28:53.000Z","version_change":"9.0.25 → 9.0.26","issue":{"uuid":"4080317702","node_id":"PR_kwDORMoXSc7Kz9dV","number":741,"state":"open","title":"chore(deps): bump the minor-and-patch group in /backend with 2 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":"2026-03-16T05:28:53.000Z","updated_at":"2026-03-16T05:28:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"minor-and-patch","update_count":2,"packages":[{"name":"pyjwt","old_version":"2.12.0","new_version":"2.12.1"},{"name":"phonenumbers","old_version":"9.0.25","new_version":"9.0.26","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps the minor-and-patch group in /backend with 2 updates: [pyjwt[crypto]](https://github.com/jpadilla/pyjwt) and [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers).\n\nUpdates `pyjwt[crypto]` from 2.12.0 to 2.12.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt[crypto]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.12.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd typing_extensions dependency for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/jpadilla\"\u003e\u003ccode\u003e@​jpadilla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1151\"\u003ejpadilla/pyjwt#1151\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt[crypto]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.12.1 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Add missing ``typing_extensions`` dependency for Python \u0026lt; 3.11 in `[#1150](https://github.com/jpadilla/pyjwt/issues/1150) \u0026lt;https://github.com/jpadilla/pyjwt/issues/1150\u0026gt;`__\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/a4e1a3d1218b01c5806420b8f16d9308ac4adc30\"\u003e\u003ccode\u003ea4e1a3d\u003c/code\u003e\u003c/a\u003e Add typing_extensions dependency for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phonenumbers` from 9.0.25 to 9.0.26\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/07e2c75b1dc1d94c806755e4842410e19cd1e17e\"\u003e\u003ccode\u003e07e2c75\u003c/code\u003e\u003c/a\u003e Prep for 9.0.26 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/55522da42bff8bd7eefd08b17c978971bc60e135\"\u003e\u003ccode\u003e55522da\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/8ca762b2309a1df12f2eadf601ce413bf3cd1826\"\u003e\u003ccode\u003e8ca762b\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.26\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.25...v9.0.26\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/lcacchiani/evolvesprouts/pull/741","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/lcacchiani%2Fevolvesprouts/issues/741","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/741/packages"}},{"old_version":"9.0.25","new_version":"9.0.26","update_type":"patch","path":"/backend","pr_created_at":"2026-03-16T01:26:58.000Z","version_change":"9.0.25 → 9.0.26","issue":{"uuid":"4079714579","node_id":"PR_kwDOQ-6P2s7KyGdN","number":238,"state":"closed","title":"chore(deps): bump the minor-and-patch group in /backend with 2 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-03-30T01:30:47.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-16T01:26:58.000Z","updated_at":"2026-03-30T01:30:53.000Z","time_to_close":1209829,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"minor-and-patch","update_count":2,"packages":[{"name":"pyjwt","old_version":"2.11.0","new_version":"2.12.1"},{"name":"phonenumbers","old_version":"9.0.25","new_version":"9.0.26","repository_url":"https://github.com/daviddrysdale/python-phonenumbers"}],"path":"/backend","ecosystem":"pip"},"body":"Bumps the minor-and-patch group in /backend with 2 updates: [pyjwt[crypto]](https://github.com/jpadilla/pyjwt) and [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers).\n\nUpdates `pyjwt[crypto]` from 2.11.0 to 2.12.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt[crypto]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.12.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd typing_extensions dependency for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/jpadilla\"\u003e\u003ccode\u003e@​jpadilla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1151\"\u003ejpadilla/pyjwt#1151\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.12.0\u003c/h2\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. by \u003ca href=\"https://github.com/dmbs335\"\u003e\u003ccode\u003e@​dmbs335\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-752w-5fwx-jx9f\"\u003eGHSA-752w-5fwx-jx9f\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1132\"\u003ejpadilla/pyjwt#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(docs): fix docs build by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1137\"\u003ejpadilla/pyjwt#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAnnotate PyJWKSet.keys for pyright by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1134\"\u003ejpadilla/pyjwt#1134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: close HTTPError to prevent ResourceWarning on Python 3.14 by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1133\"\u003ejpadilla/pyjwt#1133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove superfluous constants by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1136\"\u003ejpadilla/pyjwt#1136\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1135\"\u003ejpadilla/pyjwt#1135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(tests): enable mypy by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1138\"\u003ejpadilla/pyjwt#1138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 7 to 8 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/jpadilla/pyjwt/pull/1142\"\u003ejpadilla/pyjwt#1142\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1141\"\u003ejpadilla/pyjwt#1141\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[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1145\"\u003ejpadilla/pyjwt#1145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: do not store reference to algorithms dict on PyJWK by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1143\"\u003ejpadilla/pyjwt#1143\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse PyJWK algorithm when encoding without explicit algorithm by \u003ca href=\"https://github.com/jpadilla\"\u003e\u003ccode\u003e@​jpadilla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1148\"\u003ejpadilla/pyjwt#1148\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/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1137\"\u003ejpadilla/pyjwt#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1133\"\u003ejpadilla/pyjwt#1133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt[crypto]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.12.1 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Add missing ``typing_extensions`` dependency for Python \u0026lt; 3.11 in `[#1150](https://github.com/jpadilla/pyjwt/issues/1150) \u0026lt;https://github.com/jpadilla/pyjwt/issues/1150\u0026gt;`__\n\u003ch2\u003e\u003ccode\u003ev2.12.0 \u0026amp;lt;https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\u0026amp;gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAnnotate PyJWKSet.keys for pyright by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1134](https://github.com/jpadilla/pyjwt/issues/1134) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1134\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eClose \u003ccode\u003eHTTPError\u003c/code\u003e response to prevent \u003ccode\u003eResourceWarning\u003c/code\u003e on Python 3.14 by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1133](https://github.com/jpadilla/pyjwt/issues/1133) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1133\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDo not keep \u003ccode\u003ealgorithms\u003c/code\u003e dict in PyJWK instances by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1143](https://github.com/jpadilla/pyjwt/issues/1143) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1143\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eValidate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. by \u003ca href=\"https://github.com/dmbs335\"\u003e\u003ccode\u003e@​dmbs335\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003eGHSA-752w-5fwx-jx9f \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-752w-5fwx-jx9f\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eUse PyJWK algorithm when encoding without explicit algorithm in \u003ccode\u003e[#1148](https://github.com/jpadilla/pyjwt/issues/1148) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1148\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAdded\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Docs: Add ``PyJWKClient`` API reference and document the two-tier caching system (JWK Set cache and signing key LRU cache).\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/a4e1a3d1218b01c5806420b8f16d9308ac4adc30\"\u003e\u003ccode\u003ea4e1a3d\u003c/code\u003e\u003c/a\u003e Add typing_extensions dependency for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/bd9700cca7f9258fadcc429c1034e508025931f2\"\u003e\u003ccode\u003ebd9700c\u003c/code\u003e\u003c/a\u003e Use PyJWK algorithm when encoding without explicit algorithm (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1148\"\u003e#1148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/051ea341b5573fe3edcd53042f347929b92c2b92\"\u003e\u003ccode\u003e051ea34\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/1451d70eca2059bc472703692f0bb0777bc0fe93\"\u003e\u003ccode\u003e1451d70\u003c/code\u003e\u003c/a\u003e fix: do not store reference to algorithms dict on PyJWK (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1143\"\u003e#1143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/f3ba74c106df9ce10e272dfaad96acb4ab3ef5a5\"\u003e\u003ccode\u003ef3ba74c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1145\"\u003e#1145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/0318ffa7b156b01600376e38952bf961382e0724\"\u003e\u003ccode\u003e0318ffa\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1141\"\u003e#1141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/a52753db3c1075ac01337fa8b7cc92b13a19ac09\"\u003e\u003ccode\u003ea52753d\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7 to 8 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1142\"\u003e#1142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/b85050f1d444c6828bb4618ee764443b0a3f5d18\"\u003e\u003ccode\u003eb85050f\u003c/code\u003e\u003c/a\u003e chore(tests): enable mypy (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1138\"\u003e#1138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/1272b264779717cc481c8341f321a7fc8b3aaba6\"\u003e\u003ccode\u003e1272b26\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1135\"\u003e#1135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/99a87287c26cb97c94399084ee4186ee52207a7f\"\u003e\u003ccode\u003e99a8728\u003c/code\u003e\u003c/a\u003e chore: remove superfluous constants (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1136\"\u003e#1136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `phonenumbers` from 9.0.25 to 9.0.26\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/07e2c75b1dc1d94c806755e4842410e19cd1e17e\"\u003e\u003ccode\u003e07e2c75\u003c/code\u003e\u003c/a\u003e Prep for 9.0.26 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/55522da42bff8bd7eefd08b17c978971bc60e135\"\u003e\u003ccode\u003e55522da\u003c/code\u003e\u003c/a\u003e Generated files for metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/commit/8ca762b2309a1df12f2eadf601ce413bf3cd1826\"\u003e\u003ccode\u003e8ca762b\u003c/code\u003e\u003c/a\u003e Merge metadata changes from upstream 9.0.26\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/daviddrysdale/python-phonenumbers/compare/v9.0.25...v9.0.26\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/lcacchiani/siutindei/pull/238","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/lcacchiani%2Fsiutindei/issues/238","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/238/packages"}}]}