{"id":29057,"name":"urllib3","ecosystem":"conda","repository_url":"https://github.com/urllib3/urllib3","issues_count":13,"created_at":"2025-06-07T06:00:49.677Z","updated_at":"2025-06-07T06:00:49.677Z","purl":"pkg:conda/urllib3","metadata":{"id":5284999,"name":"urllib3","ecosystem":"conda","description":"urllib3 is a powerful, sanity-friendly HTTP client for Python. Much of the Python ecosystem already uses urllib3. urllib3 brings many critical features that are missing from the Python standard libraries, such as thread safety, connection pooling, client side ssl/tls verification, support for gzip and deflate encodings, HTTP and SOCKS proxy support, helpers for retrying requests and dealing with HTTP redirects.","homepage":"https://urllib3.readthedocs.io/","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/urllib3/urllib3","keywords_array":[],"namespace":null,"versions_count":39,"first_release_published_at":"2017-09-21T00:54:01.000Z","latest_release_published_at":"2025-01-17T17:08:25.000Z","latest_release_number":"2.3.0","last_synced_at":"2025-05-17T19:06:01.395Z","created_at":"2022-10-03T15:41:46.137Z","updated_at":"2025-05-17T19:06:01.395Z","registry_url":"https://anaconda.org/anaconda/urllib3","install_command":"conda install -c anaconda urllib3","documentation_url":null,"metadata":{},"repo_metadata":{"uuid":"2410676","full_name":"urllib3/urllib3","owner":"urllib3","description":"Python HTTP library with thread-safe connection pooling, file post support, user friendly, and more.","archived":false,"fork":false,"pushed_at":"2023-03-20T20:11:57.000Z","size":7019,"stargazers_count":3309,"open_issues_count":118,"forks_count":1034,"subscribers_count":101,"default_branch":"main","last_synced_at":"2023-03-21T12:41:45.203Z","etag":null,"topics":["http","http-client","python","urllib3"],"latest_commit_sha":null,"homepage":"https://urllib3.readthedocs.io","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"logo_url":null,"metadata":{"files":{"readme":"README.md","changelog":"CHANGES.rst","contributing":"docs/contributing.rst","funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/SECURITY.md","support":null},"funding":{"tidelift":"pypi/urllib3","github":"urllib3","open_collective":"urllib3"}},"created_at":"2011-09-18T18:08:28.000Z","updated_at":"2023-03-20T21:39:59.000Z","dependencies_parsed_at":"2023-01-16T18:30:19.590Z","dependency_job_id":null,"html_url":"https://github.com/urllib3/urllib3","commit_stats":null,"repository_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urllib3%2Furllib3","tags_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urllib3%2Furllib3/tags","manifests_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/urllib3%2Furllib3/manifests","owner_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/urllib3","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":108921946,"host_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names"},"owner_record":{"login":"urllib3","name":"urllib3","uuid":"26825299","kind":"organization","description":"","email":null,"website":"https://urllib3.readthedocs.io","location":null,"twitter":"urllib3","company":null,"avatar_url":"https://avatars.githubusercontent.com/u/26825299?v=4","repositories_count":2,"last_synced_at":"2023-03-12T07:22:33.789Z","metadata":{"has_sponsors_listing":true},"owner_url":"http://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/urllib3"},"tags":[{"name":"1.26.15","sha":"95ca35211d23d8baf7646e1f60aa31e3650178a8","kind":"tag","published_at":"2023-03-10T23:52:07.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.26.15","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.26.15"},{"name":"1.26.14","sha":"f96a1cfc568beddf1e17ce7609609eca40780be5","kind":"tag","published_at":"2023-01-11T12:57:32.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.26.14","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.26.14"},{"name":"2.0.0a3","sha":"2889596e309d30220d1f4ef2e80d4a92a906fa0a","kind":"tag","published_at":"2023-01-11T12:56:56.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/2.0.0a3","html_url":"https://github.com/urllib3/urllib3/releases/tag/2.0.0a3"},{"name":"2.0.0a2","sha":"1af920653cfed1920a576e80cc7a856fe4df2ac9","kind":"tag","published_at":"2022-11-23T22:40:14.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/2.0.0a2","html_url":"https://github.com/urllib3/urllib3/releases/tag/2.0.0a2"},{"name":"1.26.13","sha":"64b7f792c8ab62e301147d4115c4bca98529593a","kind":"tag","published_at":"2022-11-23T21:48:36.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.26.13","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.26.13"},{"name":"2.0.0a1","sha":"612cead3f9704716f4ab2a1334a16e0f05fce942","kind":"tag","published_at":"2022-11-15T14:58:41.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/2.0.0a1","html_url":"https://github.com/urllib3/urllib3/releases/tag/2.0.0a1"},{"name":"1.26.12","sha":"a5b29ac1025f9bb30f2c9b756f3b171389c2c039","kind":"tag","published_at":"2022-08-22T13:15:20.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.26.12","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.26.12"},{"name":"1.26.11","sha":"aa3def7d242525e6e854991247c4b68583d15135","kind":"tag","published_at":"2022-07-25T12:48:07.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.26.11","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.26.11"},{"name":"1.26.10","sha":"ac61b73da703df53707c31030b4ea51aab22d43c","kind":"tag","published_at":"2022-07-07T15:04:38.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.26.10","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.26.10"},{"name":"1.26.9","sha":"6de3330eb54f73a57c7860f75123bde8b043dbd2","kind":"tag","published_at":"2022-03-16T13:26:35.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.26.9","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.26.9"},{"name":"1.26.8","sha":"b1f60e44d43b13e5272d5b6003f125af9c25c8ad","kind":"tag","published_at":"2022-01-07T15:54:56.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.26.8","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.26.8"},{"name":"1.26.7","sha":"342aff50ff300d96a58e9be22f27fcee771ce98d","kind":"tag","published_at":"2021-09-22T17:58:27.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.26.7","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.26.7"},{"name":"1.26.6","sha":"ba95e9eac73452d3bccfb5413b00d9a4fe3e4c31","kind":"commit","published_at":"2021-06-25T13:16:15.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.26.6","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.26.6"},{"name":"1.26.5","sha":"d1616473df94b94f0f5ad19d2a6608cfe93b7cdf","kind":"tag","published_at":"2021-05-26T17:00:10.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.26.5","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.26.5"},{"name":"1.26.4","sha":"a8913042b676c510e94fc2b097f6b514ae11a537","kind":"tag","published_at":"2021-03-15T15:02:16.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.26.4","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.26.4"},{"name":"1.26.3","sha":"361f1e2a61afdef86cb2feb0fa3f302e06c5fe2c","kind":"tag","published_at":"2021-01-26T18:53:41.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.26.3","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.26.3"},{"name":"1.26.2","sha":"dd00949dbded99869981880270d3ec900989e82b","kind":"tag","published_at":"2020-11-12T22:12:40.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.26.2","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.26.2"},{"name":"1.26.1","sha":"969fd3957a652ebe90bfe60483a478ad8b88f44a","kind":"tag","published_at":"2020-11-11T20:19:53.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.26.1","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.26.1"},{"name":"1.26.0","sha":"ddb8c96bd93f3a00fe9eba142e6739533c2b7164","kind":"tag","published_at":"2020-11-10T19:50:47.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.26.0","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.26.0"},{"name":"1.25.11","sha":"9b95f29c575d73260ec4f5a8c0ea368cf242019e","kind":"tag","published_at":"2020-10-19T14:08:52.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.25.11","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.25.11"},{"name":"1.25.10","sha":"3c3fb0299f5e56613003bc293a9a9082e264c982","kind":"tag","published_at":"2020-07-22T15:42:46.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.25.10","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.25.10"},{"name":"1.25.9","sha":"21758b0694ea53b499e832a993e8d1ada01135b2","kind":"tag","published_at":"2020-04-16T15:38:01.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.25.9","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.25.9"},{"name":"1.25.8","sha":"2a57bc5758075a9248cc0d87f66a2ff678338478","kind":"tag","published_at":"2020-01-21T20:37:18.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.25.8","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.25.8"},{"name":"1.25.7","sha":"37ba61a8b8120cbd866d057eaa3936f4b140dee0","kind":"tag","published_at":"2019-11-11T15:06:09.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.25.7","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.25.7"},{"name":"1.25.6","sha":"6b4ac9b6b973c405d3e58aaa4ef1ad86252208c0","kind":"tag","published_at":"2019-09-24T14:33:32.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.25.6","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.25.6"},{"name":"1.25.5","sha":"edc3ddb3d1cbc5871df4a17a53ca53be7b37facc","kind":"commit","published_at":"2019-09-20T01:28:30.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.25.5","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.25.5"},{"name":"1.25.4","sha":"7e856c04723036934fe314c63701466e4f42d2ee","kind":"tag","published_at":"2019-09-19T14:46:31.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.25.4","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.25.4"},{"name":"1.25.3","sha":"337992aba77104fb84e7b14f5a2c9aa1d3039415","kind":"tag","published_at":"2019-05-23T18:59:08.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.25.3","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.25.3"},{"name":"1.24.3","sha":"9c61bdaafc9022a8f1e1d0a5334c46b61651508a","kind":"tag","published_at":"2019-05-02T15:35:30.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.24.3","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.24.3"},{"name":"1.25.2","sha":"49eea8082ab34094d0c53f1d26e5c588d5372d74","kind":"tag","published_at":"2019-04-29T13:08:14.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.25.2","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.25.2"},{"name":"1.25.1","sha":"85e7798378fe1eda5c7425c0141c045974bd976f","kind":"tag","published_at":"2019-04-24T15:18:04.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.25.1","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.25.1"},{"name":"1.25","sha":"c3157af5e3b272d3fbffef23ee6215a229f8c61f","kind":"tag","published_at":"2019-04-22T13:54:16.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.25","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.25"},{"name":"1.24.2","sha":"1efadf43dc63317cd9eaa3e0fdb9e05ab07254b1","kind":"tag","published_at":"2019-04-17T17:48:51.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.24.2","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.24.2"},{"name":"1.24.1","sha":"a6ec68a5c5c5743c59fe5c62c635c929586c429b","kind":"tag","published_at":"2018-11-02T19:10:30.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.24.1","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.24.1"},{"name":"1.24","sha":"ef0c74542abe69421a86c4d3c6a86fe43cb809a4","kind":"tag","published_at":"2018-10-16T17:48:09.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.24","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.24"},{"name":"1.23","sha":"7c216f433e39e184b84cbfa49e41135a89e4baa0","kind":"tag","published_at":"2018-06-05T03:21:36.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.23","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.23"},{"name":"1.22","sha":"8e049799777cdf592ae54ae762d140151766123c","kind":"tag","published_at":"2017-07-20T09:04:30.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.22","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.22"},{"name":"1.21.1","sha":"bce03aa7f06669254e63baef54fb6278e7fa6728","kind":"tag","published_at":"2017-05-02T10:56:34.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.21.1","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.21.1"},{"name":"1.21","sha":"8c1d67f6b5ff465ccf3b8233c0b9539a29a04732","kind":"tag","published_at":"2017-04-25T11:10:25.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.21","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.21"},{"name":"1.20","sha":"50705abd83be4ad7997eeefe9e732564af1db118","kind":"tag","published_at":"2017-01-19T09:51:58.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.20","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.20"},{"name":"1.19.1","sha":"7b909be3346b3f6c88df086ec6d8063fa7b271c8","kind":"tag","published_at":"2016-11-16T10:11:27.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.19.1","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.19.1"},{"name":"1.19","sha":"bb7e6685595c213dc6e5b41342029873a5cd0799","kind":"tag","published_at":"2016-11-03T15:17:53.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.19","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.19"},{"name":"1.18.1","sha":"0e1f2f9173a4395f77a911cd27d582299524a3de","kind":"tag","published_at":"2016-10-27T11:00:42.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.18.1","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.18.1"},{"name":"1.18","sha":"7d01b990cf77b33659e562189e6962862b292170","kind":"tag","published_at":"2016-09-26T08:50:01.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.18","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.18"},{"name":"1.17","sha":"a8948b82f1a54c8f5ffabb01c52f2098785013a2","kind":"tag","published_at":"2016-09-06T14:24:27.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.17","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.17"},{"name":"1.16","sha":"52463752d3a79790b43e23182bcc750d6bb53554","kind":"commit","published_at":"2016-06-11T20:33:54.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.16","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.16"},{"name":"1.15.1","sha":"2762e84dae1858866a915f427ff1b92e825ea1c6","kind":"tag","published_at":"2016-04-11T17:25:35.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.15.1","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.15.1"},{"name":"1.15","sha":"32cfb59710af10bf5febd9ce80d1e22f0047c0b1","kind":"commit","published_at":"2016-04-06T19:16:59.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.15","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.15"},{"name":"1.14","sha":"27df29b1d94d6c50af1eb1bd85b4ee12adf8a3c2","kind":"commit","published_at":"2015-12-29T20:28:22.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.14","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.14"},{"name":"1.13.1","sha":"12d04b7cc8cefce176f5788485db7b0692b9adb2","kind":"commit","published_at":"2015-12-18T22:47:27.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.13.1","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.13.1"},{"name":"1.13","sha":"d5526e25c91876e8785edbe68424d5cc3f1edc23","kind":"commit","published_at":"2015-12-14T21:09:51.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.13","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.13"},{"name":"1.12","sha":"d7d9caafdb9e5fedd2dd3841e1fd40f1b7a5e57c","kind":"commit","published_at":"2015-09-06T18:40:23.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.12","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.12"},{"name":"1.11","sha":"9fc5e52e52aafd942fbfba428aff37cd61fde834","kind":"commit","published_at":"2015-07-21T13:42:33.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.11","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.11"},{"name":"1.10.4","sha":"8434c77d845255c4002b505c6c2d79c3b35def0d","kind":"commit","published_at":"2015-05-03T14:13:08.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.10.4","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.10.4"},{"name":"1.10.3","sha":"0b744993bbe30fe6e3e4e0c93416412d8e598301","kind":"commit","published_at":"2015-04-21T20:05:42.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.10.3","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.10.3"},{"name":"1.10.2","sha":"e84a91e466ed7d9b4d1bd2f8dbc773a06f7fc6ad","kind":"commit","published_at":"2015-02-25T23:19:05.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.10.2","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.10.2"},{"name":"1.10.1","sha":"85dfc16817df1e3604c238ad5d64f3b229e0598b","kind":"commit","published_at":"2015-02-11T02:47:59.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.10.1","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.10.1"},{"name":"1.10","sha":"f653f3907a15b4dc0dd60d0697777ea4b79568fc","kind":"commit","published_at":"2014-12-14T21:25:45.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.10","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.10"},{"name":"1.9.1","sha":"f8fc8f8df2af46ff1fa531bf690a27fce70c93f8","kind":"commit","published_at":"2014-09-13T18:18:58.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.9.1","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.9.1"},{"name":"1.9","sha":"c8128a876a138621c8d4f05998518f4d6ac9fa87","kind":"commit","published_at":"2014-07-07T20:56:11.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.9","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.9"},{"name":"1.8.3","sha":"d0280699c5a6f134bc926162a4fad14a5675372d","kind":"commit","published_at":"2014-06-23T23:44:40.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.8.3","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.8.3"},{"name":"1.8.2","sha":"576965bbaffb7b52773fac71abeaf0aa44da74fc","kind":"commit","published_at":"2014-04-18T06:38:12.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.8.2","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.8.2"},{"name":"1.8.1","sha":"6cd4138c21ed1aed35bf826ddd0b5ff7bac3c687","kind":"commit","published_at":"2014-04-18T05:37:15.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.8.1","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.8.1"},{"name":"1.8","sha":"8a8c601beee813acb5ca8d3e934f2c4aba8dc6ff","kind":"commit","published_at":"2014-03-04T19:21:33.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.8","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.8"},{"name":"1.7.1","sha":"0a037a2faa0a280ed904008380fdf5c17533421a","kind":"commit","published_at":"2013-09-25T16:04:10.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.7.1","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.7.1"},{"name":"1.7","sha":"8b0cec5804933251d557abfbc721e75ff34c1462","kind":"commit","published_at":"2013-08-14T21:44:40.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.7","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.7"},{"name":"1.6","sha":"dde0d120bfaab642e604b8ba65d99d6bd4599b96","kind":"commit","published_at":"2013-04-25T18:48:45.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.6","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.6"},{"name":"1.5","sha":"f7eaa46ff1a96c5f0d209d8f2cedb48e759f522b","kind":"commit","published_at":"2012-08-02T17:07:42.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.5","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.5"},{"name":"1.4","sha":"1ffd99e57acb3edfd2e04eb62de23e3f0813fe01","kind":"commit","published_at":"2012-06-16T20:53:11.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.4","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.4"},{"name":"1.3","sha":"5366c01258e5f0ccd77252a361c2723c2481d4df","kind":"commit","published_at":"2012-03-25T18:22:36.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.3","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.3"},{"name":"1.2.1","sha":"a0cd4effae04788b72bd68fba18137bbdc03edbb","kind":"commit","published_at":"2012-02-05T20:13:27.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.2.1","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.2.1"},{"name":"1.2","sha":"86cf15473413ecf15c513ada57e36ff25ceb9776","kind":"commit","published_at":"2012-01-29T23:54:06.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.2","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.2"},{"name":"1.1","sha":"c90d7e578e7b393ecb7b8c93807c989b9bc5aefd","kind":"commit","published_at":"2012-01-07T22:39:57.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.1","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.1"},{"name":"1.0.2","sha":"fffd5b60a1b3dde980766a20382369e8ae7a4f19","kind":"commit","published_at":"2011-11-04T16:43:34.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.0.2","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.0.2"},{"name":"1.0.1","sha":"9f6e2eaae4b8ef84b6d3dddf55197c4d17946ca1","kind":"commit","published_at":"2011-10-11T01:57:28.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.0.1","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.0.1"},{"name":"1.0","sha":"04c6c18b6630386334fb010079a3ae3cdc59eea2","kind":"commit","published_at":"2011-10-09T21:49:47.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/1.0","html_url":"https://github.com/urllib3/urllib3/releases/tag/1.0"},{"name":"0.4.1","sha":"da51a324362069a5d557530a9d5d79a10826c94a","kind":"commit","published_at":"2011-07-18T03:22:25.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/0.4.1","html_url":"https://github.com/urllib3/urllib3/releases/tag/0.4.1"},{"name":"0.4","sha":"25bd17933f213ea5466cea7885d4a21bcfbdc828","kind":"commit","published_at":"2011-03-30T19:31:41.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/0.4","html_url":"https://github.com/urllib3/urllib3/releases/tag/0.4"},{"name":"0.3.1","sha":"f330cd2df28f326d7b97d09f917f16c3ee30ab0f","kind":"commit","published_at":"2010-07-13T23:49:09.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/0.3.1","html_url":"https://github.com/urllib3/urllib3/releases/tag/0.3.1"},{"name":"0.3","sha":"d4caff242edfe325aae3497b7a37895e38ff659f","kind":"commit","published_at":"2010-05-25T20:57:57.000Z","download_url":"https://codeload.github.com/urllib3/urllib3/tar.gz/0.3","html_url":"https://github.com/urllib3/urllib3/releases/tag/0.3"}]},"repo_metadata_updated_at":"2023-03-22T07:24:25.832Z","dependent_packages_count":25,"downloads":null,"downloads_period":null,"dependent_repos_count":2256,"rankings":{"downloads":null,"dependent_repos_count":1.228878648233487,"dependent_packages_count":2.5499231950844856,"stargazers_count":14.101382488479263,"forks_count":10.87557603686636,"docker_downloads_count":null,"average":7.188940092165899},"purl":"pkg:conda/urllib3","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/conda/urllib3","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/conda/urllib3","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/conda/urllib3/dependencies","status":null,"funding_links":["https://tidelift.com/funding/github/pypi/urllib3","https://github.com/sponsors/urllib3","https://opencollective.com/urllib3"],"critical":false,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/urllib3/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/urllib3/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/urllib3/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages/urllib3/related_packages","maintainers":[],"registry":{"name":"anaconda.org","url":"https://anaconda.org","ecosystem":"conda","default":true,"packages_count":4119,"maintainers_count":0,"namespaces_count":0,"keywords_count":2728,"github":"Anaconda","metadata":{"kind":"anaconda","key":"Main","api":"https://repo.ananconda.com","funded_packages_count":465},"icon_url":"https://github.com/Anaconda.png","created_at":"2022-10-03T15:37:08.736Z","updated_at":"2025-06-07T05:38:45.517Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/anaconda.org/namespaces"}},"unique_repositories_count":8,"unique_repositories_count_past_30_days":1,"recent_issues":[{"uuid":"4437947118","node_id":"PR_kwDOOFC0s87bHlb4","number":1,"state":"open","title":"Bump the uv group across 3 directories with 10 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-13T12:43:09.000Z","updated_at":"2026-05-13T12:43:36.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"uv","update_count":10,"packages":[{"name":"starlette","old_version":"0.47.3","new_version":"0.49.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"python-multipart","old_version":"0.0.20","new_version":"0.0.27","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"python-dotenv","old_version":"1.1.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"black","old_version":"25.1.0","new_version":"26.3.1","repository_url":"https://github.com/psf/black"},{"name":"pillow","old_version":"11.3.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"}],"path":null,"ecosystem":"conda"},"body":"Bumps the uv group with 8 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [starlette](https://github.com/Kludex/starlette) | `0.47.3` | `0.49.1` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.20` | `0.0.27` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.1` | `1.2.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.3` |\n| [black](https://github.com/psf/black) | `25.1.0` | `26.3.1` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.3.0` | `12.2.0` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.7.0` |\n\nBumps the uv group with 7 updates in the /examples/clients/simple-chatbot directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [starlette](https://github.com/Kludex/starlette) | `0.45.2` | `0.49.1` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.4` | `9.0.3` |\n| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `1.2.0` | `1.23.0` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.33.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.3.0` | `2.7.0` |\n\nBumps the uv group with 4 updates in the /examples/clients/simple-auth-client directory: [starlette](https://github.com/Kludex/starlette), [python-multipart](https://github.com/Kludex/python-multipart), [python-dotenv](https://github.com/theskumar/python-dotenv) and [pytest](https://github.com/pytest-dev/pytest).\n\nUpdates `starlette` from 0.47.3 to 0.49.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.49.1\u003c/h2\u003e\n\u003cp\u003eThis release fixes a security vulnerability in the parsing logic of the \u003ccode\u003eRange\u003c/code\u003e header in \u003ccode\u003eFileResponse\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eYou can view the full security advisory: \u003ca href=\"https://github.com/Kludex/starlette/security/advisories/GHSA-7f5h-v6xp-fcq8\"\u003eGHSA-7f5h-v6xp-fcq8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize the HTTP ranges parsing logic \u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e4ea6e22b489ec388d6004cfbca52dd5b147127c5\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.0...0.49.1\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.0...0.49.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.49.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eencoding\u003c/code\u003e parameter to \u003ccode\u003eConfig\u003c/code\u003e class \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003e#2996\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport multiple cookie headers in \u003ccode\u003eRequest.cookies\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3029\"\u003e#3029\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLiteral\u003c/code\u003e type for \u003ccode\u003eWebSocketEndpoint\u003c/code\u003e encoding values \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003e#3027\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDo not pollute exception context in \u003ccode\u003eMiddleware\u003c/code\u003e when using \u003ccode\u003eBaseHTTPMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003e#2976\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TheWesDias\"\u003e\u003ccode\u003e@​TheWesDias\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3017\"\u003eKludex/starlette#3017\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gmos2104\"\u003e\u003ccode\u003e@​gmos2104\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003eKludex/starlette#3027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/secrett2633\"\u003e\u003ccode\u003e@​secrett2633\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003eKludex/starlette#2996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adam-sikora\"\u003e\u003ccode\u003e@​adam-sikora\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003eKludex/starlette#2976\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.48.0...0.49.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.48.0...0.49.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.48.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd official Python 3.14 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3013\"\u003e#3013\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ca href=\"https://www.rfc-editor.org/rfc/rfc9110\"\u003eRFC9110\u003c/a\u003e http status names \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003e#2939\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yakimka\"\u003e\u003ccode\u003e@​yakimka\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2943\"\u003eKludex/starlette#2943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mbeijen\"\u003e\u003ccode\u003e@​mbeijen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003eKludex/starlette#2939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.47.3...0.48.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.47.3...0.48.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.49.1 (October 28, 2025)\u003c/h2\u003e\n\u003cp\u003eThis release fixes a security vulnerability in the parsing logic of the \u003ccode\u003eRange\u003c/code\u003e header in \u003ccode\u003eFileResponse\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eYou can view the full security advisory: \u003ca href=\"https://github.com/Kludex/starlette/security/advisories/GHSA-7f5h-v6xp-fcq8\"\u003eGHSA-7f5h-v6xp-fcq8\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize the HTTP ranges parsing logic \u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e4ea6e22b489ec388d6004cfbca52dd5b147127c5\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.49.0 (October 28, 2025)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eencoding\u003c/code\u003e parameter to \u003ccode\u003eConfig\u003c/code\u003e class \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003e#2996\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport multiple cookie headers in \u003ccode\u003eRequest.cookies\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3029\"\u003e#3029\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLiteral\u003c/code\u003e type for \u003ccode\u003eWebSocketEndpoint\u003c/code\u003e encoding values \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003e#3027\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDo not pollute exception context in \u003ccode\u003eMiddleware\u003c/code\u003e when using \u003ccode\u003eBaseHTTPMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003e#2976\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.48.0 (September 13, 2025)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd official Python 3.14 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3013\"\u003e#3013\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ca href=\"https://www.rfc-editor.org/rfc/rfc9110\"\u003eRFC9110\u003c/a\u003e http status names \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003e#2939\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/7e4b7428f273dbdc875dcd036d20804bcfc7b2ee\"\u003e\u003ccode\u003e7e4b742\u003c/code\u003e\u003c/a\u003e Version 0.49.1 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3047\"\u003e#3047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e\u003ccode\u003e4ea6e22\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/7d88ea6f8ec8aa99cdb5fc7a10b88db5aadfdfee\"\u003e\u003ccode\u003e7d88ea6\u003c/code\u003e\u003c/a\u003e Version 0.49.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3046\"\u003e#3046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/26d66bbfb05c7bbecbbb57106c65f33682f8174e\"\u003e\u003ccode\u003e26d66bb\u003c/code\u003e\u003c/a\u003e Do not pollute exception context in Middleware (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/a59397db889e3a96c4f34b1406957a3b92e1e8b5\"\u003e\u003ccode\u003ea59397d\u003c/code\u003e\u003c/a\u003e Set encodings when reading config files (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3b7f0cbf598be305528a498a35089ce723060372\"\u003e\u003ccode\u003e3b7f0cb\u003c/code\u003e\u003c/a\u003e test: add test for unknown status (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3035\"\u003e#3035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/b09ce1a99d352ee6f5b896597f03a1a57507afcd\"\u003e\u003ccode\u003eb09ce1a\u003c/code\u003e\u003c/a\u003e docs: fix legibility issues on sponsorship page (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3039\"\u003e#3039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/0f0edcf8007412d9536bf8714c5815ce8f5dba4b\"\u003e\u003ccode\u003e0f0edcf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Add Marcelo Trylesinski to the license (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3025\"\u003e#3025\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3044\"\u003e#3044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3912d6313730cc6004dfb4436e37dbc1a81db7c8\"\u003e\u003ccode\u003e3912d63\u003c/code\u003e\u003c/a\u003e docs: add social icons (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3038\"\u003e#3038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4915a9309fcad58ac08b9fa550563d3287b531ad\"\u003e\u003ccode\u003e4915a93\u003c/code\u003e\u003c/a\u003e Add discord to README/docs (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3034\"\u003e#3034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.47.3...0.49.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.20 to 0.0.27\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.27\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePass parse offsets via constructors by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/268\"\u003eKludex/python-multipart#268\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd multipart header limits by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/267\"\u003eKludex/python-multipart#267\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.26\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before first multipart boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003eKludex/python-multipart#262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003eKludex/python-multipart#259\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply Apache-2.0 properly by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003eKludex/python-multipart#247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003eKludex/python-multipart#252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003eKludex/python-multipart#230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003eKludex/python-multipart#254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove custom FormParser classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003eKludex/python-multipart#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003eKludex/python-multipart#258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd MIME content type info to File by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003eKludex/python-multipart#143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003eKludex/python-multipart#244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003eKludex/python-multipart#196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e by \u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.22\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/blob/main/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.27 (2026-04-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd multipart header limits \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/267\"\u003e#267\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePass parse offsets via constructors \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/268\"\u003e#268\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.26 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before the first multipart boundary more efficiently \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003e#262\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing multipart boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003e#259\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.25 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd MIME content type info to \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003e#143\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003e#258\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRemove custom \u003ccode\u003eFormParser\u003c/code\u003e classes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003e#257\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003e#254\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003e#230\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003e#252\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eApply Apache-2.0 properly \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003e#247\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.24 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003e#244\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.23 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003e#196\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003e#229\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003e#227\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.22 (2026-01-25)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop directory path from filename in \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://github.com/Kludex/python-multipart/commit/9433f4bbc9652bdde82bbe380984e32f8cfc89c4\"\u003e9433f4b\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.21 (2025-12-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 and drop EOL 3.8 and 3.9 \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/216\"\u003e#216\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6d1d6892a6b01b25da6f3e7b097e8e06c57fb250\"\u003e\u003ccode\u003e6d1d689\u003c/code\u003e\u003c/a\u003e Version 0.0.27 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/272\"\u003e#272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/0b10220b1555af068a2bc8b198022b1ae238200f\"\u003e\u003ccode\u003e0b10220\u003c/code\u003e\u003c/a\u003e Run CI on main branch pull requests (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/271\"\u003e#271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/3e64f5f8caba0e5d391b0c1ad0f1c2edf9e8f911\"\u003e\u003ccode\u003e3e64f5f\u003c/code\u003e\u003c/a\u003e Add multipart header limits (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/eb109cc4eb8174f2a7efc1ba894b1bf6425c0b14\"\u003e\u003ccode\u003eeb109cc\u003c/code\u003e\u003c/a\u003e Pass parse offsets via constructors (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/78e29abb9a339598975beee093a770ec3033f76d\"\u003e\u003ccode\u003e78e29ab\u003c/code\u003e\u003c/a\u003e Bump pytest from 9.0.2 to 9.0.3 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/266\"\u003e#266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/b2ddd0982bdf0fe852e4f3baa12122d2827af46c\"\u003e\u003ccode\u003eb2ddd09\u003c/code\u003e\u003c/a\u003e fuzz: Enhance fuzzing capabilities with new chunked and boundary tests (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/28f47859b4a40c2e11e02dc514b2e9743ceedd2e\"\u003e\u003ccode\u003e28f4785\u003c/code\u003e\u003c/a\u003e Version 0.0.26 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d4452a78bbde94995dd3c0d1b4aff3610a5c472f\"\u003e\u003ccode\u003ed4452a7\u003c/code\u003e\u003c/a\u003e Silently discard epilogue data after the closing boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/259\"\u003e#259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6a7b76dd2653d99d8e5981d7ff09a4a047750b37\"\u003e\u003ccode\u003e6a7b76d\u003c/code\u003e\u003c/a\u003e Skip preamble before first multipart boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/4addb60350fc843f77a1502f14247db91930b3bf\"\u003e\u003ccode\u003e4addb60\u003c/code\u003e\u003c/a\u003e Version 0.0.25 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.20...0.0.27\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.1.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (#)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/607\"\u003etheskumar/python-dotenv#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e#790c5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by \u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eskip 000 permission tests for root user by \u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/593\"\u003etheskumar/python-dotenv#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Windows testing to CI by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/604\"\u003etheskumar/python-dotenv#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove workflow efficiency with best practices by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/609\"\u003etheskumar/python-dotenv#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the use of \u003ccode\u003esh\u003c/code\u003e in tests by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/612\"\u003etheskumar/python-dotenv#612\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/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpackham-atlnz\"\u003e\u003ccode\u003e@​cpackham-atlnz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/597\"\u003etheskumar/python-dotenv#597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.2] - 2026-03-01\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eDropped Support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in [790c5c0]\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by [\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/590\"\u003e#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.1] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove more config to \u003ccode\u003epyproject.toml\u003c/code\u003e, removed \u003ccode\u003esetup.cfg\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for reading \u003ccode\u003e.env\u003c/code\u003e from FIFOs (Unix) by [\u003ca href=\"https://github.com/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade build system to use PEP 517 \u0026amp; PEP 518 to use \u003ccode\u003ebuild\u003c/code\u003e and \u003ccode\u003epyproject.toml\u003c/code\u003e by [\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/583\"\u003e#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 by [\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/579\"\u003e#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for disabling of \u003ccode\u003eload_dotenv()\u003c/code\u003e using \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e env var. by [\u003ca href=\"https://github.com/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/569\"\u003e#569\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/36004e0e34be7665ff2b11a8a4005144f76f176d\"\u003e\u003ccode\u003e36004e0\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.1 → 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/eb202520e5933c9daf42501e1e42fdb0144002c8\"\u003e\u003ccode\u003eeb20252\u003c/code\u003e\u003c/a\u003e docs: update changelog for v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e\u003ccode\u003e790c5c0\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/43340da220fb4ca4f95357bbe21a3c7f8f1278b1\"\u003e\u003ccode\u003e43340da\u003c/code\u003e\u003c/a\u003e Remove the use of \u003ccode\u003esh\u003c/code\u003e in tests (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/09d7cee32459e7abdcb5c9d8122a552589c06a9c\"\u003e\u003ccode\u003e09d7cee\u003c/code\u003e\u003c/a\u003e docs: clarify override behavior and document FIFO support (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/610\"\u003e#610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/c8de2887c00198c22842c5ae5e92d1747467363c\"\u003e\u003ccode\u003ec8de288\u003c/code\u003e\u003c/a\u003e ci: improve workflow efficiency with best practices (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/7bd9e3dbfedc0983ad7d56d5570013035242bdf4\"\u003e\u003ccode\u003e7bd9e3d\u003c/code\u003e\u003c/a\u003e Add Windows testing to CI (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1baaf04f336072e0ee324d5df9563ec767f14f81\"\u003e\u003ccode\u003e1baaf04\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support and update to PyPy 3.11 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a22cf8993804aeede0c20b75bb1a29d3a99e9dc\"\u003e\u003ccode\u003e4a22cf8\u003c/code\u003e\u003c/a\u003e ci: enable testing on Python 3.14t (free-threaded) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e2e8e776b42e382ae38b44d3982dd649e7507dd4\"\u003e\u003ccode\u003ee2e8e77\u003c/code\u003e\u003c/a\u003e Fix license specifier (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.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\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.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 `black` from 25.1.0 to 26.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent Jupyter notebook magic masking collisions from corrupting cells by using\nexact-length placeholders for short magics and aborting if a placeholder can no longer\nbe unmasked safely (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways hash cache filename components derived from \u003ccode\u003e--python-cell-magics\u003c/code\u003e so custom\nmagic names cannot affect cache paths (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable browser-originated requests by default, add configurable origin allowlisting\nand request body limits, and bound executor submissions to improve backpressure\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't double-decode input, causing non-UTF-8 files to be corrupted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4964\"\u003e#4964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on standalone comment in lambda default arguments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4993\"\u003e#4993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve parentheses when \u003ccode\u003e# type: ignore\u003c/code\u003e comments would be merged with other\ncomments on the same line, preventing AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4888\"\u003e#4888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where \u003ccode\u003eif\u003c/code\u003e guards in \u003ccode\u003ecase\u003c/code\u003e blocks were incorrectly split when the pattern had\na trailing comma (\u003ca href=\"https://redirect.github.com/psf/black/issues/4884\"\u003e#4884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003estring_processing\u003c/code\u003e crashing on unassigned long string literals with trailing\ncommas (one-item tuples) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4929\"\u003e#4929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify implementation of the power operator \u0026quot;hugging\u0026quot; logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4918\"\u003e#4918\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in\nfrozen environments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4930\"\u003e#4930\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce winloop for windows as an alternative to uvloop (\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated function \u003ccode\u003euvloop.install()\u003c/code\u003e in favor of \u003ccode\u003euvloop.new_event_loop()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003emaybe_install_uvloop\u003c/code\u003e function to \u003ccode\u003emaybe_use_uvloop\u003c/code\u003e to simplify loop\ninstallation and creation of either a uvloop/winloop evenloop or default eventloop\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\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/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 26.3.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent Jupyter notebook magic masking collisions from corrupting cells by using\nexact-length placeholders for short magics and aborting if a placeholder can no longer\nbe unmasked safely (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways hash cache filename components derived from \u003ccode\u003e--python-cell-magics\u003c/code\u003e so custom\nmagic names cannot affect cache paths (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable browser-originated requests by default, add configurable origin allowlisting\nand request body limits, and bound executor submissions to improve backpressure\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 26.3.0\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't double-decode input, causing non-UTF-8 files to be corrupted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4964\"\u003e#4964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on standalone comment in lambda default arguments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4993\"\u003e#4993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve parentheses when \u003ccode\u003e# type: ignore\u003c/code\u003e comments would be merged with other\ncomments on the same line, preventing AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4888\"\u003e#4888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where \u003ccode\u003eif\u003c/code\u003e guards in \u003ccode\u003ecase\u003c/code\u003e blocks were incorrectly split when the pattern had\na trailing comma (\u003ca href=\"https://redirect.github.com/psf/black/issues/4884\"\u003e#4884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003estring_processing\u003c/code\u003e crashing on unassigned long string literals with trailing\ncommas (one-item tuples) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4929\"\u003e#4929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify implementation of the power operator \u0026quot;hugging\u0026quot; logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4918\"\u003e#4918\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in\nfrozen environments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4930\"\u003e#4930\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce winloop for windows as an alternative to uvloop (\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated function \u003ccode\u003euvloop.install()\u003c/code\u003e in favor of \u003ccode\u003euvloop.new_event_loop()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003emaybe_install_uvloop\u003c/code\u003e function to \u003ccode\u003emaybe_use_uvloop\u003c/code\u003e to simplify loop\ninstallation and creation of either a uvloop/winloop eventloop or default eventloop\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\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/psf/black/commit/c6755bb741b6481d6b3d3bb563c83fa060db96c9\"\u003e\u003ccode\u003ec6755bb\u003c/code\u003e\u003c/a\u003e Prepare release 26.3.1 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5046\"\u003e#5046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/69973fd6950985fbeb1090d96da717dc4d8380b0\"\u003e\u003ccode\u003e69973fd\u003c/code\u003e\u003c/a\u003e Harden blackd browser-facing request handling (\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/4937fe6cf241139ddbfc16b0bdbb5b422798909d\"\u003e\u003ccode\u003e4937fe6\u003c/code\u003e\u003c/a\u003e Fix some shenanigans with the cache file and IPython (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2e641d174469c505d5ae905e75d4c769597e681f\"\u003e\u003ccode\u003e2e641d1\u003c/code\u003e\u003c/a\u003e docs: remove outdated Black Playground references (\u003ca href=\"https://redirect.github.com/psf/black/issues/5044\"\u003e#5044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c014b22a2d5e0632587b47b81151658bddfa0b88\"\u003e\u003ccode\u003ec014b22\u003c/code\u003e\u003c/a\u003e Remove unused internal code (\u003ca href=\"https://redirect.github.com/psf/black/issues/5041\"\u003e#5041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0dae20b2d009f2f03de8696d06b0c947d3abafc9\"\u003e\u003ccode\u003e0dae20b\u003c/code\u003e\u003c/a\u003e Add new changelog (\u003ca href=\"https://redirect.github.com/psf/black/issues/5036\"\u003e#5036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c5c1cbddd92cecb554ac2a77a24139dd76831030\"\u003e\u003ccode\u003ec5c1cbd\u003c/code\u003e\u003c/a\u003e Minor release patches (\u003ca href=\"https://redirect.github.com/psf/black/issues/5035\"\u003e#5035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7e5a828c37d71b6a6666e28eed444816def6a8f4\"\u003e\u003ccode\u003e7e5a828\u003c/code\u003e\u003c/a\u003e docs: clarify relationship between Black style and PEP 8 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5025\"\u003e#5025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/69705deb8776e7c5e585668da106d1abe2cb8d77\"\u003e\u003ccode\u003e69705de\u003c/code\u003e\u003c/a\u003e docs: add clearer pyproject configuration guidance (\u003ca href=\"https://redirect.github.com/psf/black/issues/5026\"\u003e#5026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/35ea67920b7f6ac8e09be1c47278752b1e827f76\"\u003e\u003ccode\u003e35ea679\u003c/code\u003e\u003c/a\u003e Prepare release 26.3.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5032\"\u003e#5032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.1.0...26.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 11.3.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/3c41c095064200a02672d89cc5ff629eaf4b0d4f\"\u003e\u003ccode\u003e3c41c09\u003c/code\u003e\u003c/a\u003e 12.2.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cdaa29eb520291c4f1fb50fb71ae46502d41e460\"\u003e\u003ccode\u003ecdaa29e\u003c/code\u003e\u003c/a\u003e Check calloc return value (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/585b2f5a780722c8a5bfffb3a40f7f42e8a205be\"\u003e\u003ccode\u003e585b2f5\u003c/code\u003e\u003c/a\u003e Check calloc return value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ecf011ea15991d4cebacd946e58270cc30b0f2c1\"\u003e\u003ccode\u003eecf011e\u003c/code\u003e\u003c/a\u003e Check all allocs in the Arrow tree (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cf6de8ca9b23e714aa5310e1c791eda66fc0b670\"\u003e\u003ccode\u003ecf6de8c\u003c/code\u003e\u003c/a\u003e Reject non-numeric elements inside list coords (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ffdcede6516b28d9667c92929854023d17048b64\"\u003e\u003ccode\u003effdcede\u003c/code\u003e\u003c/a\u003e Update 12.2.0 release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/7929d7760fe5a307ba5ae6eabdf70ae4486b147c\"\u003e\u003ccode\u003e7929d77\u003c/code\u003e\u003c/a\u003e Added security release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c4f7aa5dfb4dbd1242978ac235e01b9934ec6d3c\"\u003e\u003ccode\u003ec4f7aa5\u003c/code\u003e\u003c/a\u003e Added security release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/22cdb5f2e4b15250c06563b1124ac1667342712f\"\u003e\u003ccode\u003e22cdb5f\u003c/code\u003e\u003c/a\u003e Move variable declaration inside define (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/fc15b3b01899408ec989d7804c5283e13802d057\"\u003e\u003ccode\u003efc15b3b\u003c/code\u003e\u003c/a\u003e Resize tall images vertically first (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9524\"\u003e#9524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/11.3.0...12.2.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.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 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/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\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\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.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.5.0 to 2.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.7.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cp\u003eAddressed high-severity security issues. Impact was limited to specific use cases detailed in the accompanying advisories; overall user exposure was estimated to be ma...\n\n_Description has been truncated_","html_url":"https://github.com/HarleyCoops/python-sdk/pull/1","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarleyCoops%2Fpython-sdk/issues/1","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1/packages"},{"uuid":"4140756996","node_id":"PR_kwDORAFpoM7Nlb-8","number":25,"state":"closed","title":"chore(deps): bump the uv group across 2 directories with 7 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-29T23:51:41.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-26T05:27:31.000Z","updated_at":"2026-03-29T23:51:43.000Z","time_to_close":325450,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"uv","update_count":7,"packages":[{"name":"starlette","old_version":"0.46.2","new_version":"0.49.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"cryptography","old_version":"45.0.3","new_version":"46.0.5","repository_url":"https://github.com/pyca/cryptography"},{"name":"protobuf","old_version":"5.29.5","new_version":"5.29.6","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"pyasn1","old_version":"0.6.1","new_version":"0.6.3","repository_url":"https://github.com/pyasn1/pyasn1"},{"name":"requests","old_version":"2.32.3","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"urllib3","old_version":"2.4.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"}],"path":null,"ecosystem":"conda"},"body":"Bumps the uv group with 3 updates in the / directory: [pyasn1](https://github.com/pyasn1/pyasn1), [requests](https://github.com/psf/requests) and [werkzeug](https://github.com/pallets/werkzeug).\nBumps the uv group with 6 updates in the /src/a2a_servers directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [starlette](https://github.com/Kludex/starlette) | `0.46.2` | `0.49.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.3` | `46.0.5` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.5` | `5.29.6` |\n| [pyasn1](https://github.com/pyasn1/pyasn1) | `0.6.1` | `0.6.3` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.33.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.4.0` | `2.6.3` |\n\n\nUpdates `pyasn1` from 0.6.2 to 0.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyasn1/pyasn1/releases\"\u003epyasn1's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 0.6.3\u003c/h2\u003e\n\u003cp\u003eIt's a minor release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded nesting depth limit to ASN.1 decoder to prevent stack overflow from deeply nested structures (CVE-2026-30922).\u003c/li\u003e\n\u003cli\u003eFixed OverflowError from oversized BER length field.\u003c/li\u003e\n\u003cli\u003eFixed DeprecationWarning stacklevel for deprecated attributes.\u003c/li\u003e\n\u003cli\u003eFixed asDateTime incorrect fractional seconds parsing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAll changes are noted in the \u003ca href=\"https://github.com/pyasn1/pyasn1/blob/master/CHANGES.rst\"\u003eCHANGELOG\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/pyasn1/pyasn1/blob/main/CHANGES.rst\"\u003epyasn1's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRevision 0.6.3, released 16-03-2026\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-30922 (GHSA-jr27-m4p2-rc6r): Added nesting depth\nlimit to ASN.1 decoder to prevent stack overflow from deeply\nnested structures (thanks for reporting, romanticpragmatism)\u003c/li\u003e\n\u003cli\u003eFixed OverflowError from oversized BER length field\n[issue \u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/54\"\u003e#54\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/54\"\u003epyasn1/pyasn1#54\u003c/a\u003e)\n[pr \u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/100\"\u003e#100\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/pull/100\"\u003epyasn1/pyasn1#100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed DeprecationWarning stacklevel for deprecated attributes\n[issue \u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/86\"\u003e#86\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/86\"\u003epyasn1/pyasn1#86\u003c/a\u003e)\n[pr \u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/101\"\u003e#101\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/pull/101\"\u003epyasn1/pyasn1#101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed asDateTime incorrect fractional seconds parsing\n[issue \u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/81\"\u003e#81\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/81\"\u003epyasn1/pyasn1#81\u003c/a\u003e)\n[pr \u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/102\"\u003e#102\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/pull/102\"\u003epyasn1/pyasn1#102\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/pyasn1/pyasn1/commit/af65c3b92e9deeae50db4de390982dd970d87f98\"\u003e\u003ccode\u003eaf65c3b\u003c/code\u003e\u003c/a\u003e Prepare release 0.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyasn1/pyasn1/commit/5a49bd1fe93b5b866a1210f6bf0a3924f21572c8\"\u003e\u003ccode\u003e5a49bd1\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyasn1/pyasn1/commit/5494ba43f738e700ca9f7c7a69ec5c44908c9a9f\"\u003e\u003ccode\u003e5494ba4\u003c/code\u003e\u003c/a\u003e Fix asDateTime incorrect fractional seconds parsing (\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/102\"\u003e#102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyasn1/pyasn1/commit/71f486e6c32d0f270868aa1b2bb5ceb7d5fd5476\"\u003e\u003ccode\u003e71f486e\u003c/code\u003e\u003c/a\u003e Fix DeprecationWarning stacklevel for deprecated attributes (\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/101\"\u003e#101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyasn1/pyasn1/commit/d7cb42dcaa9a66e18f14c4609c2ed00c5b65f7e8\"\u003e\u003ccode\u003ed7cb42d\u003c/code\u003e\u003c/a\u003e Fix OverflowError from oversized BER length field (\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/100\"\u003e#100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyasn1/pyasn1/compare/v0.6.2...v0.6.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 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/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\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\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.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `werkzeug` from 3.1.5 to 3.1.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/werkzeug/releases\"\u003ewerkzeug's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.6\u003c/h2\u003e\n\u003cp\u003eThis is the Werkzeug 3.1.6 security fix release, which fixes a security issue 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/Werkzeug/3.1.6/\"\u003ehttps://pypi.org/project/Werkzeug/3.1.6/\u003c/a\u003e\nChanges: \u003ca href=\"https://werkzeug.palletsprojects.com/page/changes/#version-3-1-6\"\u003ehttps://werkzeug.palletsprojects.com/page/changes/#version-3-1-6\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esafe_join\u003c/code\u003e on Windows does not allow special devices names in multi-segment paths. \u003ca href=\"https://github.com/pallets/werkzeug/security/advisories/GHSA-29vq-49wr-vm6x\"\u003eGHSA-29vq-49wr-vm6x\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/werkzeug/blob/main/CHANGES.rst\"\u003ewerkzeug's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.6\u003c/h2\u003e\n\u003cp\u003eReleased 2026-02-19\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esafe_join\u003c/code\u003e on Windows does not allow special devices names in\nmulti-segment paths. :ghsa:\u003ccode\u003e29vq-49wr-vm6x\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.make_conditional\u003c/code\u003e sets the \u003ccode\u003eAccept-Ranges\u003c/code\u003e header even if it\nis not a satisfiable range request. :issue:\u003ccode\u003e3108\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/werkzeug/commit/04da1b5221b7a7b57e82246e4b5741d37a6b2e56\"\u003e\u003ccode\u003e04da1b5\u003c/code\u003e\u003c/a\u003e release version 3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/f407712fdc60a09c2b3f4fe7db557703e5d9338d\"\u003e\u003ccode\u003ef407712\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/f54fe98026253e70fbbcd35a6b52fb67cfff1c03\"\u003e\u003ccode\u003ef54fe98\u003c/code\u003e\u003c/a\u003e safe_join prevents Windows special device names in multi-segment paths\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/d005985ef69ffe3275eda8fb6fb25e074dbe871b\"\u003e\u003ccode\u003ed005985\u003c/code\u003e\u003c/a\u003e start version 3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/8565c2cbd6681ae8463e77d4fc0795324a7fdae7\"\u003e\u003ccode\u003e8565c2c\u003c/code\u003e\u003c/a\u003e document rule priority (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3102\"\u003e#3102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/3febc7e90072bffe04c27e6b7478dfc4f88930df\"\u003e\u003ccode\u003e3febc7e\u003c/code\u003e\u003c/a\u003e document rule priority\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/2525b827646c10ab7adb334664e6a4af1b769181\"\u003e\u003ccode\u003e2525b82\u003c/code\u003e\u003c/a\u003e remove state machine docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/4abfbd553cdeb6d4e6fa693340d52b13c884079f\"\u003e\u003ccode\u003e4abfbd5\u003c/code\u003e\u003c/a\u003e rewrite build docstring (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3097\"\u003e#3097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/161c18b2a8800ae6ef377fb3cbdb933a878fea67\"\u003e\u003ccode\u003e161c18b\u003c/code\u003e\u003c/a\u003e rewrite build docstring\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/86e11c29e44726dae524cd9db11549b3b1ad681d\"\u003e\u003ccode\u003e86e11c2\u003c/code\u003e\u003c/a\u003e release version 3.1.5 (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pallets/werkzeug/compare/3.1.5...3.1.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` from 0.46.2 to 0.49.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.49.1\u003c/h2\u003e\n\u003cp\u003eThis release fixes a security vulnerability in the parsing logic of the \u003ccode\u003eRange\u003c/code\u003e header in \u003ccode\u003eFileResponse\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eYou can view the full security advisory: \u003ca href=\"https://github.com/Kludex/starlette/security/advisories/GHSA-7f5h-v6xp-fcq8\"\u003eGHSA-7f5h-v6xp-fcq8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize the HTTP ranges parsing logic \u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e4ea6e22b489ec388d6004cfbca52dd5b147127c5\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.0...0.49.1\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.0...0.49.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.49.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eencoding\u003c/code\u003e parameter to \u003ccode\u003eConfig\u003c/code\u003e class \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003e#2996\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport multiple cookie headers in \u003ccode\u003eRequest.cookies\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3029\"\u003e#3029\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLiteral\u003c/code\u003e type for \u003ccode\u003eWebSocketEndpoint\u003c/code\u003e encoding values \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003e#3027\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDo not pollute exception context in \u003ccode\u003eMiddleware\u003c/code\u003e when using \u003ccode\u003eBaseHTTPMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003e#2976\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TheWesDias\"\u003e\u003ccode\u003e@​TheWesDias\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3017\"\u003eKludex/starlette#3017\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gmos2104\"\u003e\u003ccode\u003e@​gmos2104\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003eKludex/starlette#3027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/secrett2633\"\u003e\u003ccode\u003e@​secrett2633\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003eKludex/starlette#2996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adam-sikora\"\u003e\u003ccode\u003e@​adam-sikora\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003eKludex/starlette#2976\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.48.0...0.49.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.48.0...0.49.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.48.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd official Python 3.14 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3013\"\u003e#3013\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ca href=\"https://www.rfc-editor.org/rfc/rfc9110\"\u003eRFC9110\u003c/a\u003e http status names \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003e#2939\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yakimka\"\u003e\u003ccode\u003e@​yakimka\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2943\"\u003eKludex/starlette#2943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mbeijen\"\u003e\u003ccode\u003e@​mbeijen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003eKludex/starlette#2939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.47.3...0.48.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.47.3...0.48.0\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.49.1 (October 28, 2025)\u003c/h2\u003e\n\u003cp\u003eThis release fixes a security vulnerability in the parsing logic of the \u003ccode\u003eRange\u003c/code\u003e header in \u003ccode\u003eFileResponse\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eYou can view the full security advisory: \u003ca href=\"https://github.com/Kludex/starlette/security/advisories/GHSA-7f5h-v6xp-fcq8\"\u003eGHSA-7f5h-v6xp-fcq8\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize the HTTP ranges parsing logic \u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e4ea6e22b489ec388d6004cfbca52dd5b147127c5\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.49.0 (October 28, 2025)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eencoding\u003c/code\u003e parameter to \u003ccode\u003eConfig\u003c/code\u003e class \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003e#2996\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport multiple cookie headers in \u003ccode\u003eRequest.cookies\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3029\"\u003e#3029\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLiteral\u003c/code\u003e type for \u003ccode\u003eWebSocketEndpoint\u003c/code\u003e encoding values \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003e#3027\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDo not pollute exception context in \u003ccode\u003eMiddleware\u003c/code\u003e when using \u003ccode\u003eBaseHTTPMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003e#2976\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.48.0 (September 13, 2025)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd official Python 3.14 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3013\"\u003e#3013\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ca href=\"https://www.rfc-editor.org/rfc/rfc9110\"\u003eRFC9110\u003c/a\u003e http status names \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003e#2939\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.47.3 (August 24, 2025)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003easyncio.iscoroutinefunction\u003c/code\u003e for Python 3.12 and older \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2984\"\u003e#2984\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.47.2 (July 20, 2025)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003eUploadFile\u003c/code\u003e check for future rollover \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2962\"\u003e#2962\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.47.1 (June 21, 2025)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003eSelf\u003c/code\u003e in \u003ccode\u003eTestClient.__enter__\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2951\"\u003e#2951\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAllow async exception handlers to type-check \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2949\"\u003e#2949\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/7e4b7428f273dbdc875dcd036d20804bcfc7b2ee\"\u003e\u003ccode\u003e7e4b742\u003c/code\u003e\u003c/a\u003e Version 0.49.1 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3047\"\u003e#3047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e\u003ccode\u003e4ea6e22\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/7d88ea6f8ec8aa99cdb5fc7a10b88db5aadfdfee\"\u003e\u003ccode\u003e7d88ea6\u003c/code\u003e\u003c/a\u003e Version 0.49.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3046\"\u003e#3046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/26d66bbfb05c7bbecbbb57106c65f33682f8174e\"\u003e\u003ccode\u003e26d66bb\u003c/code\u003e\u003c/a\u003e Do not pollute exception context in Middleware (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/a59397db889e3a96c4f34b1406957a3b92e1e8b5\"\u003e\u003ccode\u003ea59397d\u003c/code\u003e\u003c/a\u003e Set encodings when reading config files (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3b7f0cbf598be305528a498a35089ce723060372\"\u003e\u003ccode\u003e3b7f0cb\u003c/code\u003e\u003c/a\u003e test: add test for unknown status (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3035\"\u003e#3035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/b09ce1a99d352ee6f5b896597f03a1a57507afcd\"\u003e\u003ccode\u003eb09ce1a\u003c/code\u003e\u003c/a\u003e docs: fix legibility issues on sponsorship page (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3039\"\u003e#3039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/0f0edcf8007412d9536bf8714c5815ce8f5dba4b\"\u003e\u003ccode\u003e0f0edcf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Add Marcelo Trylesinski to the license (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3025\"\u003e#3025\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3044\"\u003e#3044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3912d6313730cc6004dfb4436e37dbc1a81db7c8\"\u003e\u003ccode\u003e3912d63\u003c/code\u003e\u003c/a\u003e docs: add social icons (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3038\"\u003e#3038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4915a9309fcad58ac08b9fa550563d3287b531ad\"\u003e\u003ccode\u003e4915a93\u003c/code\u003e\u003c/a\u003e Add discord to README/docs (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3034\"\u003e#3034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.46.2...0.49.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 45.0.3 to 46.0.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e46.0.5 - 2026-02-10\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* An attacker could create a malicious public key that reveals portions of your\n  private key when using certain uncommon elliptic curves (binary curves).\n  This version now includes additional security checks to prevent this attack.\n  This issue only affects binary elliptic curves, which are rarely used in\n  real-world applications. Credit to **XlabAI Team of Tencent Xuanwu Lab and\n  Atuin Automated Vulnerability Discovery Engine** for reporting the issue.\n  **CVE-2026-26007**\n* Support for ``SECT*`` binary elliptic curves is deprecated and will be\n  removed in the next release.\n\u003cp\u003e.. v46-0-4:\u003c/p\u003e\n\u003cp\u003e46.0.4 - 2026-01-27\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eDropped support for win_arm64 wheels\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.5.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-3:\u003c/p\u003e\n\u003cp\u003e46.0.3 - 2025-10-15\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Fixed compilation when using LibreSSL 4.2.0.\n\u003cp\u003e.. _v46-0-2:\u003c/p\u003e\n\u003cp\u003e46.0.2 - 2025-09-30\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.4.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-1:\u003c/p\u003e\n\u003cp\u003e46.0.1 - 2025-09-16\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Fixed an issue where users installing via ``pip`` on Python 3.14 development\n  versions would not properly install a dependency.\n* Fixed an issue building the free-threaded macOS 3.14 wheels.\n\u003cp\u003e.. _v46-0-0:\u003c/p\u003e\n\u003cp\u003e46.0.0 - 2025-09-16\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBACKWARDS INCOMPATIBLE:\u003c/strong\u003e Support for Python 3.7 has been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/06e120e682cb200e3f7050c02f0bcdac90c4c6ad\"\u003e\u003ccode\u003e06e120e\u003c/code\u003e\u003c/a\u003e bump version for 46.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14289\"\u003e#14289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/0eebb9dbb6343d9bc1d91e5a2482ed4e054a6d8c\"\u003e\u003ccode\u003e0eebb9d\u003c/code\u003e\u003c/a\u003e EC check key on cofactor \u0026gt; 1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14287\"\u003e#14287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/bedf6e186b814f69a3f54f51252c23a71d44ed2e\"\u003e\u003ccode\u003ebedf6e1\u003c/code\u003e\u003c/a\u003e fix openssl version on 46 branch (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14220\"\u003e#14220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/e6f44fc8e6391f05d719fb9d369692325b87a471\"\u003e\u003ccode\u003ee6f44fc\u003c/code\u003e\u003c/a\u003e bump for 46.0.4 and drop win arm64 due to CI issues (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14217\"\u003e#14217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/c0af4dd7b75921bbe9f1d41a03dbd4b64a9e3403\"\u003e\u003ccode\u003ec0af4dd\u003c/code\u003e\u003c/a\u003e release 46.0.3 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13681\"\u003e#13681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/99efe5ad150a56efadafacaffd0e3ee319373904\"\u003e\u003ccode\u003e99efe5a\u003c/code\u003e\u003c/a\u003e bump version for 46.0.2 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13531\"\u003e#13531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/e735cfc27502320101c130335c556394a125ba52\"\u003e\u003ccode\u003ee735cfc\u003c/code\u003e\u003c/a\u003e release 46.0.1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13450\"\u003e#13450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/4e457ffba43a6d87efc63c33041e2081438dd8a4\"\u003e\u003ccode\u003e4e457ff\u003c/code\u003e\u003c/a\u003e Explicitly specify python in mac uv build invocation (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13447\"\u003e#13447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/2726efdb6d67f1c90cf9c6062d9fe051965586f8\"\u003e\u003ccode\u003e2726efd\u003c/code\u003e\u003c/a\u003e Depend on CFFI 2.0.0 or newer on Python \u0026gt; 3.8 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13448\"\u003e#13448\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/62230623d183706632c0eb7822c96ac95e3710a8\"\u003e\u003ccode\u003e6223062\u003c/code\u003e\u003c/a\u003e release 46.0.0 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13446\"\u003e#13446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/cryptography/compare/45.0.3...46.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `protobuf` from 5.29.5 to 5.29.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/protocolbuffers/protobuf/releases\"\u003eprotobuf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eProtocol Buffers v34.0-rc1\u003c/h2\u003e\n\u003ch1\u003eAnnouncements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eThis version includes breaking changes to: C++, Objective-C, PHP, Python.\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e[Bazel] Remove deprecated ProtoInfo.transitive_imports. Use equivalent transitive_sources instead (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/0a5c2f6b633c1e5259f566cb42d30fe347b8aadb\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/0a5c2f6b633c1e5259f566cb42d30fe347b8aadb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Make generator headers private (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/3a2af3510f0d454dbe3e4dc281674b61c4d20b9e\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/3a2af3510f0d454dbe3e4dc281674b61c4d20b9e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Add a debug check that the target of CopyFrom is not a descendant of the source. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/7a7589823d2cfaaf7994b050e98d5d553bc9b1c1\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/7a7589823d2cfaaf7994b050e98d5d553bc9b1c1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Add [[nodiscard]] to many APIs. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/a70115f33f9af2c4b2202c800b84837e7fe0d738\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/a70115f33f9af2c4b2202c800b84837e7fe0d738\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Make the arena-enabled constructors of \u003ccode\u003eRepeatedField\u003c/code\u003e, \u003ccode\u003eRepeatedPtrField\u003c/code\u003e, and \u003ccode\u003eMap\u003c/code\u003e private. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/ef890c3d0c79398c70e047fe5dd893f460ba2336\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/ef890c3d0c79398c70e047fe5dd893f460ba2336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove deprecated FieldDescriptor::label() in OSS. Use is_repeated() or is_required() instead (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/b76faa921fdd244f374c7be0bddd4050fc42c292\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/b76faa921fdd244f374c7be0bddd4050fc42c292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Removes proto2::util::MessageDifferencer::AddIgnoreCriteria that takes a raw pointer as an argument in favor of the overload that takes a unique_ptr. Remove macro PROTOBUF_FUTURE_REMOVE_ADD_IGNORE_CRITERIA (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/b115358c64127896fed88b8b5ef5d91d86d8cbae\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/b115358c64127896fed88b8b5ef5d91d86d8cbae\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove deprecated FieldDescriptor::has_optional_keyword() in OSS. Use is_repeated() or has_presence() instead (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/68346ec9348e932664e58c3ecdcd1478f95233a8\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/68346ec9348e932664e58c3ecdcd1478f95233a8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove AddUnusedImportTrackFile() and ClearUnusedImportTrackFiles(). Remove PROTOBUF_FUTURE_RENAME_ADD_UNUSED_IMPORT (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/837a2cd1d6c75402b2503ffe7cd8aeaf25868536\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/837a2cd1d6c75402b2503ffe7cd8aeaf25868536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove deprecated FieldDescriptor::is_optional() in OSS. Use (!is_required() \u0026amp;\u0026amp; !is_repeated()) instead (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/9dbc5d479a8e453921485d8d3de47fb3c005f1af\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/9dbc5d479a8e453921485d8d3de47fb3c005f1af\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove deprecated UseDeprecatedLegacyJsonFieldConflicts() (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/c301c2ca286327a21c50c0c4cd877afc9c655b00\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/c301c2ca286327a21c50c0c4cd877afc9c655b00\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] All entity names have length limit (2afb0dc)\u003c/li\u003e\n\u003cli\u003e[ObjC] Remove \u003ccode\u003egenerate_minimal_imports\u003c/code\u003e generation option warning (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/45b1297fdaad5a9436d0e207422168c38dc45ac4\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/45b1297fdaad5a9436d0e207422168c38dc45ac4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[ObjC] Fix nullability annotations on some \u003ccode\u003eGPB*Dictionary\u003c/code\u003e types. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/ea67d6d26a48478a567c404679e3bb99cf230d50\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/ea67d6d26a48478a567c404679e3bb99cf230d50\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[ObjC] Remove \u003ccode\u003e-[GPBFieldDescriptor optional]\u003c/code\u003e (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/3414dc151eb4dcbdb2ca952e2589993bf7af75c4\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/3414dc151eb4dcbdb2ca952e2589993bf7af75c4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Other] Remove deprecated flag for enabling MSVC support (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/97c979be6e0907e1051bee62584dac4594e73fa7\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/97c979be6e0907e1051bee62584dac4594e73fa7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PHP] Remove deprecated PHP APIs (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/9c45014099a4f7004fab6dd1278de2f4f2a393c5\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/9c45014099a4f7004fab6dd1278de2f4f2a393c5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PHP] Remove deprecated PHP APIs FieldDescriptor getLabel, use IsRepeated or isRequired instead. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345\u003c/a\u003e, \u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/cd76e675b14d00dda5623b30835d2bc7105fccc6\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/cd76e675b14d00dda5623b30835d2bc7105fccc6\u003c/a\u003e, \u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PHP]  Add PHP typehints for setters and remove redundant GPBUtil checks (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/pull/25296\"\u003eprotocolbuffers/protobuf#25296\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/aee03b78929c02461a5f9d8e136a2a016359b0cd\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/aee03b78929c02461a5f9d8e136a2a016359b0cd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PHP]  support default values for editions/proto2 (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/pull/25161\"\u003eprotocolbuffers/protobuf#25161\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/b01099d56350551bae3da88b97bf3027274c9f17\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/b01099d56350551bae3da88b97bf3027274c9f17\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Raise errors in OSS when assign bool to int/enum field in Python Proto. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/5b116fe2f14f49dd0cc3b76089983717f211025c\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/5b116fe2f14f49dd0cc3b76089983717f211025c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Remove float_format/double_format from python proto text_format (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/e4854a186e0bfa867d5bfa5cd850608a948fd488\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/e4854a186e0bfa867d5bfa5cd850608a948fd488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Raise TypeError when convert non-timedelta to Duration, or convert non-datetime to Timestamp in python proto. (Original code may raise ArributeError) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/00aaca1b4d98954bc2933d7c8a5379ba6088124c\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/00aaca1b4d98954bc2933d7c8a5379ba6088124c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Remove float_precision from python proto json_format (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/f027f1fcd52b9d080b7ee79f4024f53cf54e0dc5\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/f027f1fcd52b9d080b7ee79f4024f53cf54e0dc5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Remove deprecated FieldDescriptor::label() in OSS. Use is_repeated() or is_required() instead (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/b76faa921fdd244f374c7be0bddd4050fc42c292\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/b76faa921fdd244f374c7be0bddd4050fc42c292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Remove deprecated FieldDescriptor.label (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/0a8ff55518ea5874478ad5b26515b31d186045a9\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/0a8ff55518ea5874478ad5b26515b31d186045a9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Remove deprecated UseDeprecatedLegacyJsonFieldConflicts() (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/c301c2ca286327a21c50c0c4cd877afc9c655b00\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/c301c2ca286327a21c50c0c4cd877afc9c655b00\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://protobuf.dev/news/\"\u003eProtobuf News\u003c/a\u003e may include additional announcements or pre-announcements for upcoming changes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://protobuf.dev/support/migration/\"\u003eMigration Guide\u003c/a\u003e may include additional guidance for breaking changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBazel\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix: cc_toolchain should prefer protoc when prebuilt flag is flipped. (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/25168\"\u003e#25168\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/8c857c3a1c6a106b0a096f1c9fa504bfaca035a9\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/8c857c3a1c6a106b0a096f1c9fa504bfaca035a9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBreaking change: Remove deprecated ProtoInfo.transitive_imports. Use equivalent transitive_sources instead (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/0a5c2f6b633c1e5259f566cb42d30fe347b8aadb\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/0a5c2f6b633c1e5259f566cb42d30fe347b8aadb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat(bazel): wire up prebuilt protoc toolchain (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/24115\"\u003e#24115\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/cc23698b486e690ea2eb873cc7596a87c74a3ba6\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/cc23698b486e690ea2eb873cc7596a87c74a3ba6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate \u003ccode\u003eproto_descriptor_set\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/23369\"\u003e#23369\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/8d4dfdd39a7a242a9ed631a6ab2192c57dd9b9c8\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/8d4dfdd39a7a242a9ed631a6ab2192c57dd9b9c8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eCompiler\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRuby codegen: support generation of rbs files (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/15633\"\u003e#15633\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/6ebdf851ba78728f0aa145d38454ed9a316fb08d\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/6ebdf851ba78728f0aa145d38454ed9a316fb08d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid collision name problems between a message named \u003ccode\u003eXyz\u003c/code\u003e and a direct sibling enum named \u003ccode\u003eXyzView\u003c/code\u003e (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/eba53e8f172b273d679759a72ce4250131ee3df1\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/eba53e8f172b273d679759a72ce4250131ee3df1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGeneralizing and implementing ValidateFeatureSupport for both Options and Features during proto parsing (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/ed3c57114d8e2b47cca7697ddaa50c1b3762a6b0\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/ed3c57114d8e2b47cca7697ddaa50c1b3762a6b0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug with custom features outside of the \u003ccode\u003epb\u003c/code\u003e package. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/872d3ce7a4da00d7dcec33ced20cfe45235935e8\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/872d3ce7a4da00d7dcec33ced20cfe45235935e8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix import option handling when include_imports isn't set. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/9ef9e80afd9bc8379d578fe67e5ab0738728c04e\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/9ef9e80afd9bc8379d578fe67e5ab0738728c04e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug in STRICT check of namespaced enums to properly check for 'reserved 1 to max' (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/1229d4adba24c0952ab85ce96bc7b7f8a1fe6d0f\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/1229d4adba24c0952ab85ce96bc7b7f8a1fe6d0f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent accidental stripping of \u003ccode\u003edebug_redact\u003c/code\u003e options via import option. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/f58b098bffa7ca4045ef7773b09151a6af5d0c28\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/f58b098bffa7ca4045ef7773b09151a6af5d0c28\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eC++\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd EnumerateEnumValues function. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/397d5d99db274b379d1384814074bf7df39d32f7\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/397d5d99db274b379d1384814074bf7df39d32f7\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/protocolbuffers/protobuf/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyasn1` from 0.6.1 to 0.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyasn1/pyasn1/releases\"\u003epyasn1's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 0.6.3\u003c/h2\u003e\n\u003cp\u003eIt's a minor release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded nesting depth limit to ASN.1 decoder to prevent stack overflow from deeply nested structures (CVE-2026-30922).\u003c/li\u003e\n\u003cli\u003eFixed OverflowError from oversized BER length field.\u003c/li\u003e\n\u003cli\u003eFixed DeprecationWarning stacklevel for deprecated attributes.\u003c/li\u003e\n\u003cli\u003eFixed asDateTime incorrect fractional seconds parsing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAll changes are noted in the \u003ca href=\"https://github.com/pyasn1/pyasn1/blob/master/CHANGES.rst\"\u003eCHANGELOG\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/pyasn1/pyasn1/blob/main/CHANGES.rst\"\u003epyasn1's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRevision 0.6.3, released 16-03-2026\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-30922 (GHSA-jr27-m4p2-rc6r): Added nesting depth\nlimit to ASN.1 decoder to prevent stack overflow from deeply\nnested structures (thanks for reporting, romanticpragmatism)\u003c/li\u003e\n\u003cli\u003eFixed OverflowError from oversized BER length field\n[issue \u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/54\"\u003e#54\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/54\"\u003epyasn1/pyasn1#54\u003c/a\u003e)\n[pr \u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/100\"\u003e#100\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/pull/100\"\u003epyasn1/pyasn1#100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed DeprecationWarning stacklevel for deprecated attributes\n[issue \u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/86\"\u003e#86\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/86\"\u003epyasn1/pyasn1#86\u003c/a\u003e)\n[pr \u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/101\"\u003e#101\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/pull/101\"\u003epyasn1/pyasn1#101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed asDateTime incorrect fractional seconds parsing\n[issue \u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/81\"\u003e#81\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/81\"\u003epyasn1/pyasn1#81\u003c/a\u003e)\n[pr \u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/102\"\u003e#102\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/pull/102\"\u003epyasn1/pyasn1#102\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/pyasn1/pyasn1/commit/af65c3b92e9deeae50db4de390982dd970d87f98\"\u003e\u003ccode\u003eaf65c3b\u003c/code\u003e\u003c/a\u003e Prepare release 0.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyasn1/pyasn1/commit/5a49bd1fe93b5b866a1210f6bf0a3924f21572c8\"\u003e\u003ccode\u003e5a49bd1\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyasn1/pyasn1/commit/5494ba43f738e700ca9f7c7a69ec5c44908c9a9f\"\u003e\u003ccode\u003e5494ba4\u003c/code\u003e\u003c/a\u003e Fix asDateTime incorrect fractional seconds parsing (\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/102\"\u003e#102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyasn1/pyasn1/commit/71f486e6c32d0f270868aa1b2bb5ceb7d5fd5476\"\u003e\u003ccode\u003e71f486e\u003c/code\u003e\u003c/a\u003e Fix DeprecationWarning stacklevel for deprecated attributes (\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/101\"\u003e#101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyasn1/pyasn1/commit/d7cb42dcaa9a66e18f14c4609c2ed00c5b65f7e8\"\u003e\u003ccode\u003ed7cb42d\u003c/code\u003e\u003c/a\u003e Fix OverflowError from oversized BER length field (\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/100\"\u003e#100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyasn1/pyasn1/compare/v0.6.2...v0.6.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.3 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 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/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\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\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.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.4.0 to 2.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6.3\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where decompression-bomb safeguards of the streaming API were bypassed when HTTP redirects were followed. (CVE-2026-21441 reported by \u003ca href=\"https://github.com/D47A\"\u003e\u003ccode\u003e@​D47A\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-38jv-5279-wg99)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by default. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003eurllib3/urllib3#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003eurllib3/urllib3#3752\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in the decoder's buffer when reading compressed chunked responses. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3734\"\u003eurllib3/urllib3#3734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and \u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3731\"\u003e#3731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly compressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource consumption even when a small amount of data was requested. Reading small chunks of compressed data is safer and much more efficient now. (CVE-2025-66471 reported by \u003ca href=\"https://github.com/Cycloctane\"\u003e\u003ccode\u003e@​Cycloctane\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-2xpw-w6gg-jr37)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with virtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially leading to a denial of service (DoS) attack by exhausting system resources during decoding. The number of allowed chained encodings is now limited to 5. (CVE-2025-66418 reported by \u003ca href=\"https://github.com/illia-v\"\u003e\u003ccode\u003e@​illia-v\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-gm62-xv2j-4w53)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but your environment contains a Brotli/brotlicffi/brotlipy package anyway, make sure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to  benefit from the security fixes and avoid warnings. Prefer using  \u003ccode\u003eurllib3[brotli]\u003c/code\u003e to install a compatible Brotli package automatically.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c!-- 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/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.6.3 (2026-01-07)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a high-severity security issue where decompression-bomb safeguards of\nthe streaming API were bypassed when HTTP redirects were followed.\n(\u003ccode\u003eGHSA-38jv-5279-wg99 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-38jv-5279-wg99\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by\ndefault. (\u003ccode\u003e[#3743](https://github.com/urllib3/urllib3/issues/3743) \u0026lt;https://github.com/urllib3/urllib3/issues/3743\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten.\n(\u003ccode\u003e[#3752](https://github.com/urllib3/urllib3/issues/3752) \u0026lt;https://github.com/urllib3/urllib3/issues/3752\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.2 (2025-12-11)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in\nthe decoder's buffer when reading compressed chunked responses.\n(\u003ccode\u003e[#3734](https://github.com/urllib3/urllib3/issues/3734) \u0026lt;https://github.com/urllib3/urllib3/issues/3734\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.1 (2025-12-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and\n\u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods.\n(\u003ccode\u003e[#3731](https://github.com/urllib3/urllib3/issues/3731) \u0026lt;https://github.com/urllib3/urllib3/issues/3731\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.0 (2025-12-05)\u003c/h1\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly\ncompressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource\nconsumption even when a small amount of data was requested. Reading small\nchunks of compressed data is safer and much more efficient now.\n(\u003ccode\u003eGHSA-2xpw-w6gg-jr37 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-2xpw-w6gg-jr37\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with\nvirtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially\nleading to a denial of service (DoS) attack by exhausting system resources\nduring decoding. The number of allowed chained encodings is now limited to 5.\n(\u003ccode\u003eGHSA-gm62-xv2j-4w53 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-gm62-xv2j-4w53\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. caution::\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but\nyour environment contains a Brotli/brotlicffi/brotlipy package anyway, make\nsure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to\nbenefit from the security fixes and avoid warnings. Prefer using\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/urllib3/urllib3/commit/0248277dd7ac0239204889ca991353ad3e3a1ddc\"\u003e\u003ccode\u003e0248277\u003c/code\u003e\u003c/a\u003e Release 2.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8864ac407bba8607950025e0979c4c69bc7abc7b\"\u003e\u003ccode\u003e8864ac4\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/70cecb27ca99d56aaaeb63ac27ee270ef2b24c5c\"\u003e\u003ccode\u003e70cecb2\u003c/code\u003e\u003c/a\u003e Fix Scorecard issues related to vulnerable dev dependencies (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3755\"\u003e#3755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/41f249abe1ef3e20768588969c4035aba060a359\"\u003e\u003ccode\u003e41f249a\u003c/code\u003e\u003c/a\u003e Move \u0026quot;v2.0 Migration Guide\u0026quot; to the end of the table of contents (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3747\"\u003e#3747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/fd4dffd2fc544166b76151a2fa3d7b7c0eab540c\"\u003e\u003ccode\u003efd4dffd\u003c/code\u003e\u003c/a\u003e Patch \u003ccode\u003eVerifiedHTTPSConnection\u003c/code\u003e for Emscripten (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003e#3752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/13f0bfd55e4468fe1ea9c6f809d3a87b0f93ebab\"\u003e\u003ccode\u003e13f0bfd\u003c/code\u003e\u003c/a\u003e Handle massive values in Retry-After when calculating time to sleep for (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003e#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8c480bf87bcefd321b3a1ae47f04e908b6b2ed7b\"\u003e\u003ccode\u003e8c480bf\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3748\"\u003e#3748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/4b40616e959c0a2c466e8075f2a785a9f99bb0c1\"\u003e\u003ccode\u003e4b40616\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.3.0 to 5.0.1 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3750\"\u003e#3750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/82b8479663d037d220c883f1584dd01a43bb273b\"\u003e\u003ccode\u003e82b8479\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3749\"\u003e#3749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/34284cb01700bb7d4fdd472f909e22393e9174e2\"\u003e\u003ccode\u003e34284cb\u003c/code\u003e\u003c/a\u003e Mention experimental features in the security policy (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3746\"\u003e#3746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.4.0...2.6.3\"\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\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/judacas/LLM-Automated-Inventory-Management/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/judacas/LLM-Automated-Inventory-Management/pull/25","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/judacas%2FLLM-Automated-Inventory-Management/issues/25","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/25/packages"},{"uuid":"3820550558","node_id":"PR_kwDOMZY_aM69iots","number":6,"state":"closed","title":"chore(deps): bump the uv group across 3 directories with 3 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-26T05:47:05.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-16T06:06:15.000Z","updated_at":"2026-01-26T05:47:06.000Z","time_to_close":862850,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"uv","update_count":3,"packages":[{"name":"starlette","old_version":"0.47.3","new_version":"0.49.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"starlette","old_version":"0.48.0","new_version":"0.49.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"langchain-core","old_version":"0.3.76","new_version":"0.3.81","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"starlette","old_version":"0.47.1","new_version":"0.49.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"langchain-core","old_version":"0.3.68","new_version":"0.3.81","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"}],"path":null,"ecosystem":"conda"},"body":"Bumps the uv group with 1 update in the /python/assistant-transport-backend directory: [starlette](https://github.com/Kludex/starlette).\nBumps the uv group with 3 updates in the /python/assistant-transport-backend-langgraph directory: [starlette](https://github.com/Kludex/starlette), [langchain-core](https://github.com/langchain-ai/langchain) and [urllib3](https://github.com/urllib3/urllib3).\nBumps the uv group with 3 updates in the /python/assistant-stream directory: [starlette](https://github.com/Kludex/starlette), [langchain-core](https://github.com/langchain-ai/langchain) and [urllib3](https://github.com/urllib3/urllib3).\n\nUpdates `starlette` from 0.47.3 to 0.49.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.49.1\u003c/h2\u003e\n\u003cp\u003eThis release fixes a security vulnerability in the parsing logic of the \u003ccode\u003eRange\u003c/code\u003e header in \u003ccode\u003eFileResponse\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eYou can view the full security advisory: \u003ca href=\"https://github.com/Kludex/starlette/security/advisories/GHSA-7f5h-v6xp-fcq8\"\u003eGHSA-7f5h-v6xp-fcq8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize the HTTP ranges parsing logic \u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e4ea6e22b489ec388d6004cfbca52dd5b147127c5\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.0...0.49.1\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.0...0.49.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.49.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eencoding\u003c/code\u003e parameter to \u003ccode\u003eConfig\u003c/code\u003e class \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003e#2996\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport multiple cookie headers in \u003ccode\u003eRequest.cookies\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3029\"\u003e#3029\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLiteral\u003c/code\u003e type for \u003ccode\u003eWebSocketEndpoint\u003c/code\u003e encoding values \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003e#3027\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDo not pollute exception context in \u003ccode\u003eMiddleware\u003c/code\u003e when using \u003ccode\u003eBaseHTTPMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003e#2976\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TheWesDias\"\u003e\u003ccode\u003e@​TheWesDias\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3017\"\u003eKludex/starlette#3017\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gmos2104\"\u003e\u003ccode\u003e@​gmos2104\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003eKludex/starlette#3027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/secrett2633\"\u003e\u003ccode\u003e@​secrett2633\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003eKludex/starlette#2996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adam-sikora\"\u003e\u003ccode\u003e@​adam-sikora\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003eKludex/starlette#2976\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.48.0...0.49.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.48.0...0.49.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.48.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd official Python 3.14 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3013\"\u003e#3013\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ca href=\"https://www.rfc-editor.org/rfc/rfc9110\"\u003eRFC9110\u003c/a\u003e http status names \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003e#2939\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yakimka\"\u003e\u003ccode\u003e@​yakimka\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2943\"\u003eKludex/starlette#2943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mbeijen\"\u003e\u003ccode\u003e@​mbeijen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003eKludex/starlette#2939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.47.3...0.48.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.47.3...0.48.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.49.1 (October 28, 2025)\u003c/h2\u003e\n\u003cp\u003eThis release fixes a security vulnerability in the parsing logic of the \u003ccode\u003eRange\u003c/code\u003e header in \u003ccode\u003eFileResponse\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eYou can view the full security advisory: \u003ca href=\"https://github.com/Kludex/starlette/security/advisories/GHSA-7f5h-v6xp-fcq8\"\u003eGHSA-7f5h-v6xp-fcq8\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize the HTTP ranges parsing logic \u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e4ea6e22b489ec388d6004cfbca52dd5b147127c5\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.49.0 (October 28, 2025)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eencoding\u003c/code\u003e parameter to \u003ccode\u003eConfig\u003c/code\u003e class \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003e#2996\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport multiple cookie headers in \u003ccode\u003eRequest.cookies\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3029\"\u003e#3029\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLiteral\u003c/code\u003e type for \u003ccode\u003eWebSocketEndpoint\u003c/code\u003e encoding values \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003e#3027\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDo not pollute exception context in \u003ccode\u003eMiddleware\u003c/code\u003e when using \u003ccode\u003eBaseHTTPMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003e#2976\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.48.0 (September 13, 2025)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd official Python 3.14 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3013\"\u003e#3013\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ca href=\"https://www.rfc-editor.org/rfc/rfc9110\"\u003eRFC9110\u003c/a\u003e http status names \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003e#2939\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/7e4b7428f273dbdc875dcd036d20804bcfc7b2ee\"\u003e\u003ccode\u003e7e4b742\u003c/code\u003e\u003c/a\u003e Version 0.49.1 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3047\"\u003e#3047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e\u003ccode\u003e4ea6e22\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/7d88ea6f8ec8aa99cdb5fc7a10b88db5aadfdfee\"\u003e\u003ccode\u003e7d88ea6\u003c/code\u003e\u003c/a\u003e Version 0.49.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3046\"\u003e#3046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/26d66bbfb05c7bbecbbb57106c65f33682f8174e\"\u003e\u003ccode\u003e26d66bb\u003c/code\u003e\u003c/a\u003e Do not pollute exception context in Middleware (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/a59397db889e3a96c4f34b1406957a3b92e1e8b5\"\u003e\u003ccode\u003ea59397d\u003c/code\u003e\u003c/a\u003e Set encodings when reading config files (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3b7f0cbf598be305528a498a35089ce723060372\"\u003e\u003ccode\u003e3b7f0cb\u003c/code\u003e\u003c/a\u003e test: add test for unknown status (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3035\"\u003e#3035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/b09ce1a99d352ee6f5b896597f03a1a57507afcd\"\u003e\u003ccode\u003eb09ce1a\u003c/code\u003e\u003c/a\u003e docs: fix legibility issues on sponsorship page (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3039\"\u003e#3039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/0f0edcf8007412d9536bf8714c5815ce8f5dba4b\"\u003e\u003ccode\u003e0f0edcf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Add Marcelo Trylesinski to the license (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3025\"\u003e#3025\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3044\"\u003e#3044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3912d6313730cc6004dfb4436e37dbc1a81db7c8\"\u003e\u003ccode\u003e3912d63\u003c/code\u003e\u003c/a\u003e docs: add social icons (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3038\"\u003e#3038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4915a9309fcad58ac08b9fa550563d3287b531ad\"\u003e\u003ccode\u003e4915a93\u003c/code\u003e\u003c/a\u003e Add discord to README/docs (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3034\"\u003e#3034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.47.3...0.49.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` from 0.48.0 to 0.49.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.49.1\u003c/h2\u003e\n\u003cp\u003eThis release fixes a security vulnerability in the parsing logic of the \u003ccode\u003eRange\u003c/code\u003e header in \u003ccode\u003eFileResponse\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eYou can view the full security advisory: \u003ca href=\"https://github.com/Kludex/starlette/security/advisories/GHSA-7f5h-v6xp-fcq8\"\u003eGHSA-7f5h-v6xp-fcq8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize the HTTP ranges parsing logic \u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e4ea6e22b489ec388d6004cfbca52dd5b147127c5\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.0...0.49.1\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.0...0.49.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.49.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eencoding\u003c/code\u003e parameter to \u003ccode\u003eConfig\u003c/code\u003e class \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003e#2996\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport multiple cookie headers in \u003ccode\u003eRequest.cookies\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3029\"\u003e#3029\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLiteral\u003c/code\u003e type for \u003ccode\u003eWebSocketEndpoint\u003c/code\u003e encoding values \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003e#3027\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDo not pollute exception context in \u003ccode\u003eMiddleware\u003c/code\u003e when using \u003ccode\u003eBaseHTTPMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003e#2976\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TheWesDias\"\u003e\u003ccode\u003e@​TheWesDias\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3017\"\u003eKludex/starlette#3017\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gmos2104\"\u003e\u003ccode\u003e@​gmos2104\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003eKludex/starlette#3027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/secrett2633\"\u003e\u003ccode\u003e@​secrett2633\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003eKludex/starlette#2996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adam-sikora\"\u003e\u003ccode\u003e@​adam-sikora\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003eKludex/starlette#2976\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.48.0...0.49.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.48.0...0.49.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.48.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd official Python 3.14 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3013\"\u003e#3013\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ca href=\"https://www.rfc-editor.org/rfc/rfc9110\"\u003eRFC9110\u003c/a\u003e http status names \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003e#2939\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yakimka\"\u003e\u003ccode\u003e@​yakimka\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2943\"\u003eKludex/starlette#2943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mbeijen\"\u003e\u003ccode\u003e@​mbeijen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003eKludex/starlette#2939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.47.3...0.48.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.47.3...0.48.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.49.1 (October 28, 2025)\u003c/h2\u003e\n\u003cp\u003eThis release fixes a security vulnerability in the parsing logic of the \u003ccode\u003eRange\u003c/code\u003e header in \u003ccode\u003eFileResponse\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eYou can view the full security advisory: \u003ca href=\"https://github.com/Kludex/starlette/security/advisories/GHSA-7f5h-v6xp-fcq8\"\u003eGHSA-7f5h-v6xp-fcq8\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize the HTTP ranges parsing logic \u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e4ea6e22b489ec388d6004cfbca52dd5b147127c5\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.49.0 (October 28, 2025)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eencoding\u003c/code\u003e parameter to \u003ccode\u003eConfig\u003c/code\u003e class \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003e#2996\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport multiple cookie headers in \u003ccode\u003eRequest.cookies\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3029\"\u003e#3029\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLiteral\u003c/code\u003e type for \u003ccode\u003eWebSocketEndpoint\u003c/code\u003e encoding values \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003e#3027\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDo not pollute exception context in \u003ccode\u003eMiddleware\u003c/code\u003e when using \u003ccode\u003eBaseHTTPMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003e#2976\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.48.0 (September 13, 2025)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd official Python 3.14 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3013\"\u003e#3013\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ca href=\"https://www.rfc-editor.org/rfc/rfc9110\"\u003eRFC9110\u003c/a\u003e http status names \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003e#2939\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/7e4b7428f273dbdc875dcd036d20804bcfc7b2ee\"\u003e\u003ccode\u003e7e4b742\u003c/code\u003e\u003c/a\u003e Version 0.49.1 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3047\"\u003e#3047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e\u003ccode\u003e4ea6e22\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/7d88ea6f8ec8aa99cdb5fc7a10b88db5aadfdfee\"\u003e\u003ccode\u003e7d88ea6\u003c/code\u003e\u003c/a\u003e Version 0.49.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3046\"\u003e#3046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/26d66bbfb05c7bbecbbb57106c65f33682f8174e\"\u003e\u003ccode\u003e26d66bb\u003c/code\u003e\u003c/a\u003e Do not pollute exception context in Middleware (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/a59397db889e3a96c4f34b1406957a3b92e1e8b5\"\u003e\u003ccode\u003ea59397d\u003c/code\u003e\u003c/a\u003e Set encodings when reading config files (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3b7f0cbf598be305528a498a35089ce723060372\"\u003e\u003ccode\u003e3b7f0cb\u003c/code\u003e\u003c/a\u003e test: add test for unknown status (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3035\"\u003e#3035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/b09ce1a99d352ee6f5b896597f03a1a57507afcd\"\u003e\u003ccode\u003eb09ce1a\u003c/code\u003e\u003c/a\u003e docs: fix legibility issues on sponsorship page (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3039\"\u003e#3039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/0f0edcf8007412d9536bf8714c5815ce8f5dba4b\"\u003e\u003ccode\u003e0f0edcf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Add Marcelo Trylesinski to the license (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3025\"\u003e#3025\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3044\"\u003e#3044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3912d6313730cc6004dfb4436e37dbc1a81db7c8\"\u003e\u003ccode\u003e3912d63\u003c/code\u003e\u003c/a\u003e docs: add social icons (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3038\"\u003e#3038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4915a9309fcad58ac08b9fa550563d3287b531ad\"\u003e\u003ccode\u003e4915a93\u003c/code\u003e\u003c/a\u003e Add discord to README/docs (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3034\"\u003e#3034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.47.3...0.49.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `langchain-core` from 0.3.76 to 0.3.81\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langchain/releases\"\u003elangchain-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elangchain-core==0.3.81\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==0.3.80\u003c/p\u003e\n\u003cp\u003erelease(core): 0.3.81 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34459\"\u003e#34459\u003c/a\u003e)\nfix(core): serialization patch (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34458\"\u003e#34458\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-core==0.3.80\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==0.3.79\u003c/p\u003e\n\u003cp\u003erelease(core): 0.3.80 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34039\"\u003e#34039\u003c/a\u003e)\nfix(core): fix validation for input variables in f-string templates, restrict functionality supported by jinja2, mustache templates  (GHSA-6qv9-48xg-fc7f) (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34038\"\u003e#34038\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/langchain-ai/langchain/commit/6dc06da1bb2f3781844895c259a67e40bc598f19\"\u003e\u003ccode\u003e6dc06da\u003c/code\u003e\u003c/a\u003e release(core): 0.3.81 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34459\"\u003e#34459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/d9ec4c5cc78960abd37da79b0250f5642e6f0ce6\"\u003e\u003ccode\u003ed9ec4c5\u003c/code\u003e\u003c/a\u003e fix(core): serialization patch (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34458\"\u003e#34458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/640d85c60f9fa6ba9c2fddeccca76d03dfb53b29\"\u003e\u003ccode\u003e640d85c\u003c/code\u003e\u003c/a\u003e release(core): 0.3.80 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34039\"\u003e#34039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/fa7789d6c21222b85211755d822ef698d3b34e00\"\u003e\u003ccode\u003efa7789d\u003c/code\u003e\u003c/a\u003e fix(core): fix validation for input variables in f-string templates, restrict...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/b93d2f7f3a0a42c455c25d346e907c6765016649\"\u003e\u003ccode\u003eb93d2f7\u003c/code\u003e\u003c/a\u003e release(core): 0.3.79 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/33401\"\u003e#33401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/a763ebe86cbf63ca1f378286c1dd76e16d88e503\"\u003e\u003ccode\u003ea763ebe\u003c/code\u003e\u003c/a\u003e release(anthropic): 0.3.22 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/33394\"\u003e#33394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/5fa1094451c9612ab27f89338c549e1b54ae8fbf\"\u003e\u003ccode\u003e5fa1094\u003c/code\u003e\u003c/a\u003e fix(anthropic,standard-tests): carry over updates to v0.3 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/33393\"\u003e#33393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/dd4de696b838b0d4f2d4769eb4bc3b1fba58afb4\"\u003e\u003ccode\u003edd4de69\u003c/code\u003e\u003c/a\u003e fix(core): handle parent/child mustache vars (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/33346\"\u003e#33346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/5459ff1ee35a0e4de699cefa5056122701796b89\"\u003e\u003ccode\u003e5459ff1\u003c/code\u003e\u003c/a\u003e chore: cap lib upper bounds, run sync (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/33320\"\u003e#33320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/f95669aa0aee8df05b55765a5d5ea3000fd61dfe\"\u003e\u003ccode\u003ef95669a\u003c/code\u003e\u003c/a\u003e release(openai): 0.3.35 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/33299\"\u003e#33299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langchain/compare/langchain-core==0.3.76...langchain-core==0.3.81\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.5.0 to 2.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6.3\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where decompression-bomb safeguards of the streaming API were bypassed when HTTP redirects were followed. (CVE-2026-21441 reported by \u003ca href=\"https://github.com/D47A\"\u003e\u003ccode\u003e@​D47A\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-38jv-5279-wg99)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by default. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003eurllib3/urllib3#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003eurllib3/urllib3#3752\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in the decoder's buffer when reading compressed chunked responses. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3734\"\u003eurllib3/urllib3#3734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and \u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3731\"\u003e#3731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly compressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource consumption even when a small amount of data was requested. Reading small chunks of compressed data is safer and much more efficient now. (CVE-2025-66471 reported by \u003ca href=\"https://github.com/Cycloctane\"\u003e\u003ccode\u003e@​Cycloctane\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-2xpw-w6gg-jr37)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with virtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially leading to a denial of service (DoS) attack by exhausting system resources during decoding. The number of allowed chained encodings is now limited to 5. (CVE-2025-66418 reported by \u003ca href=\"https://github.com/illia-v\"\u003e\u003ccode\u003e@​illia-v\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-gm62-xv2j-4w53)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but your environment contains a Brotli/brotlicffi/brotlipy package anyway, make sure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to  benefit from the security fixes and avoid warnings. Prefer using  \u003ccode\u003eurllib3[brotli]\u003c/code\u003e to install a compatible Brotli package automatically.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c!-- 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/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.6.3 (2026-01-07)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a high-severity security issue where decompression-bomb safeguards of\nthe streaming API were bypassed when HTTP redirects were followed.\n(\u003ccode\u003eGHSA-38jv-5279-wg99 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-38jv-5279-wg99\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by\ndefault. (\u003ccode\u003e[#3743](https://github.com/urllib3/urllib3/issues/3743) \u0026lt;https://github.com/urllib3/urllib3/issues/3743\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten.\n(\u003ccode\u003e[#3752](https://github.com/urllib3/urllib3/issues/3752) \u0026lt;https://github.com/urllib3/urllib3/issues/3752\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.2 (2025-12-11)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in\nthe decoder's buffer when reading compressed chunked responses.\n(\u003ccode\u003e[#3734](https://github.com/urllib3/urllib3/issues/3734) \u0026lt;https://github.com/urllib3/urllib3/issues/3734\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.1 (2025-12-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and\n\u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods.\n(\u003ccode\u003e[#3731](https://github.com/urllib3/urllib3/issues/3731) \u0026lt;https://github.com/urllib3/urllib3/issues/3731\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.0 (2025-12-05)\u003c/h1\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly\ncompressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource\nconsumption even when a small amount of data was requested. Reading small\nchunks of compressed data is safer and much more efficient now.\n(\u003ccode\u003eGHSA-2xpw-w6gg-jr37 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-2xpw-w6gg-jr37\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with\nvirtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially\nleading to a denial of service (DoS) attack by exhausting system resources\nduring decoding. The number of allowed chained encodings is now limited to 5.\n(\u003ccode\u003eGHSA-gm62-xv2j-4w53 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-gm62-xv2j-4w53\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. caution::\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but\nyour environment contains a Brotli/brotlicffi/brotlipy package anyway, make\nsure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to\nbenefit from the security fixes and avoid warnings. Prefer using\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/urllib3/urllib3/commit/0248277dd7ac0239204889ca991353ad3e3a1ddc\"\u003e\u003ccode\u003e0248277\u003c/code\u003e\u003c/a\u003e Release 2.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8864ac407bba8607950025e0979c4c69bc7abc7b\"\u003e\u003ccode\u003e8864ac4\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/70cecb27ca99d56aaaeb63ac27ee270ef2b24c5c\"\u003e\u003ccode\u003e70cecb2\u003c/code\u003e\u003c/a\u003e Fix Scorecard issues related to vulnerable dev dependencies (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3755\"\u003e#3755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/41f249abe1ef3e20768588969c4035aba060a359\"\u003e\u003ccode\u003e41f249a\u003c/code\u003e\u003c/a\u003e Move \u0026quot;v2.0 Migration Guide\u0026quot; to the end of the table of contents (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3747\"\u003e#3747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/fd4dffd2fc544166b76151a2fa3d7b7c0eab540c\"\u003e\u003ccode\u003efd4dffd\u003c/code\u003e\u003c/a\u003e Patch \u003ccode\u003eVerifiedHTTPSConnection\u003c/code\u003e for Emscripten (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003e#3752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/13f0bfd55e4468fe1ea9c6f809d3a87b0f93ebab\"\u003e\u003ccode\u003e13f0bfd\u003c/code\u003e\u003c/a\u003e Handle massive values in Retry-After when calculating time to sleep for (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003e#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8c480bf87bcefd321b3a1ae47f04e908b6b2ed7b\"\u003e\u003ccode\u003e8c480bf\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3748\"\u003e#3748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/4b40616e959c0a2c466e8075f2a785a9f99bb0c1\"\u003e\u003ccode\u003e4b40616\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.3.0 to 5.0.1 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3750\"\u003e#3750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/82b8479663d037d220c883f1584dd01a43bb273b\"\u003e\u003ccode\u003e82b8479\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3749\"\u003e#3749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/34284cb01700bb7d4fdd472f909e22393e9174e2\"\u003e\u003ccode\u003e34284cb\u003c/code\u003e\u003c/a\u003e Mention experimental features in the security policy (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3746\"\u003e#3746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.5.0...2.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` from 0.47.1 to 0.49.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.49.1\u003c/h2\u003e\n\u003cp\u003eThis release fixes a security vulnerability in the parsing logic of the \u003ccode\u003eRange\u003c/code\u003e header in \u003ccode\u003eFileResponse\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eYou can view the full security advisory: \u003ca href=\"https://github.com/Kludex/starlette/security/advisories/GHSA-7f5h-v6xp-fcq8\"\u003eGHSA-7f5h-v6xp-fcq8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize the HTTP ranges parsing logic \u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e4ea6e22b489ec388d6004cfbca52dd5b147127c5\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.0...0.49.1\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.0...0.49.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.49.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eencoding\u003c/code\u003e parameter to \u003ccode\u003eConfig\u003c/code\u003e class \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003e#2996\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport multiple cookie headers in \u003ccode\u003eRequest.cookies\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3029\"\u003e#3029\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLiteral\u003c/code\u003e type for \u003ccode\u003eWebSocketEndpoint\u003c/code\u003e encoding values \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003e#3027\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDo not pollute exception context in \u003ccode\u003eMiddleware\u003c/code\u003e when using \u003ccode\u003eBaseHTTPMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003e#2976\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TheWesDias\"\u003e\u003ccode\u003e@​TheWesDias\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3017\"\u003eKludex/starlette#3017\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gmos2104\"\u003e\u003ccode\u003e@​gmos2104\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003eKludex/starlette#3027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/secrett2633\"\u003e\u003ccode\u003e@​secrett2633\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003eKludex/starlette#2996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adam-sikora\"\u003e\u003ccode\u003e@​adam-sikora\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003eKludex/starlette#2976\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.48.0...0.49.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.48.0...0.49.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.48.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd official Python 3.14 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3013\"\u003e#3013\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ca href=\"https://www.rfc-editor.org/rfc/rfc9110\"\u003eRFC9110\u003c/a\u003e http status names \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003e#2939\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yakimka\"\u003e\u003ccode\u003e@​yakimka\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2943\"\u003eKludex/starlette#2943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mbeijen\"\u003e\u003ccode\u003e@​mbeijen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003eKludex/starlette#2939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.47.3...0.48.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.47.3...0.48.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.49.1 (October 28, 2025)\u003c/h2\u003e\n\u003cp\u003eThis release fixes a security vulnerability in the parsing logic of the \u003ccode\u003eRange\u003c/code\u003e header in \u003ccode\u003eFileResponse\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eYou can view the full security advisory: \u003ca href=\"https://github.com/Kludex/starlette/security/advisories/GHSA-7f5h-v6xp-fcq8\"\u003eGHSA-7f5h-v6xp-fcq8\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize the HTTP ranges parsing logic \u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e4ea6e22b489ec388d6004cfbca52dd5b147127c5\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.49.0 (October 28, 2025)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eencoding\u003c/code\u003e parameter to \u003ccode\u003eConfig\u003c/code\u003e class \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003e#2996\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport multiple cookie headers in \u003ccode\u003eRequest.cookies\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3029\"\u003e#3029\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLiteral\u003c/code\u003e type for \u003ccode\u003eWebSocketEndpoint\u003c/code\u003e encoding values \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003e#3027\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDo not pollute exception context in \u003ccode\u003eMiddleware\u003c/code\u003e when using \u003ccode\u003eBaseHTTPMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003e#2976\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.48.0 (September 13, 2025)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd official Python 3.14 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3013\"\u003e#3013\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ca href=\"https://www.rfc-editor.org/rfc/rfc9110\"\u003eRFC9110\u003c/a\u003e http status names \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003e#2939\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/7e4b7428f273dbdc875dcd036d20804bcfc7b2ee\"\u003e\u003ccode\u003e7e4b742\u003c/code\u003e\u003c/a\u003e Version 0.49.1 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3047\"\u003e#3047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e\u003ccode\u003e4ea6e22\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/7d88ea6f8ec8aa99cdb5fc7a10b88db5aadfdfee\"\u003e\u003ccode\u003e7d88ea6\u003c/code\u003e\u003c/a\u003e Version 0.49.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3046\"\u003e#3046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/26d66bbfb05c7bbecbbb57106c65f33682f8174e\"\u003e\u003ccode\u003e26d66bb\u003c/code\u003e\u003c/a\u003e Do not pollute exception context in Middleware (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/a59397db889e3a96c4f34b1406957a3b92e1e8b5\"\u003e\u003ccode\u003ea59397d\u003c/code\u003e\u003c/a\u003e Set encodings when reading config files (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3b7f0cbf598be305528a498a35089ce723060372\"\u003e\u003ccode\u003e3b7f0cb\u003c/code\u003e\u003c/a\u003e test: add test for unknown status (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3035\"\u003e#3035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/b09ce1a99d352ee6f5b896597f03a1a57507afcd\"\u003e\u003ccode\u003eb09ce1a\u003c/code\u003e\u003c/a\u003e docs: fix legibility issues on sponsorship page (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3039\"\u003e#3039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/0f0edcf8007412d9536bf8714c5815ce8f5dba4b\"\u003e\u003ccode\u003e0f0edcf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Add Marcelo Trylesinski to the license (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3025\"\u003e#3025\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3044\"\u003e#3044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3912d6313730cc6004dfb4436e37dbc1a81db7c8\"\u003e\u003ccode\u003e3912d63\u003c/code\u003e\u003c/a\u003e docs: add social icons (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3038\"\u003e#3038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4915a9309fcad58ac08b9fa550563d3287b531ad\"\u003e\u003ccode\u003e4915a93\u003c/code\u003e\u003c/a\u003e Add discord to README/docs (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3034\"\u003e#3034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.47.3...0.49.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `langchain-core` from 0.3.68 to 0.3.81\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langchain/releases\"\u003elangchain-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elangchain-core==0.3.81\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==0.3.80\u003c/p\u003e\n\u003cp\u003erelease(core): 0.3.81 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34459\"\u003e#34459\u003c/a\u003e)\nfix(core): serialization patch (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34458\"\u003e#34458\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-core==0.3.80\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==0.3.79\u003c/p\u003e\n\u003cp\u003erelease(core): 0.3.80 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34039\"\u003e#34039\u003c/a\u003e)\nfix(core): fix validation for input variables in f-string templates, restrict functionality supported by jinja2, mustache templates  (GHSA-6qv9-48xg-fc7f) (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34038\"\u003e#34038\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/langchain-ai/langchain/commit/6dc06da1bb2f3781844895c259a67e40bc598f19\"\u003e\u003ccode\u003e6dc06da\u003c/code\u003e\u003c/a\u003e release(core): 0.3.81 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34459\"\u003e#34459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/d9ec4c5cc78960abd37da79b0250f5642e6f0ce6\"\u003e\u003ccode\u003ed9ec4c5\u003c/code\u003e\u003c/a\u003e fix(core): serialization patch (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34458\"\u003e#34458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/640d85c60f9fa6ba9c2fddeccca76d03dfb53b29\"\u003e\u003ccode\u003e640d85c\u003c/code\u003e\u003c/a\u003e release(core): 0.3.80 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34039\"\u003e#34039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/fa7789d6c21222b85211755d822ef698d3b34e00\"\u003e\u003ccode\u003efa7789d\u003c/code\u003e\u003c/a\u003e fix(core): fix validation for input variables in f-string templates, restrict...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/b93d2f7f3a0a42c455c25d346e907c6765016649\"\u003e\u003ccode\u003eb93d2f7\u003c/code\u003e\u003c/a\u003e release(core): 0.3.79 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/33401\"\u003e#33401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/a763ebe86cbf63ca1f378286c1dd76e16d88e503\"\u003e\u003ccode\u003ea763ebe\u003c/code\u003e\u003c/a\u003e release(anthropic): 0.3.22 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/33394\"\u003e#33394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/5fa1094451c9612ab27f89338c549e1b54ae8fbf\"\u003e\u003ccode\u003e5fa1094\u003c/code\u003e\u003c/a\u003e fix(anthropic,standard-tests): carry over updates to v0.3 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/33393\"\u003e#33393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/dd4de696b838b0d4f2d4769eb4bc3b1fba58afb4\"\u003e\u003ccode\u003edd4de69\u003c/code\u003e\u003c/a\u003e fix(core): handle parent/child mustache vars (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/33346\"\u003e#33346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/5459ff1ee35a0e4de699cefa5056122701796b89\"\u003e\u003ccode\u003e5459ff1\u003c/code\u003e\u003c/a\u003e chore: cap lib upper bounds, run sync (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/33320\"\u003e#33320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/f95669aa0aee8df05b55765a5d5ea3000fd61dfe\"\u003e\u003ccode\u003ef95669a\u003c/code\u003e\u003c/a\u003e release(openai): 0.3.35 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/33299\"\u003e#33299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langchain/compare/langchain-core==0.3.76...langchain-core==0.3.81\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.5.0 to 2.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6.3\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where decompression-bomb safeguards of the streaming API were bypassed when HTTP redirects were followed. (CVE-2026-21441 reported by \u003ca href=\"https://github.com/D47A\"\u003e\u003ccode\u003e@​D47A\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-38jv-5279-wg99)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by default. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003eurllib3/urllib3#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003eurllib3/urllib3#3752\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in the decoder's buffer when reading compressed chunked responses. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3734\"\u003eurllib3/urllib3#3734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and \u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3731\"\u003e#3731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly compressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource consumption even when a small amount of data was requested. Reading small chunks of compressed data is safer and much more efficient now. (CVE-2025-66471 reported by \u003ca href=\"https://github.com/Cycloctane\"\u003e\u003ccode\u003e@​Cycloctane\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-2xpw-w6gg-jr37)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with virtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially leading to a denial of service (DoS) attack by exhausting system resources during decoding. The number of allowed chained encodings is now limited to 5. (CVE-2025-66418 reported by \u003ca href=\"https://github.com/illia-v\"\u003e\u003ccode\u003e@​illia-v\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-gm62-xv2j-4w53)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but your environment contains a Brotli/brotlicffi/brotlipy package anyway, make sure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to  benefit from the security fixes and avoid warnings. Prefer using  \u003ccode\u003eurllib3[brotli]\u003c/code\u003e to install a compatible Brotli package automatically.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c!-- 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/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.6.3 (2026-01-07)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a high-severity security issue where decompression-bomb safeguards of\nthe streaming API were bypassed when HTTP redirects were followed.\n(\u003ccode\u003eGHSA-38jv-5279-wg99 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-38jv-5279-wg99\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by\ndefault. (\u003ccode\u003e[#3743](https://github.com/urllib3/urllib3/issues/3743) \u0026lt;https://github.com/urllib3/urllib3/issues/3743\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten.\n(\u003ccode\u003e[#3752](https://github.com/urllib3/urllib3/issues/3752) \u0026lt;https://github.com/urllib3/urllib3/issues/3752\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.2 (2025-12-11)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in\nthe decoder's buffer when reading compressed chunked responses.\n(\u003ccode\u003e[#3734](https://github.com/urllib3/urllib3/issues/3734) \u0026lt;https://github.com/urllib3/urllib3/issues/3734\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.1 (2025-12-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and\n\u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods.\n(\u003ccode\u003e[#3731](https://github.com/urllib3/urllib3/issues/3731) \u0026lt;https://github.com/urllib3/urllib3/issues/3731\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.0 (2025-12-05)\u003c/h1\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly\ncompressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource\nconsumption even when a small amount of data was requested. Reading small\nchunks of compressed data is safer and much more efficient now.\n(\u003ccode\u003eGHSA-2xpw-w6gg-jr37 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-2xpw-w6gg-jr37\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with\nvirtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially\nleading to a denial of service (DoS) attack by exhausting system resources\nduring decoding. The number of allowed chained encodings is now limited to 5.\n(\u003ccode\u003eGHSA-gm62-xv2j-4w53 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-gm62-xv2j-4w53\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. caution::\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but\nyour environment contains a Brotli/brotlicffi/brotlipy package anyway, make\nsure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to\nbenefit from the security fixes and avoid warnings. Prefer using\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/urllib3/urllib3/commit/0248277dd7ac0239204889ca991353ad3e3a1ddc\"\u003e\u003ccode\u003e0248277\u003c/code\u003e\u003c/a\u003e Release 2.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8864ac407bba8607950025e0979c4c69bc7abc7b\"\u003e\u003ccode\u003e8864ac4\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/70cecb27ca99d56aaaeb63ac27ee270ef2b24c5c\"\u003e\u003ccode\u003e70cecb2\u003c/code\u003e\u003c/a\u003e Fix Scorecard issues related to vulnerable dev dependencies (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3755\"\u003e#3755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/41f249abe1ef3e20768588969c4035aba060a359\"\u003e\u003ccode\u003e41f249a\u003c/code\u003e\u003c/a\u003e Move \u0026quot;v2.0 Migration Guide\u0026quot; to the end of the table of contents (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3747\"\u003e#3747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/fd4dffd2fc544166b76151a2fa3d7b7c0eab540c\"\u003e\u003ccode\u003efd4dffd\u003c/code\u003e\u003c/a\u003e Patch \u003ccode\u003eVerifiedHTTPSConnection\u003c/code\u003e for Emscripten (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003e#3752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/13f0bfd55e4468fe1ea9c6f809d3a87b0f93ebab\"\u003e\u003ccode\u003e13f0bfd\u003c/code\u003e\u003c/a\u003e Handle massive values in Retry-After when calculating time to sleep for (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003e#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8c480bf87bcefd321b3a1ae47f04e908b6b2ed7b\"\u003e\u003ccode\u003e8c480bf\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3748\"\u003e#3748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/4b40616e959c0a2c466e8075f2a785a9f99bb0c1\"\u003e\u003ccode\u003e4b40616\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.3.0 to 5.0.1 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3750\"\u003e#3750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/82b8479663d037d220c883f1584dd01a43bb273b\"\u003e\u003ccode\u003e82b8479\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3749\"\u003e#3749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/34284cb01700bb7d4fdd472f909e22393e9174e2\"\u003e\u003ccode\u003e34284cb\u003c/code\u003e\u003c/a\u003e Mention experimental features in the security policy (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3746\"\u003e#3746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.5.0...2.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/okisdev/assistant-ui/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/okisdev/assistant-ui/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/okisdev%2Fassistant-ui/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"},{"uuid":"2806383654","node_id":"PR_kwDOEkpJIs6nRgQm","number":191,"state":"closed","title":"Bump the dependencies group across 1 directory with 36 updates","user":"dependabot[bot]","labels":["skip-changelog","dependabot-deps-updates"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2025-09-14T22:11:52.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-07T22:14:26.000Z","updated_at":"2025-09-14T22:11:52.000Z","time_to_close":604646,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":36,"packages":[{"name":"mkdocstrings","old_version":"0.29.1","new_version":"0.30.0","repository_url":"https://github.com/mkdocstrings/mkdocstrings"},{"name":"argparse-manpage","old_version":"4.6","new_version":"4.7","repository_url":"https://github.com/praiskup/argparse-manpage"},{"name":"backrefs","old_version":"5.8","new_version":"6.0.1","repository_url":"https://github.com/facelessuser/backrefs"},{"name":"bracex","old_version":"2.5.post1","new_version":"2.6","repository_url":"https://github.com/facelessuser/bracex"},{"name":"cachetools","old_version":"6.0.0","new_version":"6.2.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"coverage","old_version":"7.9.1","new_version":"7.10.6","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"cryptography","old_version":"45.0.4","new_version":"45.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"filelock","old_version":"3.18.0","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"gitpython","old_version":"3.1.44","new_version":"3.1.45","repository_url":"https://github.com/gitpython-developers/GitPython"},{"name":"griffe","old_version":"1.7.3","new_version":"1.14.0","repository_url":"https://github.com/mkdocstrings/griffe"},{"name":"importlib-resources","old_version":"5.0.7","new_version":"6.5.2","repository_url":"https://github.com/python/importlib_resources"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.1","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"markdown","old_version":"3.8","new_version":"3.9","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"mkdocs-autorefs","old_version":"1.4.2","new_version":"1.4.3","repository_url":"https://github.com/mkdocstrings/autorefs"},{"name":"mkdocs-material","old_version":"9.6.14","new_version":"9.6.19","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"mkdocstrings-python","old_version":"1.16.12","new_version":"1.18.2","repository_url":"https://github.com/mkdocstrings/python"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"pbr","old_version":"6.1.1","new_version":"7.0.1"},{"name":"pillow","old_version":"11.2.1","new_version":"11.3.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pymdown-extensions","old_version":"10.15","new_version":"10.16.1","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"pytest","old_version":"8.4.0","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-sugar","old_version":"1.0.0","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-xdist","old_version":"3.7.0","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rich","old_version":"14.0.0","new_version":"14.1.0","repository_url":"https://github.com/Textualize/rich"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.27.1","repository_url":"https://github.com/crate-py/rpds"},{"name":"setproctitle","old_version":"1.3.6","new_version":"1.3.7","repository_url":"https://github.com/dvarrazzo/py-setproctitle"},{"name":"urllib3","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"wcmatch","old_version":"10.0","new_version":"10.1","repository_url":"https://github.com/facelessuser/wcmatch"}],"path":null,"ecosystem":"conda"},"body":"Bumps the dependencies group with 36 updates in the /.config directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings) | `0.29.1` | `0.30.0` |\n| [argparse-manpage](https://github.com/praiskup/argparse-manpage) | `4.6` | `4.7` |\n| [backrefs](https://github.com/facelessuser/backrefs) | `5.8` | `6.0.1` |\n| [bracex](https://github.com/facelessuser/bracex) | `2.5.post1` | `2.6` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.0.0` | `6.2.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.8.3` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.3` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.9.1` | `7.10.6` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.4` | `45.0.7` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.19.1` |\n| [gitpython](https://github.com/gitpython-developers/GitPython) | `3.1.44` | `3.1.45` |\n| [griffe](https://github.com/mkdocstrings/griffe) | `1.7.3` | `1.14.0` |\n| [importlib-resources](https://github.com/python/importlib_resources) | `5.0.7` | `6.5.2` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.8` | `3.9` |\n| [mkdocs-autorefs](https://github.com/mkdocstrings/autorefs) | `1.4.2` | `1.4.3` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.6.14` | `9.6.19` |\n| [mkdocstrings-python](https://github.com/mkdocstrings/python) | `1.16.12` | `1.18.2` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [pbr](https://docs.openstack.org/pbr/latest/) | `6.1.1` | `7.0.1` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `11.3.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.4.0` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.15` | `10.16.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.0` | `8.4.2` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `1.0.0` | `1.1.1` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.7.0` | `3.8.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rich](https://github.com/Textualize/rich) | `14.0.0` | `14.1.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.27.1` |\n| [setproctitle](https://github.com/dvarrazzo/py-setproctitle) | `1.3.6` | `1.3.7` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.4.0` | `2.5.0` |\n| [wcmatch](https://github.com/facelessuser/wcmatch) | `10.0` | `10.1` |\n\n\nUpdates `mkdocstrings` from 0.29.1 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases\"\u003emkdocstrings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.30.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\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/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md\"\u003emkdocstrings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\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/mkdocstrings/mkdocstrings/commit/2be445f054c1191d308af7ee0cc881e359f5a4c7\"\u003e\u003ccode\u003e2be445f\u003c/code\u003e\u003c/a\u003e chore: Prepare release 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003e\u003ccode\u003ef856160\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip regist...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e\u003ccode\u003e2b4ed54\u003c/code\u003e\u003c/a\u003e feat: Add I18N support (translations)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/51f217f38af9475415f758866697158d9010967d\"\u003e\u003ccode\u003e51f217f\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/b1da3d02c4f432f603cbb0004bb35099327706db\"\u003e\u003ccode\u003eb1da3d0\u003c/code\u003e\u003c/a\u003e ci: Ignore Ruff warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d5bf4e1ed0370853f968b210ad77913faf106eed\"\u003e\u003ccode\u003ed5bf4e1\u003c/code\u003e\u003c/a\u003e docs: Update link to YAML idiosyncrasies\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argparse-manpage` from 4.6 to 4.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/praiskup/argparse-manpage/releases\"\u003eargparse-manpage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eargparse-manpage v4.7\u003c/h2\u003e\n\u003cp\u003eNews in v4.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esys.stdout used instead of /dev/stdout\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed build compatibility with newer setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed deprecation warnings for datetime and setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003enew compat method for handling SOURCE_DATE_EPOCH\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/praiskup/argparse-manpage/blob/main/NEWS\"\u003eargparse-manpage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cpre\u003e\u003ccode\u003e\nWARNING: The 'build_manpage' setup.py command will be removed v5\nWARNING: We'll drop the Python 2.7 support in v5\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esys.stdout used instead of /dev/stdout\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed build compatibility with newer setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed deprecation warnings for datetime and setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003enew compat method for handling SOURCE_DATE_EPOCH\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre\u003e\u003ccode\u003e\nNews in v4.6\n\u003cul\u003e\n\u003cli\u003eFix the build against Python 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.5\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWe newly provide \u003ccode\u003ebuild_manpages.build_py\u003c/code\u003e and \u003ccode\u003ebuild_manpages.install\u003c/code\u003e\ncommand classes that are re-usable from \u003ccode\u003epyproject.toml\u003c/code\u003e.  No need to\nprovide \u003ccode\u003esetup.py\u003c/code\u003e because of \u003ccode\u003eargparse-manpage\u003c/code\u003e.  Solved issue#85.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre\u003e\u003ccode\u003e\nNews in v4.4\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eprog=\u003c/code\u003e specifier (in setup.py/setup.cfg/pyproject.toml) is now\u003cbr /\u003e\nbetter handled so it doesn't conflict with ArgumentParser(prog=..).\u003cbr /\u003e\nFixes \u003ca href=\"https://redirect.github.com/praiskup/argparse-manpage/issues/79\"\u003epraiskup/argparse-manpage#79\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNews in v4.3\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe pyproject.toml parsing feature now depends on the python3-tomli library\u003cbr /\u003e\ninstead of python-toml for \u0026quot;python_environment \u0026gt;3, \u0026lt;=3.10\u0026quot;.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.2\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for pyproject.toml specification of manpages added.\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/praiskup/argparse-manpage/commit/7883becca340aa3ea124143e032848a7b2bdf84b\"\u003e\u003ccode\u003e7883bec\u003c/code\u003e\u003c/a\u003e Release v4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/765389ed4ee835c09451823d7fbfe22b0dc1674a\"\u003e\u003ccode\u003e765389e\u003c/code\u003e\u003c/a\u003e Move the SOURCE_DATE_EPOCH hack on one place\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/a06ed9c1f03360f8089819c8e845cd670687eb64\"\u003e\u003ccode\u003ea06ed9c\u003c/code\u003e\u003c/a\u003e ci: fix RPM build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/c985432ee15824c43c75548c7ec1bd6f105a7f22\"\u003e\u003ccode\u003ec985432\u003c/code\u003e\u003c/a\u003e Fix deprecation warnings for datetime and setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/306658941368ff0c2dfe2e4fa29b889fb5bbeb2b\"\u003e\u003ccode\u003e3066589\u003c/code\u003e\u003c/a\u003e ci: fedora-tox update list of environments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/b3a2c50e2abc47bd822d848864a80e35251a3147\"\u003e\u003ccode\u003eb3a2c50\u003c/code\u003e\u003c/a\u003e ci: enable ruff \u0026amp; bump deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/6dc54a5272e70b081af728958fd7554a6b0372f3\"\u003e\u003ccode\u003e6dc54a5\u003c/code\u003e\u003c/a\u003e Fix compatibility with newer setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/29f89bba536cf28f6ed66721367ff2ee3f6209b7\"\u003e\u003ccode\u003e29f89bb\u003c/code\u003e\u003c/a\u003e Fix some comments about sys.argv alteration for usage message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/ade76cc8ef49ec804955c6b4027dbae52d482034\"\u003e\u003ccode\u003eade76cc\u003c/code\u003e\u003c/a\u003e Use sys.stdout instead of /dev/stdout\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/praiskup/argparse-manpage/compare/v4.6...v4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `backrefs` from 5.8 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/backrefs/releases\"\u003ebackrefs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix a regression that created an ASCII binary property that would override the ASCII block property.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: POSIX character classes will now always use POSIX compatibility rules instead of Unicode standard rules,\nif any are specified in the Unicode specification. The affected character classes are: \u003ccode\u003e[[:alnum:]]\u003c/code\u003e, \u003ccode\u003e[[:digit:]]\u003c/code\u003e,\n\u003ccode\u003e[[:xdigit:]]\u003c/code\u003e, and  \u003ccode\u003e[[:punct:]]\u003c/code\u003e. To explicitly use standard Unicode rules for these compatibility properties, use\nthe Unicode property form instead: \u003ccode\u003e[\\p{Alnum}]\u003c/code\u003e, \u003ccode\u003e[\\p{Digit}]\u003c/code\u003e, \u003ccode\u003e[\\p{Punct}]\u003c/code\u003e, or \u003ccode\u003e[\\p{XDigit}]\u003c/code\u003e. This has changed\nto ensure no confusion for users expecting compatible POSIX style character class properties.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Scoped ASCII/Unicode flags (\u003ccode\u003e(?a:pattern)\u003c/code\u003e/\u003ccode\u003e(?u:pattern)\u003c/code\u003e) should be respected for Unicode properties in\n\u003ccode\u003ebre\u003c/code\u003e and will ensure ASCII or Unicode range if used.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix issues related to detecting disabled scoped flags.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eENHANCE\u003c/strong\u003e: Switch to deploying with PyPI's \u0026quot;Trusted Publisher\u0026quot;.\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/facelessuser/backrefs/commit/63f8a4b14750828b7c1e385844fd36f6f89859e4\"\u003e\u003ccode\u003e63f8a4b\u003c/code\u003e\u003c/a\u003e Fix grammar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7f4bf611e6e7fcc2aa4e0eba2872b5f51b7fc908\"\u003e\u003ccode\u003e7f4bf61\u003c/code\u003e\u003c/a\u003e Rework POSIX alias\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/956df5f387f1958110e5a7cf2a98d42a8309d9b6\"\u003e\u003ccode\u003e956df5f\u003c/code\u003e\u003c/a\u003e Fix ASCII block regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7a948f083c3c87114a8dd87c95dff1893f3af82a\"\u003e\u003ccode\u003e7a948f0\u003c/code\u003e\u003c/a\u003e Clean up code and add more comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/9b2e406be36c1e0fc72651adbc7d2d63c4151483\"\u003e\u003ccode\u003e9b2e406\u003c/code\u003e\u003c/a\u003e Add more flag tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/47d62b1270ca7f1717e7acdb56e8e6ed3e9e8f10\"\u003e\u003ccode\u003e47d62b1\u003c/code\u003e\u003c/a\u003e Handle enable/disable properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/8e7596700b913e13f478da57e0ba0965f2d9ed3b\"\u003e\u003ccode\u003e8e75967\u003c/code\u003e\u003c/a\u003e Fix issues with scoped flags (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/0df8e7746d3ea31824af97ea4ed713a3facded5b\"\u003e\u003ccode\u003e0df8e77\u003c/code\u003e\u003c/a\u003e POSIX character classes should use POSIX compatibility rules by default (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/191\"\u003e#191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/31fd8c5c0338eefe41452d52f99012c0fecfdd82\"\u003e\u003ccode\u003e31fd8c5\u003c/code\u003e\u003c/a\u003e Call mkdocs directly on deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/8b3a24bfc1cacde6fc9ab4edfaed0f5a9206c554\"\u003e\u003ccode\u003e8b3a24b\u003c/code\u003e\u003c/a\u003e Fix deploy logic\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facelessuser/backrefs/compare/5.8...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bracex` from 2.5.post1 to 2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/bracex/releases\"\u003ebracex's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/6d109c55372f0d5086adb7cf84a951cc06391a69\"\u003e\u003ccode\u003e6d109c5\u003c/code\u003e\u003c/a\u003e Add trusted publishing and support for Python 3.14 (\u003ca href=\"https://redirect.github.com/facelessuser/bracex/issues/44\"\u003e#44\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/c14d46fb495a8fdcd0ec51d4dd42aa587807407d\"\u003e\u003ccode\u003ec14d46f\u003c/code\u003e\u003c/a\u003e Add security policy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/14645af4bf4de0e1abe4fd6c29bf98871f549273\"\u003e\u003ccode\u003e14645af\u003c/code\u003e\u003c/a\u003e Typos: remove duplicate words\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/bracex/compare/2.5.post1...2.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 6.0.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.2.0 (2025-08-25)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove general \u003ccode\u003eRRCache\u003c/code\u003e performance by storing cache keys in an\nadditional sequence container.  Note that this will increase memory\nconsumption.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more unit tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\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/tkem/cachetools/commit/4a238adc490e81db58d843b011afdbe3dd9097a5\"\u003e\u003ccode\u003e4a238ad\u003c/code\u003e\u003c/a\u003e Release v6.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/9d511b769f8fb58981fb77fece846984aaaf49e6\"\u003e\u003ccode\u003e9d511b7\u003c/code\u003e\u003c/a\u003e Improve unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/79aa8c7c0eacd5d75e154bc23687ecdaf9ad1d75\"\u003e\u003ccode\u003e79aa8c7\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/356\"\u003e#356\u003c/a\u003e: Improve RRCache performance.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/bb6d71a745785429b14aae30b7752f4765dc35c3\"\u003e\u003ccode\u003ebb6d71a\u003c/code\u003e\u003c/a\u003e Release v6.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/77a9c59e3324496a79e6c4d5a7b5bfdb9a7f7f42\"\u003e\u003ccode\u003e77a9c59\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/260\"\u003e#260\u003c/a\u003e: Use LFUCache implementation based on Blake Reid's \u0026quot;cacheing\u0026quot; library.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b1d4eb2972ca8f0ab49e22eae3bb47c1eb8b552c\"\u003e\u003ccode\u003eb1d4eb2\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.4.2 to 5.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/820b154494e91aa5bfe63a3fa2033c63a9c84603\"\u003e\u003ccode\u003e820b154\u003c/code\u003e\u003c/a\u003e Refactor \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e unit tests.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v6.0.0...v6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.6.15 to 2025.8.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1\"\u003e\u003ccode\u003eddd90c6\u003c/code\u003e\u003c/a\u003e 2025.07.14 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d905221c916d51077f5c8071a0f7aa2df2a37c52\"\u003e\u003ccode\u003ed905221\u003c/code\u003e\u003c/a\u003e 2025.07.09 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.06.15...2025.08.03\"\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.2 to 3.4.3\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.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\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.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\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/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.9.1 to 7.10.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.6 — 2025-08-29\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003esource\u003c/code\u003e directories were not properly communicated to subprocesses\nthat ran in different directories, as reported in \u003ccode\u003eissue 1499\u003c/code\u003e_.  This is now\nfixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: \u003ccode\u003eAlex Gaynor continues fine-tuning \u0026lt;pull 2038_\u0026gt;\u003c/code\u003e_ the speed of\ncombination, especially with many contexts.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1499: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003enedbat/coveragepy#1499\u003c/a\u003e\n.. _pull 2038: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2038\"\u003enedbat/coveragepy#2038\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-5:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.5 — 2025-08-23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBig speed improvements for \u003ccode\u003ecoverage combine\u003c/code\u003e: it's now about twice as\nfast! Huge thanks to Alex Gaynor for pull requests \u003ccode\u003e2032 \u0026lt;pull 2032_\u0026gt;\u003c/code\u003e\u003cem\u003e,\n\u003ccode\u003e2033 \u0026lt;pull 2033_\u0026gt;\u003c/code\u003e\u003c/em\u003e, and \u003ccode\u003e2034 \u0026lt;pull 2034_\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _pull 2032: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2032\"\u003enedbat/coveragepy#2032\u003c/a\u003e\n.. _pull 2033: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2033\"\u003enedbat/coveragepy#2033\u003c/a\u003e\n.. _pull 2034: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2034\"\u003enedbat/coveragepy#2034\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-4:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.4 — 2025-08-16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003epatch = fork\u003c/code\u003e for times when the built-in forking support is\ninsufficient.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003epatch = execv\u003c/code\u003e also inherits the entire coverage configuration now.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _changes_7-10-3:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.3 — 2025-08-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixes for \u003ccode\u003epatch = subprocess\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses spawned yet more subprocesses simultaneously, some coverage\ncould be missed.  This is now fixed, closing \u003ccode\u003eissue 2024\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses were created in other directories, their data files were\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/nedbat/coveragepy/commit/88c55ff87437f7e59b42d131d0e2b6ce413546bf\"\u003e\u003ccode\u003e88c55ff\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/01d89959bfa825f661121e0f8d173f3ae1ecedac\"\u003e\u003ccode\u003e01d8995\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9b0c24ffc17840464c2343b702a6ee44e10fcadf\"\u003e\u003ccode\u003e9b0c24f\u003c/code\u003e\u003c/a\u003e docs: thanks Alex \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2038\"\u003e#2038\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/66d69108654f6fc1de916a37fc06ac898091aa2d\"\u003e\u003ccode\u003e66d6910\u003c/code\u003e\u003c/a\u003e fix: make \u003ccode\u003esource\u003c/code\u003e paths absolute where they exist. \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003e#1499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/bb3382f50f2b91aebb046d665334a5d361e5ddc5\"\u003e\u003ccode\u003ebb3382f\u003c/code\u003e\u003c/a\u003e build: no need for the combine/html times now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9ea349a164527832a49faa3eeec628d59ef75c7c\"\u003e\u003ccode\u003e9ea349a\u003c/code\u003e\u003c/a\u003e lab: warn_executed.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/808c9b48af3ad7b567182d383eb31451615664e0\"\u003e\u003ccode\u003e808c9b4\u003c/code\u003e\u003c/a\u003e build: changing metacov.ini should trigger metacov\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/384f5f22bd1ef52000d80922de03922a58ff936c\"\u003e\u003ccode\u003e384f5f2\u003c/code\u003e\u003c/a\u003e build: oops, some 'if's are really line pragmas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a7224af73365ba2d217f0e0966c7873c5bac3a67\"\u003e\u003ccode\u003ea7224af\u003c/code\u003e\u003c/a\u003e perf: pre-compute the mapping between other_db.context and main.context (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2038\"\u003e#2038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5c00c5ba4bcd4f7da6a9f0ccd0797e0944415e8a\"\u003e\u003ccode\u003e5c00c5b\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 3 updates (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2039\"\u003e#2039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.9.1...7.10.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 45.0.4 to 45.0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e45.0.7 - 2025-09-01\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Added a function to support an upcoming ``pyOpenSSL`` release.\n\u003cp\u003e.. _v45-0-6:\u003c/p\u003e\n\u003cp\u003e45.0.6 - 2025-08-05\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.2.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-5:\u003c/p\u003e\n\u003cp\u003e45.0.5 - 2025-07-02\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.1.\n\u003cp\u003e.. _v45-0-4:\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/f52a3e14965fa16d03813d3ac78cd050d607794a\"\u003e\u003ccode\u003ef52a3e1\u003c/code\u003e\u003c/a\u003e prep for a 45.0.7 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13378\"\u003e#13378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/66198c23c97c9594d64540e5a866e4b4121aec2d\"\u003e\u003ccode\u003e66198c2\u003c/code\u003e\u003c/a\u003e Bump for release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13249\"\u003e#13249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3e53a233b65123d2a836b58ccdc427ed5207f92b\"\u003e\u003ccode\u003e3e53a23\u003c/code\u003e\u003c/a\u003e Bump for 45.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13135\"\u003e#13135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/45.0.4...45.0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `distlib` from 0.3.9 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/distlib/blob/master/CHANGES.rst\"\u003edistlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.4.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nReleased: 2025-07-17\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003emarkers\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003einterpret_parsed\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ewheel\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/238\"\u003e#238\u003c/a\u003e: Add build tag to wheel metadata if specified.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/243\"\u003e#243\u003c/a\u003e: Update to support free-threading version of Python (3.13t).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e: Support subdirectories in the dist-info directory. Thanks to Pieter P for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e: Fix path normalisation issue caused by the fix for \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMove import in script wrapper to \u0026quot;if \u003cstrong\u003ename\u003c/strong\u003e == 'main'\u0026quot; clause.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003etests\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/245\"\u003e#245\u003c/a\u003e: Skip test_package_data if a SKIP_EXT_PACKAGE_DATA environment variable is present.\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/aff2cbbc4e8a87b9440cb93472789a213813dbd6\"\u003e\u003ccode\u003eaff2cbb\u003c/code\u003e\u003c/a\u003e Finalise version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/3716c4bcccac19d0c0f2ce0d1272dd33996381b5\"\u003e\u003ccode\u003e3716c4b\u003c/code\u003e\u003c/a\u003e Update change log, widen exception catching in test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/660bd337bf3217a7bd907c2ba8a2f8dd291ac793\"\u003e\u003ccode\u003e660bd33\u003c/code\u003e\u003c/a\u003e Changes for 0.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/56b4ad938455048fc79e599d369e02a1414e9946\"\u003e\u003ccode\u003e56b4ad9\u003c/code\u003e\u003c/a\u003e Guard script wrapper entrypoint import with if \u003cstrong\u003emain\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/242\"\u003e#242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/fe573669087cb1109fb0cc249bf0e06a5461324c\"\u003e\u003ccode\u003efe57366\u003c/code\u003e\u003c/a\u003e docs: update coverage results link (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/250\"\u003e#250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/c3286e508bb60cd2337408d88eb614a93b612d8c\"\u003e\u003ccode\u003ec3286e5\u003c/code\u003e\u003c/a\u003e Temporarily exclude 3.13t on windows-latest.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/e6b83d3b0eeb11d8e7b053f11139d15aab89d196\"\u003e\u003ccode\u003ee6b83d3\u003c/code\u003e\u003c/a\u003e Normalize archive paths in dist-info (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/93baffeaa1773796d802bb761607a6466790dcba\"\u003e\u003ccode\u003e93baffe\u003c/code\u003e\u003c/a\u003e Skip no-longer-relevant test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/83f656836f4b6d8175172fcb8370fbee691f2bec\"\u003e\u003ccode\u003e83f6568\u003c/code\u003e\u003c/a\u003e Support subdirectories in .dist-info (fixes \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/247\"\u003e#247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/f918abd5d20879041704f9d719533b213a55ad48\"\u003e\u003ccode\u003ef918abd\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003etest_wheel.WheelTestCase.test_abi\u003c/code\u003e for freethreading (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/distlib/compare/0.3.9...0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `executing` from 2.2.0 to 2.2.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/bafb305d96572bc8fb668b6564787bbb4fff2809\"\u003e\u003ccode\u003ebafb305\u003c/code\u003e\u003c/a\u003e Add 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/5ed2ba36c2df94c91fefabd919880ffe061dc0f2\"\u003e\u003ccode\u003e5ed2ba3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/alexmojaki/executing/issues/97\"\u003e#97\u003c/a\u003e from alexmojaki/3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/28095d447af50c49e154de5a27b9423611462f3d\"\u003e\u003ccode\u003e28095d4\u003c/code\u003e\u003c/a\u003e refactor: review changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/bb09dc677da7988a2c9555878b3727afa995b2c0\"\u003e\u003ccode\u003ebb09dc6\u003c/code\u003e\u003c/a\u003e refactor: some cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/dabc70ef5cc9a45eb57432822cdcf674af2e1db8\"\u003e\u003ccode\u003edabc70e\u003c/code\u003e\u003c/a\u003e fix: inst.argval can be a tuple for sometimes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/0772f918c432d6451594bcb6ffccba62e32e794c\"\u003e\u003ccode\u003e0772f91\u003c/code\u003e\u003c/a\u003e fix: removed comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/bacc5b699405e6f27d882dd2a71bb0ec30167f37\"\u003e\u003ccode\u003ebacc5b6\u003c/code\u003e\u003c/a\u003e fix: moved verification for CALL_INTRINSIC_2 back to 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/ec090751a1645cd14bfcb20a79b02371ffd6172b\"\u003e\u003ccode\u003eec09075\u003c/code\u003e\u003c/a\u003e test: added sample_results for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/9405fed0769af3ee22dd4f433249f6494688638e\"\u003e\u003ccode\u003e9405fed\u003c/code\u003e\u003c/a\u003e fix: handle synthetic code to store annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/f09e4cd194aa3480c12a9f5afab3524d2a7222f2\"\u003e\u003ccode\u003ef09e4cd\u003c/code\u003e\u003c/a\u003e fix: TypeVar defaults\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/alexmojaki/executing/compare/v2.2.0...v2.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.18.0 to 3.19.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/py-filelock/releases\"\u003efilelock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.19.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd 3.14t (free threading) to matrix by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncrease test coverage by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/434\"\u003etox-dev/filelock#434\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/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.19.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for 3.14 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/432\"\u003etox-dev/filelock#432\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/8d1009f08a6a64624fad91d1079062ef31b8c2b4\"\u003e\u003ccode\u003e8d1009f\u003c/code\u003e\u003c/a\u003e Update release.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/66a428e97a874b44b0310072f6c974226f55a472\"\u003e\u003ccode\u003e66a428e\u003c/code\u003e\u003c/a\u003e Increase test coverage (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0dfc86eebd2c76ae959a409bcbc3112cc1ec5890\"\u003e\u003ccode\u003e0dfc86e\u003c/code\u003e\u003c/a\u003e add 3.14 to matrix (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0c54837e318ebe8a692b529722430cb38134bf7c\"\u003e\u003ccode\u003e0c54837\u003c/code\u003e\u003c/a\u003e Add support for 3.14 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/432\"\u003e#432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/77d02f5ada3a1a92167b1beee35a7815cbde0fcf\"\u003e\u003ccode\u003e77d02f5\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/bc972b33bf253bb9f08db32b19ffd4119a74706e\"\u003e\u003ccode\u003ebc972b3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/429\"\u003e#429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/78d02cb5ff42b22a56ad1a36755361a6b4601765\"\u003e\u003ccode\u003e78d02cb\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/428\"\u003e#428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/18cdb5d1c78a7a459463480303e9820f33cdf041\"\u003e\u003ccode\u003e18cdb5d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/b198a096d2bae58596479497d18a82bbeec515c8\"\u003e\u003ccode\u003eb198a09\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/426\"\u003e#426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/6b097e76de603d9be6a24c5058b6fe53ef003afd\"\u003e\u003ccode\u003e6b097e7\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.18.0...3.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gitpython` from 3.1.44 to 3.1.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gitpython-developers/GitPython/releases\"\u003egitpython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.45\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix various version-related CI breakages by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1987\"\u003egitpython-developers/GitPython#1987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo some CI cleanup to make reports clearer and future changes easier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1989\"\u003egitpython-developers/GitPython#1989\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAffirm that gitdb and smmap advisories can also be created by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1991\"\u003egitpython-developers/GitPython#1991\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix links to gitdb and smmap \u003ccode\u003eSECURITY.md\u003c/code\u003e files by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1992\"\u003egitpython-developers/GitPython#1992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest Python 3.13 regularly on Ubuntu and macOS on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1990\"\u003egitpython-developers/GitPython#1990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRepo.rev_parse: Handle \u003c!-- raw HTML omitted --\u003e^{commit} correctly by \u003ca href=\"https://github.com/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFuzzing: Fix Broken Fuzz Test for Git Submodule Handling by \u003ca href=\"https://github.com/DaveLak\"\u003e\u003ccode\u003e@​DaveLak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1997\"\u003egitpython-developers/GitPython#1997\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWork around Cygwin CI failure \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2004\"\u003e#2004\u003c/a\u003e, except for \u003ccode\u003etest_installation\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2007\"\u003egitpython-developers/GitPython#2007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark \u003ccode\u003etest_installation\u003c/code\u003e xfail on Cygwin CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2009\"\u003egitpython-developers/GitPython#2009\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eIndexFile._to_relative_path\u003c/code\u003e - fix case where absolute path gets stripped of trailing slash by \u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse WSL1 on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2010\"\u003egitpython-developers/GitPython#2010\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest free-threaded Python (but only on Linux) by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2011\"\u003egitpython-developers/GitPython#2011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse property decorator to support typing by \u003ca href=\"https://github.com/Andrej730\"\u003e\u003ccode\u003e@​Andrej730\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2015\"\u003egitpython-developers/GitPython#2015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some incorrect sphinx markups in the docstrings by \u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereplace quansight-labs/setup-python with actions/setup-python by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove type assertions from util.py by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecorrectly handle \u003ccode\u003euname-cmd\u003c/code\u003e that doesn't point to an executable file by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2026\"\u003egitpython-developers/GitPython#2026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse newer ruff style by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2031\"\u003egitpython-developers/GitPython#2031\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHave CodeQL scan GitHub Actions workflows as well as Python code by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2032\"\u003egitpython-developers/GitPython#2032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpecify explicit \u003ccode\u003econtents: read\u003c/code\u003e workflow permissions by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2033\"\u003egitpython-developers/GitPython#2033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GitConfigParser not removing quotes from values by \u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve quoted leading and trailing single-line config var whitespace by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2036\"\u003egitpython-developers/GitPython#2036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor Git.{AutoInterrupt,CatFileContentStream} nesting by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2037\"\u003egitpython-developers/GitPython#2037\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Git.{AutoInterrupt,CatFileContentStream} static typing by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2039\"\u003egitpython-developers/GitPython#2039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI \u003ccode\u003emypy\u003c/code\u003e command on free-threaded Python by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2040\"\u003egitpython-developers/GitPython#2040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit Cygwin CI into non-\u003ccode\u003eperformance\u003c/code\u003e and \u003ccode\u003eperformance\u003c/code\u003e test jobs by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2042\"\u003egitpython-developers/GitPython#2042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpress conditional \u003ccode\u003esetuptools\u003c/code\u003e requirement statically by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2043\"\u003egitpython-developers/GitPython#2043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ambiguous \u003ccode\u003e_safer_popen_windows\u003c/code\u003e comment by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2044\"\u003egitpython-developers/GitPython#2044\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eUSE_SHELL\u003c/code\u003e warning helper signature by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2045\"\u003egitpython-developers/GitPython#2045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest \u003ccode\u003eConfigParser\u003c/code\u003e with whitespace outside the value by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2046\"\u003egitpython-developers/GitPython#2046\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove explicit empty \u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e handling in ConfigParser by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2047\"\u003egitpython-developers/GitPython#2047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious style improvements by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2049\"\u003egitpython-developers/GitPython#2049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't remove quotes if \u003ccode\u003e\\\u003c/code\u003e or \u003ccode\u003e\u0026quot;\u003c/code\u003e are present inside by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2048\"\u003egitpython-developers/GitPython#2048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix updating submodules with relative urls by \u003ca href=\"https://github.com/david0\"\u003e\u003ccode\u003e@​david0\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2051\"\u003egitpython-developers/GitPython#2051\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun \u003ccode\u003ecat_file.py\u003c/code\u003e fixture without site customizations by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2052\"\u003egitpython-developers/GitPython#2052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Cygwin installation on CI for \u003ccode\u003epip\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2053\"\u003egitpython-developers/GitPython#2053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFail \u003ccode\u003etest_installation\u003c/code\u003e on warnings, and remove deprecated license classifier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2054\"\u003egitpython-developers/GitPython#2054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd clearer error version for unsupported index error by \u003ca href=\"https://github.com/tombedor\"\u003e\u003ccode\u003e@​tombedor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2055\"\u003egitpython-developers/GitPython#2055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix name collision by \u003ca href=\"https://github.com/NMertsch\"\u003e\u003ccode\u003e@​NMertsch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2060\"\u003egitpython-developers/GitPython#2060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow relative path url in submodules for submodule_update by \u003ca href=\"https://github.com/t-webber\"\u003e\u003ccode\u003e@​t-webber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2062\"\u003egitpython-developers/GitPython#2062\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/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\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/gitpython-developers/GitPython/commit/6ba2c0a2f9ee7feffd7e079621c4845820180c9a\"\u003e\u003ccode\u003e6ba2c0a\u003c/code\u003e\u003c/a\u003e Prepare a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/bbb3d00ac431dc7966f9715fb813792d234eca81\"\u003e\u003ccode\u003ebbb3d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2062\"\u003e#2062\u003c/a\u003e from t-webber/relative_path_submodules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/1ee1e781929074afd66bff1eae007bbee41d117e\"\u003e\u003ccode\u003e1ee1e78\u003c/code\u003e\u003c/a\u003e Add test case for cloning submodules with relative path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/ec2e2c8b894512e7a2364774d77cdd9db73f0566\"\u003e\u003ccode\u003eec2e2c8\u003c/code\u003e\u003c/a\u003e Allow relative path url in submodules for submodule_update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4d529b71905edae12e4699170f7d9e0a665801b5\"\u003e\u003ccode\u003e4d529b7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2060\"\u003e#2060\u003c/a\u003e from NMertsch/2023-fix-gitconfigparser-autodoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/80fd2c16211738156e65258381a17cdc429ddd08\"\u003e\u003ccode\u003e80fd2c1\u003c/code\u003e\u003c/a\u003e Don't treat sphinx warnings as errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/a4aadb0c04bd13af824c14dcc39f88345aa5c440\"\u003e\u003ccode\u003ea4aadb0\u003c/code\u003e\u003c/a\u003e Fix name collision\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4c7778a93134364cfff7b1597f9eda00a88323af\"\u003e\u003ccode\u003e4c7778a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2057\"\u003e#2057\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/5033c3ffd8917d835658c22e84bd86103a2ae52d\"\u003e\u003ccode\u003e5033c3f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2056\"\u003e#2056\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/496392b9bf781904421cbd171c0c5395a6fe330c\"\u003e\u003ccode\u003e496392b\u003c/code\u003e\u003c/a\u003e Bump cygwin/cygwin-install-action from 5 to 6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gitpython-developers/GitPython/compare/3.1.44...3.1.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `griffe` from 1.7.3 to 1.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/releases\"\u003egriffe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.14.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.14.0\"\u003e1.14.0\u003c/a\u003e - 2025-09-05\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.13.0...1.14.0\"\u003eCompare with 1.13.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eDeprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eon_alias\u003c/code\u003e event's signature changed from \u003ccode\u003eon_alias(self, *, node: AST | ObjectNode, alias: Alias, agent: Visitor | Inspector, **kwargs)\u003c/code\u003e (an [analysis event][analysis-events]) to \u003ccode\u003eon_alias(self, *, alias: Alias, loader: GriffeLoader, **kwargs)\u003c/code\u003e ([a load event][load-events]). Use the new signature, or rename your method to \u003ccode\u003eon_alias_instance\u003c/code\u003e to keep the old signature (\u003ccode\u003eon_alias_instance\u003c/code\u003e is a new analysis event that replaces the old \u003ccode\u003eon_alias\u003c/code\u003e one). Backward compatibility is maintained until next major version.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eon_wildcard_expansion\u003c/code\u003e event is deprecated. Instead, use the \u003ccode\u003eon_alias\u003c/code\u003e event, and check the [\u003ccode\u003ewildcard_imported\u003c/code\u003e][griffe.Alias.wildcard_imported] boolean attribute of aliases.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eon_package_loaded\u003c/code\u003e event is renamed to \u003ccode\u003eon_package\u003c/code\u003e. Backward compatibility is maintained until next major version.\u003c/li\u003e\n\u003cli\u003eThe use of previously exposed Git-related utilities (\u003ccode\u003eassert_git_repo\u003c/code\u003e, \u003ccode\u003eget_repo_root\u003c/code\u003e, \u003ccode\u003eget_latest_tag\u003c/code\u003e and \u003ccode\u003etmp_worktree\u003c/code\u003e) is deprecated, as they are not a core part of the library's functionality. These utilities are now part of our internal API.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eanalysis\u003c/code\u003e attribute on objects and aliases, telling whether they were loaded through static or dynamic analysis, or created manually (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/d792a56fcecdf2003791356b857262cba8235f04\"\u003ed792a56\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eExpose Git info in objects, allowing to compute a new \u003ccode\u003esource_link\u003c/code\u003e property (see [Source information][source-information] in our docs) (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/2a8d824840b277d9941981583372abf36d3b17fe\"\u003e2a8d824\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/361\"\u003eIssue-361\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/python/issues/253\"\u003eIssue-mkdocstrings-python-253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ewildcard_imported\u003c/code\u003e boolean attribute to aliases, deprecate \u003ccode\u003eon_wildcard_expansion\u003c/code\u003e event (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/821300db5d43af0ad7a4d82ff2df15a7fa5f63d6\"\u003e821300d\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAdd load events that run once a tree is fully constructed, matching analysis events but safer to hook onto (see [Load events][load-events] in our docs) (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/77f928aeab857cb45564462a4f849c2df2cca99a\"\u003e77f928a\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/346\"\u003eIssue-346\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProvide typed dicts for docstring options (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/945880a04dcbe6eae31afa5021766533c73edc91\"\u003e945880a\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/370\"\u003eIssue-370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow parenthesized type to be glued (no space) to parameter name in Google-style docstrings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/4b6f939e12540ce4fb6941f0c95253e3111e7f6f\"\u003e4b6f939\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/375\"\u003eIssue-375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove deprecation warnings for \u003ccode\u003eon_alias\u003c/code\u003e and \u003ccode\u003eon_package_loaded\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/d3e50db055715d1a2b794d7e1cf47e6fdc1c305b\"\u003ed3e50db\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.13.0\"\u003e1.13.0\u003c/a\u003e - 2025-08-26\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.1...1.13.0\"\u003eCompare with 1.12.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eis_init_method\u003c/code\u003e property (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5417b7040f8061696c380d9cd4ed2852bf96adf3\"\u003e5417b70\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease maximum recursion limit when calling as a CLI (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5f0d9e61fbac89247bcae06a7010e28e381a5656\"\u003e5f0d9e6\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/402\"\u003eIssue-402\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.12.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.1\"\u003e1.12.1\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.0...1.12.1\"\u003eCompare with 1.12.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce size of JSON dumps by removing keys with null values (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/58227eb377fee66ef66237d7cbed35156ff1fed1\"\u003e58227eb\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/403\"\u003eIssue-403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fields to aliases when serializing (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5c9fee2b0c6e4f4e63c7648fa41b2e540f2ecc7f\"\u003e5c9fee2\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAlso add the option to ignore missing type to the Sphinx parser (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8c9f803e748a659905b06445a349a6cfea948c1c\"\u003e8c9f803\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.12.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/blob/main/CHANGELOG.md\"\u003egriffe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.14.0\"\u003e1.14.0\u003c/a\u003e - 2025-09-05\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.13.0...1.14.0\"\u003eCompare with 1.13.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eDeprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eon_alias\u003c/code\u003e event's signature changed from \u003ccode\u003eon_alias(self, *, node: AST | ObjectNode, alias: Alias, agent: Visitor | Inspector, **kwargs)\u003c/code\u003e (an [analysis event][analysis-events]) to \u003ccode\u003eon_alias(self, *, alias: Alias, loader: GriffeLoader, **kwargs)\u003c/code\u003e ([a load event][load-events]). Use the new signature, or rename your method to \u003ccode\u003eon_alias_instance\u003c/code\u003e to keep the old signature (\u003ccode\u003eon_alias_instance\u003c/code\u003e is a new analysis event that replaces the old \u003ccode\u003eon_alias\u003c/code\u003e one). Backward compatibility is maintained until next major version.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eon_wildcard_expansion\u003c/code\u003e event is deprecated. Instead, use the \u003ccode\u003eon_alias\u003c/code\u003e event, and check the [\u003ccode\u003ewildcard_imported\u003c/code\u003e][griffe.Alias.wildcard_imported] boolean attribute of aliases.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eon_package_loaded\u003c/code\u003e event is renamed to \u003ccode\u003eon_package\u003c/code\u003e. Backward compatibility is maintained until next major version.\u003c/li\u003e\n\u003cli\u003eThe use of previously exposed Git-related utilities (\u003ccode\u003eassert_git_repo\u003c/code\u003e, \u003ccode\u003eget_repo_root\u003c/code\u003e, \u003ccode\u003eget_latest_tag\u003c/code\u003e and \u003ccode\u003etmp_worktree\u003c/code\u003e) is deprecated, as they are not a core part of the library's functionality. These utilities are now part of our internal API.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eanalysis\u003c/code\u003e attribute on objects and aliases, telling whether they were loaded through static or dynamic analysis, or created manually (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/d792a56fcecdf2003791356b857262cba8235f04\"\u003ed792a56\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eExpose Git info in objects, allowing to compute a new \u003ccode\u003esource_link\u003c/code\u003e property (see [Source information][source-information] in our docs) (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/2a8d824840b277d9941981583372abf36d3b17fe\"\u003e2a8d824\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/361\"\u003eIssue-361\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/python/issues/253\"\u003eIssue-mkdocstrings-python-253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ewildcard_imported\u003c/code\u003e boolean attribute to aliases, deprecate \u003ccode\u003eon_wildcard_expansion\u003c/code\u003e event (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/821300db5d43af0ad7a4d82ff2df15a7fa5f63d6\"\u003e821300d\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAdd load events that run once a tree is fully constructed, matching analysis events but safer to hook onto (see [Load events][load-events] in our docs) (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/77f928aeab857cb45564462a4f849c2df2cca99a\"\u003e77f928a\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/346\"\u003eIssue-346\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProvide typed dicts for docstring options (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/945880a04dcbe6eae31afa5021766533c73edc91\"\u003e945880a\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/370\"\u003eIssue-370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow parenthesized type to be glued (no space) to parameter name in Google-style docstrings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/4b6f939e12540ce4fb6941f0c95253e3111e7f6f\"\u003e4b6f939\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/375\"\u003eIssue-375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove deprecation warnings for \u003ccode\u003eon_alias\u003c/code\u003e and \u003ccode\u003eon_package_loaded\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/d3e50db055715d1a2b794d7e1cf47e6fdc1c305b\"\u003ed3e50db\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.13.0\"\u003e1.13.0\u003c/a\u003e - 2025-08-26\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.1...1.13.0\"\u003eCompare with 1.12.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eis_init_method\u003c/code\u003e property (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5417b7040f8061696c380d9cd4ed2852bf96adf3\"\u003e5417b70\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eB...\n\n_Description has been truncated_","html_url":"https://github.com/pycontribs/subprocess-tee/pull/191","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycontribs%2Fsubprocess-tee/issues/191","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/191/packages"},{"uuid":"2788096128","node_id":"PR_kwDOEkpJIs6mLviA","number":189,"state":"open","title":"Bump the dependencies group across 1 directory with 34 updates","user":"dependabot[bot]","labels":["skip-changelog","dependabot-deps-updates"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-08-31T22:12:44.000Z","updated_at":"2025-08-31T22:12:45.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":34,"packages":[{"name":"mkdocstrings","old_version":"0.29.1","new_version":"0.30.0","repository_url":"https://github.com/mkdocstrings/mkdocstrings"},{"name":"argparse-manpage","old_version":"4.6","new_version":"4.7","repository_url":"https://github.com/praiskup/argparse-manpage"},{"name":"backrefs","old_version":"5.8","new_version":"6.0.1","repository_url":"https://github.com/facelessuser/backrefs"},{"name":"bracex","old_version":"2.5.post1","new_version":"2.6","repository_url":"https://github.com/facelessuser/bracex"},{"name":"cachetools","old_version":"6.0.0","new_version":"6.2.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"coverage","old_version":"7.9.1","new_version":"7.10.6","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"cryptography","old_version":"45.0.4","new_version":"45.0.6","repository_url":"https://github.com/pyca/cryptography"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"filelock","old_version":"3.18.0","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"gitpython","old_version":"3.1.44","new_version":"3.1.45","repository_url":"https://github.com/gitpython-developers/GitPython"},{"name":"griffe","old_version":"1.7.3","new_version":"1.13.0","repository_url":"https://github.com/mkdocstrings/griffe"},{"name":"importlib-resources","old_version":"5.0.7","new_version":"6.5.2","repository_url":"https://github.com/python/importlib_resources"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.1","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"markdown","old_version":"3.8","new_version":"3.8.2","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"mkdocs-autorefs","old_version":"1.4.2","new_version":"1.4.3","repository_url":"https://github.com/mkdocstrings/autorefs"},{"name":"mkdocs-material","old_version":"9.6.14","new_version":"9.6.18","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"mkdocstrings-python","old_version":"1.16.12","new_version":"1.18.2","repository_url":"https://github.com/mkdocstrings/python"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"pbr","old_version":"6.1.1","new_version":"7.0.1"},{"name":"pillow","old_version":"11.2.1","new_version":"11.3.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pymdown-extensions","old_version":"10.15","new_version":"10.16.1","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"pytest","old_version":"8.4.0","new_version":"8.4.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-sugar","old_version":"1.0.0","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-xdist","old_version":"3.7.0","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rich","old_version":"14.0.0","new_version":"14.1.0","repository_url":"https://github.com/Textualize/rich"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.27.1","repository_url":"https://github.com/crate-py/rpds"},{"name":"urllib3","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"wcmatch","old_version":"10.0","new_version":"10.1","repository_url":"https://github.com/facelessuser/wcmatch"}],"path":null,"ecosystem":"conda"},"body":"Bumps the dependencies group with 34 updates in the /.config directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings) | `0.29.1` | `0.30.0` |\n| [argparse-manpage](https://github.com/praiskup/argparse-manpage) | `4.6` | `4.7` |\n| [backrefs](https://github.com/facelessuser/backrefs) | `5.8` | `6.0.1` |\n| [bracex](https://github.com/facelessuser/bracex) | `2.5.post1` | `2.6` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.0.0` | `6.2.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.8.3` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.3` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.9.1` | `7.10.6` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.4` | `45.0.6` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.19.1` |\n| [gitpython](https://github.com/gitpython-developers/GitPython) | `3.1.44` | `3.1.45` |\n| [griffe](https://github.com/mkdocstrings/griffe) | `1.7.3` | `1.13.0` |\n| [importlib-resources](https://github.com/python/importlib_resources) | `5.0.7` | `6.5.2` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.8` | `3.8.2` |\n| [mkdocs-autorefs](https://github.com/mkdocstrings/autorefs) | `1.4.2` | `1.4.3` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.6.14` | `9.6.18` |\n| [mkdocstrings-python](https://github.com/mkdocstrings/python) | `1.16.12` | `1.18.2` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [pbr](https://docs.openstack.org/pbr/latest/) | `6.1.1` | `7.0.1` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `11.3.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.4.0` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.15` | `10.16.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.0` | `8.4.1` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `1.0.0` | `1.1.1` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.7.0` | `3.8.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rich](https://github.com/Textualize/rich) | `14.0.0` | `14.1.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.27.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.4.0` | `2.5.0` |\n| [wcmatch](https://github.com/facelessuser/wcmatch) | `10.0` | `10.1` |\n\n\nUpdates `mkdocstrings` from 0.29.1 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases\"\u003emkdocstrings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.30.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\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/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md\"\u003emkdocstrings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\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/mkdocstrings/mkdocstrings/commit/2be445f054c1191d308af7ee0cc881e359f5a4c7\"\u003e\u003ccode\u003e2be445f\u003c/code\u003e\u003c/a\u003e chore: Prepare release 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003e\u003ccode\u003ef856160\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip regist...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e\u003ccode\u003e2b4ed54\u003c/code\u003e\u003c/a\u003e feat: Add I18N support (translations)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/51f217f38af9475415f758866697158d9010967d\"\u003e\u003ccode\u003e51f217f\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/b1da3d02c4f432f603cbb0004bb35099327706db\"\u003e\u003ccode\u003eb1da3d0\u003c/code\u003e\u003c/a\u003e ci: Ignore Ruff warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d5bf4e1ed0370853f968b210ad77913faf106eed\"\u003e\u003ccode\u003ed5bf4e1\u003c/code\u003e\u003c/a\u003e docs: Update link to YAML idiosyncrasies\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argparse-manpage` from 4.6 to 4.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/praiskup/argparse-manpage/releases\"\u003eargparse-manpage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eargparse-manpage v4.7\u003c/h2\u003e\n\u003cp\u003eNews in v4.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esys.stdout used instead of /dev/stdout\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed build compatibility with newer setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed deprecation warnings for datetime and setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003enew compat method for handling SOURCE_DATE_EPOCH\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/praiskup/argparse-manpage/blob/main/NEWS\"\u003eargparse-manpage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cpre\u003e\u003ccode\u003e\nWARNING: The 'build_manpage' setup.py command will be removed v5\nWARNING: We'll drop the Python 2.7 support in v5\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esys.stdout used instead of /dev/stdout\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed build compatibility with newer setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed deprecation warnings for datetime and setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003enew compat method for handling SOURCE_DATE_EPOCH\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre\u003e\u003ccode\u003e\nNews in v4.6\n\u003cul\u003e\n\u003cli\u003eFix the build against Python 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.5\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWe newly provide \u003ccode\u003ebuild_manpages.build_py\u003c/code\u003e and \u003ccode\u003ebuild_manpages.install\u003c/code\u003e\ncommand classes that are re-usable from \u003ccode\u003epyproject.toml\u003c/code\u003e.  No need to\nprovide \u003ccode\u003esetup.py\u003c/code\u003e because of \u003ccode\u003eargparse-manpage\u003c/code\u003e.  Solved issue#85.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre\u003e\u003ccode\u003e\nNews in v4.4\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eprog=\u003c/code\u003e specifier (in setup.py/setup.cfg/pyproject.toml) is now\u003cbr /\u003e\nbetter handled so it doesn't conflict with ArgumentParser(prog=..).\u003cbr /\u003e\nFixes \u003ca href=\"https://redirect.github.com/praiskup/argparse-manpage/issues/79\"\u003epraiskup/argparse-manpage#79\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNews in v4.3\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe pyproject.toml parsing feature now depends on the python3-tomli library\u003cbr /\u003e\ninstead of python-toml for \u0026quot;python_environment \u0026gt;3, \u0026lt;=3.10\u0026quot;.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.2\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for pyproject.toml specification of manpages added.\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/praiskup/argparse-manpage/commit/7883becca340aa3ea124143e032848a7b2bdf84b\"\u003e\u003ccode\u003e7883bec\u003c/code\u003e\u003c/a\u003e Release v4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/765389ed4ee835c09451823d7fbfe22b0dc1674a\"\u003e\u003ccode\u003e765389e\u003c/code\u003e\u003c/a\u003e Move the SOURCE_DATE_EPOCH hack on one place\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/a06ed9c1f03360f8089819c8e845cd670687eb64\"\u003e\u003ccode\u003ea06ed9c\u003c/code\u003e\u003c/a\u003e ci: fix RPM build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/c985432ee15824c43c75548c7ec1bd6f105a7f22\"\u003e\u003ccode\u003ec985432\u003c/code\u003e\u003c/a\u003e Fix deprecation warnings for datetime and setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/306658941368ff0c2dfe2e4fa29b889fb5bbeb2b\"\u003e\u003ccode\u003e3066589\u003c/code\u003e\u003c/a\u003e ci: fedora-tox update list of environments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/b3a2c50e2abc47bd822d848864a80e35251a3147\"\u003e\u003ccode\u003eb3a2c50\u003c/code\u003e\u003c/a\u003e ci: enable ruff \u0026amp; bump deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/6dc54a5272e70b081af728958fd7554a6b0372f3\"\u003e\u003ccode\u003e6dc54a5\u003c/code\u003e\u003c/a\u003e Fix compatibility with newer setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/29f89bba536cf28f6ed66721367ff2ee3f6209b7\"\u003e\u003ccode\u003e29f89bb\u003c/code\u003e\u003c/a\u003e Fix some comments about sys.argv alteration for usage message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/ade76cc8ef49ec804955c6b4027dbae52d482034\"\u003e\u003ccode\u003eade76cc\u003c/code\u003e\u003c/a\u003e Use sys.stdout instead of /dev/stdout\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/praiskup/argparse-manpage/compare/v4.6...v4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `backrefs` from 5.8 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/backrefs/releases\"\u003ebackrefs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix a regression that created an ASCII binary property that would override the ASCII block property.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: POSIX character classes will now always use POSIX compatibility rules instead of Unicode standard rules,\nif any are specified in the Unicode specification. The affected character classes are: \u003ccode\u003e[[:alnum:]]\u003c/code\u003e, \u003ccode\u003e[[:digit:]]\u003c/code\u003e,\n\u003ccode\u003e[[:xdigit:]]\u003c/code\u003e, and  \u003ccode\u003e[[:punct:]]\u003c/code\u003e. To explicitly use standard Unicode rules for these compatibility properties, use\nthe Unicode property form instead: \u003ccode\u003e[\\p{Alnum}]\u003c/code\u003e, \u003ccode\u003e[\\p{Digit}]\u003c/code\u003e, \u003ccode\u003e[\\p{Punct}]\u003c/code\u003e, or \u003ccode\u003e[\\p{XDigit}]\u003c/code\u003e. This has changed\nto ensure no confusion for users expecting compatible POSIX style character class properties.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Scoped ASCII/Unicode flags (\u003ccode\u003e(?a:pattern)\u003c/code\u003e/\u003ccode\u003e(?u:pattern)\u003c/code\u003e) should be respected for Unicode properties in\n\u003ccode\u003ebre\u003c/code\u003e and will ensure ASCII or Unicode range if used.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix issues related to detecting disabled scoped flags.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eENHANCE\u003c/strong\u003e: Switch to deploying with PyPI's \u0026quot;Trusted Publisher\u0026quot;.\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/facelessuser/backrefs/commit/63f8a4b14750828b7c1e385844fd36f6f89859e4\"\u003e\u003ccode\u003e63f8a4b\u003c/code\u003e\u003c/a\u003e Fix grammar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7f4bf611e6e7fcc2aa4e0eba2872b5f51b7fc908\"\u003e\u003ccode\u003e7f4bf61\u003c/code\u003e\u003c/a\u003e Rework POSIX alias\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/956df5f387f1958110e5a7cf2a98d42a8309d9b6\"\u003e\u003ccode\u003e956df5f\u003c/code\u003e\u003c/a\u003e Fix ASCII block regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7a948f083c3c87114a8dd87c95dff1893f3af82a\"\u003e\u003ccode\u003e7a948f0\u003c/code\u003e\u003c/a\u003e Clean up code and add more comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/9b2e406be36c1e0fc72651adbc7d2d63c4151483\"\u003e\u003ccode\u003e9b2e406\u003c/code\u003e\u003c/a\u003e Add more flag tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/47d62b1270ca7f1717e7acdb56e8e6ed3e9e8f10\"\u003e\u003ccode\u003e47d62b1\u003c/code\u003e\u003c/a\u003e Handle enable/disable properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/8e7596700b913e13f478da57e0ba0965f2d9ed3b\"\u003e\u003ccode\u003e8e75967\u003c/code\u003e\u003c/a\u003e Fix issues with scoped flags (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/0df8e7746d3ea31824af97ea4ed713a3facded5b\"\u003e\u003ccode\u003e0df8e77\u003c/code\u003e\u003c/a\u003e POSIX character classes should use POSIX compatibility rules by default (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/191\"\u003e#191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/31fd8c5c0338eefe41452d52f99012c0fecfdd82\"\u003e\u003ccode\u003e31fd8c5\u003c/code\u003e\u003c/a\u003e Call mkdocs directly on deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/8b3a24bfc1cacde6fc9ab4edfaed0f5a9206c554\"\u003e\u003ccode\u003e8b3a24b\u003c/code\u003e\u003c/a\u003e Fix deploy logic\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facelessuser/backrefs/compare/5.8...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bracex` from 2.5.post1 to 2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/bracex/releases\"\u003ebracex's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/6d109c55372f0d5086adb7cf84a951cc06391a69\"\u003e\u003ccode\u003e6d109c5\u003c/code\u003e\u003c/a\u003e Add trusted publishing and support for Python 3.14 (\u003ca href=\"https://redirect.github.com/facelessuser/bracex/issues/44\"\u003e#44\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/c14d46fb495a8fdcd0ec51d4dd42aa587807407d\"\u003e\u003ccode\u003ec14d46f\u003c/code\u003e\u003c/a\u003e Add security policy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/14645af4bf4de0e1abe4fd6c29bf98871f549273\"\u003e\u003ccode\u003e14645af\u003c/code\u003e\u003c/a\u003e Typos: remove duplicate words\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/bracex/compare/2.5.post1...2.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 6.0.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.2.0 (2025-08-25)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove general \u003ccode\u003eRRCache\u003c/code\u003e performance by storing cache keys in an\nadditional sequence container.  Note that this will increase memory\nconsumption.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more unit tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\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/tkem/cachetools/commit/4a238adc490e81db58d843b011afdbe3dd9097a5\"\u003e\u003ccode\u003e4a238ad\u003c/code\u003e\u003c/a\u003e Release v6.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/9d511b769f8fb58981fb77fece846984aaaf49e6\"\u003e\u003ccode\u003e9d511b7\u003c/code\u003e\u003c/a\u003e Improve unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/79aa8c7c0eacd5d75e154bc23687ecdaf9ad1d75\"\u003e\u003ccode\u003e79aa8c7\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/356\"\u003e#356\u003c/a\u003e: Improve RRCache performance.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/bb6d71a745785429b14aae30b7752f4765dc35c3\"\u003e\u003ccode\u003ebb6d71a\u003c/code\u003e\u003c/a\u003e Release v6.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/77a9c59e3324496a79e6c4d5a7b5bfdb9a7f7f42\"\u003e\u003ccode\u003e77a9c59\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/260\"\u003e#260\u003c/a\u003e: Use LFUCache implementation based on Blake Reid's \u0026quot;cacheing\u0026quot; library.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b1d4eb2972ca8f0ab49e22eae3bb47c1eb8b552c\"\u003e\u003ccode\u003eb1d4eb2\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.4.2 to 5.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/820b154494e91aa5bfe63a3fa2033c63a9c84603\"\u003e\u003ccode\u003e820b154\u003c/code\u003e\u003c/a\u003e Refactor \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e unit tests.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v6.0.0...v6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.6.15 to 2025.8.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1\"\u003e\u003ccode\u003eddd90c6\u003c/code\u003e\u003c/a\u003e 2025.07.14 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d905221c916d51077f5c8071a0f7aa2df2a37c52\"\u003e\u003ccode\u003ed905221\u003c/code\u003e\u003c/a\u003e 2025.07.09 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.06.15...2025.08.03\"\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.2 to 3.4.3\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.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\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.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\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/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.9.1 to 7.10.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.6 — 2025-08-29\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003esource\u003c/code\u003e directories were not properly communicated to subprocesses\nthat ran in different directories, as reported in \u003ccode\u003eissue 1499\u003c/code\u003e_.  This is now\nfixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: \u003ccode\u003eAlex Gaynor continues fine-tuning \u0026lt;pull 2038_\u0026gt;\u003c/code\u003e_ the speed of\ncombination, especially with many contexts.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1499: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003enedbat/coveragepy#1499\u003c/a\u003e\n.. _pull 2038: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2038\"\u003enedbat/coveragepy#2038\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-5:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.5 — 2025-08-23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBig speed improvements for \u003ccode\u003ecoverage combine\u003c/code\u003e: it's now about twice as\nfast! Huge thanks to Alex Gaynor for pull requests \u003ccode\u003e2032 \u0026lt;pull 2032_\u0026gt;\u003c/code\u003e\u003cem\u003e,\n\u003ccode\u003e2033 \u0026lt;pull 2033_\u0026gt;\u003c/code\u003e\u003c/em\u003e, and \u003ccode\u003e2034 \u0026lt;pull 2034_\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _pull 2032: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2032\"\u003enedbat/coveragepy#2032\u003c/a\u003e\n.. _pull 2033: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2033\"\u003enedbat/coveragepy#2033\u003c/a\u003e\n.. _pull 2034: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2034\"\u003enedbat/coveragepy#2034\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-4:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.4 — 2025-08-16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003epatch = fork\u003c/code\u003e for times when the built-in forking support is\ninsufficient.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003epatch = execv\u003c/code\u003e also inherits the entire coverage configuration now.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _changes_7-10-3:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.3 — 2025-08-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixes for \u003ccode\u003epatch = subprocess\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses spawned yet more subprocesses simultaneously, some coverage\ncould be missed.  This is now fixed, closing \u003ccode\u003eissue 2024\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses were created in other directories, their data files were\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/nedbat/coveragepy/commit/88c55ff87437f7e59b42d131d0e2b6ce413546bf\"\u003e\u003ccode\u003e88c55ff\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/01d89959bfa825f661121e0f8d173f3ae1ecedac\"\u003e\u003ccode\u003e01d8995\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9b0c24ffc17840464c2343b702a6ee44e10fcadf\"\u003e\u003ccode\u003e9b0c24f\u003c/code\u003e\u003c/a\u003e docs: thanks Alex \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2038\"\u003e#2038\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/66d69108654f6fc1de916a37fc06ac898091aa2d\"\u003e\u003ccode\u003e66d6910\u003c/code\u003e\u003c/a\u003e fix: make \u003ccode\u003esource\u003c/code\u003e paths absolute where they exist. \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003e#1499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/bb3382f50f2b91aebb046d665334a5d361e5ddc5\"\u003e\u003ccode\u003ebb3382f\u003c/code\u003e\u003c/a\u003e build: no need for the combine/html times now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9ea349a164527832a49faa3eeec628d59ef75c7c\"\u003e\u003ccode\u003e9ea349a\u003c/code\u003e\u003c/a\u003e lab: warn_executed.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/808c9b48af3ad7b567182d383eb31451615664e0\"\u003e\u003ccode\u003e808c9b4\u003c/code\u003e\u003c/a\u003e build: changing metacov.ini should trigger metacov\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/384f5f22bd1ef52000d80922de03922a58ff936c\"\u003e\u003ccode\u003e384f5f2\u003c/code\u003e\u003c/a\u003e build: oops, some 'if's are really line pragmas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a7224af73365ba2d217f0e0966c7873c5bac3a67\"\u003e\u003ccode\u003ea7224af\u003c/code\u003e\u003c/a\u003e perf: pre-compute the mapping between other_db.context and main.context (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2038\"\u003e#2038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5c00c5ba4bcd4f7da6a9f0ccd0797e0944415e8a\"\u003e\u003ccode\u003e5c00c5b\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 3 updates (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2039\"\u003e#2039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.9.1...7.10.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 45.0.4 to 45.0.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e45.0.6 - 2025-08-05\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.2.\n\u003cp\u003e.. _v45-0-5:\u003c/p\u003e\n\u003cp\u003e45.0.5 - 2025-07-02\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.1.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-4:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/66198c23c97c9594d64540e5a866e4b4121aec2d\"\u003e\u003ccode\u003e66198c2\u003c/code\u003e\u003c/a\u003e Bump for release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13249\"\u003e#13249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3e53a233b65123d2a836b58ccdc427ed5207f92b\"\u003e\u003ccode\u003e3e53a23\u003c/code\u003e\u003c/a\u003e Bump for 45.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13135\"\u003e#13135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/45.0.4...45.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `distlib` from 0.3.9 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/distlib/blob/master/CHANGES.rst\"\u003edistlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.4.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nReleased: 2025-07-17\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003emarkers\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003einterpret_parsed\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ewheel\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/238\"\u003e#238\u003c/a\u003e: Add build tag to wheel metadata if specified.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/243\"\u003e#243\u003c/a\u003e: Update to support free-threading version of Python (3.13t).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e: Support subdirectories in the dist-info directory. Thanks to Pieter P for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e: Fix path normalisation issue caused by the fix for \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMove import in script wrapper to \u0026quot;if \u003cstrong\u003ename\u003c/strong\u003e == 'main'\u0026quot; clause.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003etests\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/245\"\u003e#245\u003c/a\u003e: Skip test_package_data if a SKIP_EXT_PACKAGE_DATA environment variable is present.\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/aff2cbbc4e8a87b9440cb93472789a213813dbd6\"\u003e\u003ccode\u003eaff2cbb\u003c/code\u003e\u003c/a\u003e Finalise version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/3716c4bcccac19d0c0f2ce0d1272dd33996381b5\"\u003e\u003ccode\u003e3716c4b\u003c/code\u003e\u003c/a\u003e Update change log, widen exception catching in test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/660bd337bf3217a7bd907c2ba8a2f8dd291ac793\"\u003e\u003ccode\u003e660bd33\u003c/code\u003e\u003c/a\u003e Changes for 0.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/56b4ad938455048fc79e599d369e02a1414e9946\"\u003e\u003ccode\u003e56b4ad9\u003c/code\u003e\u003c/a\u003e Guard script wrapper entrypoint import with if \u003cstrong\u003emain\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/242\"\u003e#242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/fe573669087cb1109fb0cc249bf0e06a5461324c\"\u003e\u003ccode\u003efe57366\u003c/code\u003e\u003c/a\u003e docs: update coverage results link (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/250\"\u003e#250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/c3286e508bb60cd2337408d88eb614a93b612d8c\"\u003e\u003ccode\u003ec3286e5\u003c/code\u003e\u003c/a\u003e Temporarily exclude 3.13t on windows-latest.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/e6b83d3b0eeb11d8e7b053f11139d15aab89d196\"\u003e\u003ccode\u003ee6b83d3\u003c/code\u003e\u003c/a\u003e Normalize archive paths in dist-info (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/93baffeaa1773796d802bb761607a6466790dcba\"\u003e\u003ccode\u003e93baffe\u003c/code\u003e\u003c/a\u003e Skip no-longer-relevant test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/83f656836f4b6d8175172fcb8370fbee691f2bec\"\u003e\u003ccode\u003e83f6568\u003c/code\u003e\u003c/a\u003e Support subdirectories in .dist-info (fixes \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/247\"\u003e#247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/f918abd5d20879041704f9d719533b213a55ad48\"\u003e\u003ccode\u003ef918abd\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003etest_wheel.WheelTestCase.test_abi\u003c/code\u003e for freethreading (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/distlib/compare/0.3.9...0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.18.0 to 3.19.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/py-filelock/releases\"\u003efilelock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.19.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd 3.14t (free threading) to matrix by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncrease test coverage by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/434\"\u003etox-dev/filelock#434\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/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.19.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for 3.14 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/432\"\u003etox-dev/filelock#432\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/8d1009f08a6a64624fad91d1079062ef31b8c2b4\"\u003e\u003ccode\u003e8d1009f\u003c/code\u003e\u003c/a\u003e Update release.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/66a428e97a874b44b0310072f6c974226f55a472\"\u003e\u003ccode\u003e66a428e\u003c/code\u003e\u003c/a\u003e Increase test coverage (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0dfc86eebd2c76ae959a409bcbc3112cc1ec5890\"\u003e\u003ccode\u003e0dfc86e\u003c/code\u003e\u003c/a\u003e add 3.14 to matrix (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0c54837e318ebe8a692b529722430cb38134bf7c\"\u003e\u003ccode\u003e0c54837\u003c/code\u003e\u003c/a\u003e Add support for 3.14 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/432\"\u003e#432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/77d02f5ada3a1a92167b1beee35a7815cbde0fcf\"\u003e\u003ccode\u003e77d02f5\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/bc972b33bf253bb9f08db32b19ffd4119a74706e\"\u003e\u003ccode\u003ebc972b3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/429\"\u003e#429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/78d02cb5ff42b22a56ad1a36755361a6b4601765\"\u003e\u003ccode\u003e78d02cb\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/428\"\u003e#428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/18cdb5d1c78a7a459463480303e9820f33cdf041\"\u003e\u003ccode\u003e18cdb5d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/b198a096d2bae58596479497d18a82bbeec515c8\"\u003e\u003ccode\u003eb198a09\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/426\"\u003e#426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/6b097e76de603d9be6a24c5058b6fe53ef003afd\"\u003e\u003ccode\u003e6b097e7\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.18.0...3.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gitpython` from 3.1.44 to 3.1.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gitpython-developers/GitPython/releases\"\u003egitpython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.45\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix various version-related CI breakages by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1987\"\u003egitpython-developers/GitPython#1987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo some CI cleanup to make reports clearer and future changes easier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1989\"\u003egitpython-developers/GitPython#1989\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAffirm that gitdb and smmap advisories can also be created by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1991\"\u003egitpython-developers/GitPython#1991\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix links to gitdb and smmap \u003ccode\u003eSECURITY.md\u003c/code\u003e files by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1992\"\u003egitpython-developers/GitPython#1992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest Python 3.13 regularly on Ubuntu and macOS on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1990\"\u003egitpython-developers/GitPython#1990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRepo.rev_parse: Handle \u003c!-- raw HTML omitted --\u003e^{commit} correctly by \u003ca href=\"https://github.com/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFuzzing: Fix Broken Fuzz Test for Git Submodule Handling by \u003ca href=\"https://github.com/DaveLak\"\u003e\u003ccode\u003e@​DaveLak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1997\"\u003egitpython-developers/GitPython#1997\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWork around Cygwin CI failure \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2004\"\u003e#2004\u003c/a\u003e, except for \u003ccode\u003etest_installation\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2007\"\u003egitpython-developers/GitPython#2007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark \u003ccode\u003etest_installation\u003c/code\u003e xfail on Cygwin CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2009\"\u003egitpython-developers/GitPython#2009\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eIndexFile._to_relative_path\u003c/code\u003e - fix case where absolute path gets stripped of trailing slash by \u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse WSL1 on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2010\"\u003egitpython-developers/GitPython#2010\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest free-threaded Python (but only on Linux) by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2011\"\u003egitpython-developers/GitPython#2011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse property decorator to support typing by \u003ca href=\"https://github.com/Andrej730\"\u003e\u003ccode\u003e@​Andrej730\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2015\"\u003egitpython-developers/GitPython#2015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some incorrect sphinx markups in the docstrings by \u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereplace quansight-labs/setup-python with actions/setup-python by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove type assertions from util.py by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecorrectly handle \u003ccode\u003euname-cmd\u003c/code\u003e that doesn't point to an executable file by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2026\"\u003egitpython-developers/GitPython#2026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse newer ruff style by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2031\"\u003egitpython-developers/GitPython#2031\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHave CodeQL scan GitHub Actions workflows as well as Python code by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2032\"\u003egitpython-developers/GitPython#2032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpecify explicit \u003ccode\u003econtents: read\u003c/code\u003e workflow permissions by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2033\"\u003egitpython-developers/GitPython#2033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GitConfigParser not removing quotes from values by \u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve quoted leading and trailing single-line config var whitespace by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2036\"\u003egitpython-developers/GitPython#2036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor Git.{AutoInterrupt,CatFileContentStream} nesting by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2037\"\u003egitpython-developers/GitPython#2037\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Git.{AutoInterrupt,CatFileContentStream} static typing by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2039\"\u003egitpython-developers/GitPython#2039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI \u003ccode\u003emypy\u003c/code\u003e command on free-threaded Python by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2040\"\u003egitpython-developers/GitPython#2040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit Cygwin CI into non-\u003ccode\u003eperformance\u003c/code\u003e and \u003ccode\u003eperformance\u003c/code\u003e test jobs by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2042\"\u003egitpython-developers/GitPython#2042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpress conditional \u003ccode\u003esetuptools\u003c/code\u003e requirement statically by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2043\"\u003egitpython-developers/GitPython#2043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ambiguous \u003ccode\u003e_safer_popen_windows\u003c/code\u003e comment by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2044\"\u003egitpython-developers/GitPython#2044\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eUSE_SHELL\u003c/code\u003e warning helper signature by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2045\"\u003egitpython-developers/GitPython#2045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest \u003ccode\u003eConfigParser\u003c/code\u003e with whitespace outside the value by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2046\"\u003egitpython-developers/GitPython#2046\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove explicit empty \u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e handling in ConfigParser by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2047\"\u003egitpython-developers/GitPython#2047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious style improvements by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2049\"\u003egitpython-developers/GitPython#2049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't remove quotes if \u003ccode\u003e\\\u003c/code\u003e or \u003ccode\u003e\u0026quot;\u003c/code\u003e are present inside by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2048\"\u003egitpython-developers/GitPython#2048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix updating submodules with relative urls by \u003ca href=\"https://github.com/david0\"\u003e\u003ccode\u003e@​david0\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2051\"\u003egitpython-developers/GitPython#2051\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun \u003ccode\u003ecat_file.py\u003c/code\u003e fixture without site customizations by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2052\"\u003egitpython-developers/GitPython#2052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Cygwin installation on CI for \u003ccode\u003epip\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2053\"\u003egitpython-developers/GitPython#2053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFail \u003ccode\u003etest_installation\u003c/code\u003e on warnings, and remove deprecated license classifier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2054\"\u003egitpython-developers/GitPython#2054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd clearer error version for unsupported index error by \u003ca href=\"https://github.com/tombedor\"\u003e\u003ccode\u003e@​tombedor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2055\"\u003egitpython-developers/GitPython#2055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix name collision by \u003ca href=\"https://github.com/NMertsch\"\u003e\u003ccode\u003e@​NMertsch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2060\"\u003egitpython-developers/GitPython#2060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow relative path url in submodules for submodule_update by \u003ca href=\"https://github.com/t-webber\"\u003e\u003ccode\u003e@​t-webber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2062\"\u003egitpython-developers/GitPython#2062\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/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\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/gitpython-developers/GitPython/commit/6ba2c0a2f9ee7feffd7e079621c4845820180c9a\"\u003e\u003ccode\u003e6ba2c0a\u003c/code\u003e\u003c/a\u003e Prepare a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/bbb3d00ac431dc7966f9715fb813792d234eca81\"\u003e\u003ccode\u003ebbb3d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2062\"\u003e#2062\u003c/a\u003e from t-webber/relative_path_submodules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/1ee1e781929074afd66bff1eae007bbee41d117e\"\u003e\u003ccode\u003e1ee1e78\u003c/code\u003e\u003c/a\u003e Add test case for cloning submodules with relative path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/ec2e2c8b894512e7a2364774d77cdd9db73f0566\"\u003e\u003ccode\u003eec2e2c8\u003c/code\u003e\u003c/a\u003e Allow relative path url in submodules for submodule_update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4d529b71905edae12e4699170f7d9e0a665801b5\"\u003e\u003ccode\u003e4d529b7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2060\"\u003e#2060\u003c/a\u003e from NMertsch/2023-fix-gitconfigparser-autodoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/80fd2c16211738156e65258381a17cdc429ddd08\"\u003e\u003ccode\u003e80fd2c1\u003c/code\u003e\u003c/a\u003e Don't treat sphinx warnings as errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/a4aadb0c04bd13af824c14dcc39f88345aa5c440\"\u003e\u003ccode\u003ea4aadb0\u003c/code\u003e\u003c/a\u003e Fix name collision\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4c7778a93134364cfff7b1597f9eda00a88323af\"\u003e\u003ccode\u003e4c7778a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2057\"\u003e#2057\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/5033c3ffd8917d835658c22e84bd86103a2ae52d\"\u003e\u003ccode\u003e5033c3f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2056\"\u003e#2056\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/496392b9bf781904421cbd171c0c5395a6fe330c\"\u003e\u003ccode\u003e496392b\u003c/code\u003e\u003c/a\u003e Bump cygwin/cygwin-install-action from 5 to 6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gitpython-developers/GitPython/compare/3.1.44...3.1.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `griffe` from 1.7.3 to 1.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/releases\"\u003egriffe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.13.0\"\u003e1.13.0\u003c/a\u003e - 2025-08-26\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.1...1.13.0\"\u003eCompare with 1.12.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eis_init_method\u003c/code\u003e property (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5417b7040f8061696c380d9cd4ed2852bf96adf3\"\u003e5417b70\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease maximum recursion limit when calling as a CLI (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5f0d9e61fbac89247bcae06a7010e28e381a5656\"\u003e5f0d9e6\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/402\"\u003eIssue-402\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.12.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.1\"\u003e1.12.1\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.0...1.12.1\"\u003eCompare with 1.12.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce size of JSON dumps by removing keys with null values (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/58227eb377fee66ef66237d7cbed35156ff1fed1\"\u003e58227eb\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/403\"\u003eIssue-403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fields to aliases when serializing (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5c9fee2b0c6e4f4e63c7648fa41b2e540f2ecc7f\"\u003e5c9fee2\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAlso add the option to ignore missing type to the Sphinx parser (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8c9f803e748a659905b06445a349a6cfea948c1c\"\u003e8c9f803\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.12.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.0\"\u003e1.12.0\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.1...1.12.0\"\u003eCompare with 1.11.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow disabling \u0026quot;missing type/annotation\u0026quot; warnings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/07564b43524220342c3078ece406459c08b80a86\"\u003e07564b4\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/437\"\u003eIssue-mkdocstrings-437\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.11.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.1\"\u003e1.11.1\u003c/a\u003e - 2025-08-11\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.0...1.11.1\"\u003eCompare with 1.11.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix type parameters loading (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce41279cc8b7abc45c7b94316b24e87d4a1edc40\"\u003ece41279\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove private \u003ccode\u003e_griffe\u003c/code\u003e package under \u003ccode\u003egriffe._internal\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8f37158eb5617d2cf686f9a0a044f29c638598b2\"\u003e8f37158\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.0\"\u003e1.11.0\u003c/a\u003e - 2025-08-07\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.10.0...1.11.0\"\u003eCompare with 1.10.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/blob/main/CHANGELOG.md\"\u003egriffe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.13.0\"\u003e1.13.0\u003c/a\u003e - 2025-08-26\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.1...1.13.0\"\u003eCompare with 1.12.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eis_init_method\u003c/code\u003e property (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5417b7040f8061696c380d9cd4ed2852bf96adf3\"\u003e5417b70\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease maximum recursion limit when calling as a CLI (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5f0d9e61fbac89247bcae06a7010e28e381a5656\"\u003e5f0d9e6\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/402\"\u003eIssue-402\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.1\"\u003e1.12.1\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.0...1.12.1\"\u003eCompare with 1.12.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce size of JSON dumps by removing keys with null values (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/58227eb377fee66ef66237d7cbed35156ff1fed1\"\u003e58227eb\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/403\"\u003eIssue-403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fields to aliases when serializing (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5c9fee2b0c6e4f4e63c7648fa41b2e540f2ecc7f\"\u003e5c9fee2\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAlso add the option to ignore missing type to the Sphinx parser (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8c9f803e748a659905b06445a349a6cfea948c1c\"\u003e8c9f803\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.0\"\u003e1.12.0\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.1...1.12.0\"\u003eCompare with 1.11.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow disabling \u0026quot;missing type/annotation\u0026quot; warnings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/07564b43524220342c3078ece406459c08b80a86\"\u003e07564b4\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/437\"\u003eIssue-mkdocstrings-437\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.1\"\u003e1.11.1\u003c/a\u003e - 2025-08-11\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.0...1.11.1\"\u003eCompare with 1.11.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix type parameters loading (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce41279cc8b7abc45c7b94316b24e87d4a1edc40\"\u003ece41279\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove private \u003ccode\u003e_griffe\u003c/code\u003e package under \u003ccode\u003egriffe._internal\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8f37158eb5617d2cf686f9a0a044f29c638598b2\"\u003e8f37158\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.0\"\u003e1.11.0\u003c/a\u003e - 2025-08-07\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.10.0...1.11.0\"\u003eCompare with 1.10.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd data to dict/json output (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/9731afcbeab377e7f3f69a0d18d19677e790072e\"\u003e9731afc\u003c/a\u003e by Timothée Mazzucotelli).\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/mkdocstrings/griffe/commit/e13f5edaba1ec16c2c20c2661eb81279e984dcea\"\u003e\u003ccode\u003ee13f5ed\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5417b7040f8061696c380d9cd4ed2852bf96adf3\"\u003e\u003ccode\u003e5417b70\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003eis_init_method\u003c/code\u003e property\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/fa01ac0d3c4f70030a72e2395293f856d98eb69f\"\u003e\u003ccode\u003efa01ac0\u003c/code\u003e\u003c/a\u003e ci: Fix Pylance warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5f0d9e61fbac89247bcae06a7010e28e381a5656\"\u003e\u003ccode\u003e5f0d9e6\u003c/code\u003e\u003c/a\u003e fix: Increase maximum recursion limit when calling as a CLI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/266be2dd6ecca58baa3cf62f8500db33d6a7edf0\"\u003e\u003ccode\u003e266be2d\u003c/code\u003e\u003c/a\u003e ci: Improve typing fof callables in expression-building node map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/edf81dfe012ca2972ded1d4788823c0a49fcab25\"\u003e\u003ccode\u003eedf81df\u003c/code\u003e\u003c/a\u003e chore: Fix \u003ccode\u003emake run\u003c/code\u003e command\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/2cb37a7ac5693f00939ff229eb20e310d2eef3e8\"\u003e\u003ccode\u003e2cb37a7\u003c/code\u003e\u003c/a\u003e docs: Fix link to API tests file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/179627221e97b82b574755465bff7efdbdf390d3\"\u003e\u003ccode\u003e1796272\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5e79fbedb250520bbac3909a89f31677cd714de2\"\u003e\u003ccode\u003e5e79fbe\u003c/code\u003e\u003c/a\u003e docs: Add \u003ccode\u003erad clone\u003c/code\u003e badge in README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/72b44666f6e307d4a3ec6818391fca6af4afc105\"\u003e\u003ccode\u003e72b4466\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.7.3...1.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-resources` from 5.0.7 to 6.5.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_resources/blob/main/NEWS.rst\"\u003eimportlib-resources's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.5.2\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced reference to typing_extensions with stdlib Literal. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/323\"\u003e#323\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.5.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated \u003ccode\u003eTraversable.read_text()\u003c/code\u003e to reflect the \u003ccode\u003eerrors\u003c/code\u003e\u003ccode\u003epython/cpython#127012\u003c/code\u003e\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/321\"\u003e#321\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.5.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd type annotations for Traversable.open. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire Python 3.9 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.4.5\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOmit sentinel values from a namespace path. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/311\"\u003e#311\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.4.4\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch1\u003ev6.4.3\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWhen inferring the caller in \u003ccode\u003efiles()\u003c/code\u003e\u003ccode\u003epython/cpython#123085\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/python/importlib_resources/commit/7d3b2bfa1d8c53ecb64246ba16d8c632f8fcb6bf\"\u003e\u003ccode\u003e7d3b2bf\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/14408098293bd6bc68eca7b5a53333729a567e57\"\u003e\u003ccode\u003e1440809\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/324\"\u003e#324\u003c/a\u003e from pstjohn/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/6569354ad2cf38b202fdeaf11b49e639b1a00fbc\"\u003e\u003ccode\u003e6569354\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/6c1bc3cdb8f8a7d29252becc201508712040facc\"\u003e\u003ccode\u003e6c1bc3c\u003c/code\u003e\u003c/a\u003e Rely on Literal from stdlib.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/883380a5fcc482b67014b90b9aa7250d868c795a\"\u003e\u003ccode\u003e883380a\u003c/code\u003e\u003c/a\u003e Update pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/a61a948b6293ed46972909652909e2540242f197\"\u003e\u003ccode\u003ea61a948\u003c/code\u003e\u003c/a\u003e Add typing-extensions as a dependency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/78c4bda73c5d671cbbcfdf1430b6f2da03aeb04f\"\u003e\u003ccode\u003e78c4bda\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/10d87bf85a404e9fb9271f8f353ad0452c0cc631\"\u003e\u003ccode\u003e10d87bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/321\"\u003e#321\u003c/a\u003e from kurtmckee/add-readtext-errors-parameter-cpython-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/9a872e5dbceff32260e8ff19d039236304ee150c\"\u003e\u003ccode\u003e9a872e5\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/cf269ce50f496671f3b7fbc5e6292946ecc70e7d\"\u003e\u003ccode\u003ecf269ce\u003c/code\u003e\u003c/a\u003e Replace unreachable block with simple assertion. Fixes diffcov failure.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_resources/compare/v5.0.7...v6.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jsonschema` from 4.24.0 to 4.25.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-jsonschema/jsonschema/releases\"\u003ejsonschema's releases\u003c/a\u003e.\u003c...\n\n_Description has been truncated_","html_url":"https://github.com/pycontribs/subprocess-tee/pull/189","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycontribs%2Fsubprocess-tee/issues/189","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/189/packages"},{"uuid":"2751575388","node_id":"PR_kwDOEkpJIs6kAbVc","number":187,"state":"open","title":"Bump the dependencies group across 1 directory with 29 updates","user":"dependabot[bot]","labels":["skip-changelog","dependabot-deps-updates"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-08-17T22:28:13.000Z","updated_at":"2025-08-17T22:28:14.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":29,"packages":[{"name":"mkdocstrings","old_version":"0.29.1","new_version":"0.30.0","repository_url":"https://github.com/mkdocstrings/mkdocstrings"},{"name":"argparse-manpage","old_version":"4.6","new_version":"4.7","repository_url":"https://github.com/praiskup/argparse-manpage"},{"name":"backrefs","old_version":"5.8","new_version":"6.0.1","repository_url":"https://github.com/facelessuser/backrefs"},{"name":"bracex","old_version":"2.5.post1","new_version":"2.6","repository_url":"https://github.com/facelessuser/bracex"},{"name":"cachetools","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"coverage","old_version":"7.9.1","new_version":"7.10.4","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"cryptography","old_version":"45.0.4","new_version":"45.0.6","repository_url":"https://github.com/pyca/cryptography"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"filelock","old_version":"3.18.0","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"gitpython","old_version":"3.1.44","new_version":"3.1.45","repository_url":"https://github.com/gitpython-developers/GitPython"},{"name":"griffe","old_version":"1.7.3","new_version":"1.12.1","repository_url":"https://github.com/mkdocstrings/griffe"},{"name":"importlib-resources","old_version":"5.0.7","new_version":"6.5.2","repository_url":"https://github.com/python/importlib_resources"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"markdown","old_version":"3.8","new_version":"3.8.2","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"mkdocs-material","old_version":"9.6.14","new_version":"9.6.17","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"mkdocstrings-python","old_version":"1.16.12","new_version":"1.17.0","repository_url":"https://github.com/mkdocstrings/python"},{"name":"pbr","old_version":"6.1.1","new_version":"7.0.0"},{"name":"pillow","old_version":"11.2.1","new_version":"11.3.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pymdown-extensions","old_version":"10.15","new_version":"10.16.1","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"pytest","old_version":"8.4.0","new_version":"8.4.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-sugar","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-xdist","old_version":"3.7.0","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"rich","old_version":"14.0.0","new_version":"14.1.0","repository_url":"https://github.com/Textualize/rich"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.27.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"urllib3","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"wcmatch","old_version":"10.0","new_version":"10.1","repository_url":"https://github.com/facelessuser/wcmatch"}],"path":null,"ecosystem":"conda"},"body":"Bumps the dependencies group with 29 updates in the /.config directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings) | `0.29.1` | `0.30.0` |\n| [argparse-manpage](https://github.com/praiskup/argparse-manpage) | `4.6` | `4.7` |\n| [backrefs](https://github.com/facelessuser/backrefs) | `5.8` | `6.0.1` |\n| [bracex](https://github.com/facelessuser/bracex) | `2.5.post1` | `2.6` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.0.0` | `6.1.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.8.3` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.3` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.9.1` | `7.10.4` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.4` | `45.0.6` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.19.1` |\n| [gitpython](https://github.com/gitpython-developers/GitPython) | `3.1.44` | `3.1.45` |\n| [griffe](https://github.com/mkdocstrings/griffe) | `1.7.3` | `1.12.1` |\n| [importlib-resources](https://github.com/python/importlib_resources) | `5.0.7` | `6.5.2` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.0` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.8` | `3.8.2` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.6.14` | `9.6.17` |\n| [mkdocstrings-python](https://github.com/mkdocstrings/python) | `1.16.12` | `1.17.0` |\n| [pbr](https://docs.openstack.org/pbr/latest/) | `6.1.1` | `7.0.0` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `11.3.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.15` | `10.16.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.0` | `8.4.1` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `1.0.0` | `1.1.0` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.7.0` | `3.8.0` |\n| [rich](https://github.com/Textualize/rich) | `14.0.0` | `14.1.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.27.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.4.0` | `2.5.0` |\n| [wcmatch](https://github.com/facelessuser/wcmatch) | `10.0` | `10.1` |\n\n\nUpdates `mkdocstrings` from 0.29.1 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases\"\u003emkdocstrings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.30.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\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/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md\"\u003emkdocstrings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\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/mkdocstrings/mkdocstrings/commit/2be445f054c1191d308af7ee0cc881e359f5a4c7\"\u003e\u003ccode\u003e2be445f\u003c/code\u003e\u003c/a\u003e chore: Prepare release 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003e\u003ccode\u003ef856160\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip regist...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e\u003ccode\u003e2b4ed54\u003c/code\u003e\u003c/a\u003e feat: Add I18N support (translations)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/51f217f38af9475415f758866697158d9010967d\"\u003e\u003ccode\u003e51f217f\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/b1da3d02c4f432f603cbb0004bb35099327706db\"\u003e\u003ccode\u003eb1da3d0\u003c/code\u003e\u003c/a\u003e ci: Ignore Ruff warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d5bf4e1ed0370853f968b210ad77913faf106eed\"\u003e\u003ccode\u003ed5bf4e1\u003c/code\u003e\u003c/a\u003e docs: Update link to YAML idiosyncrasies\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argparse-manpage` from 4.6 to 4.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/praiskup/argparse-manpage/releases\"\u003eargparse-manpage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eargparse-manpage v4.7\u003c/h2\u003e\n\u003cp\u003eNews in v4.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esys.stdout used instead of /dev/stdout\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed build compatibility with newer setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed deprecation warnings for datetime and setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003enew compat method for handling SOURCE_DATE_EPOCH\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/praiskup/argparse-manpage/blob/main/NEWS\"\u003eargparse-manpage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cpre\u003e\u003ccode\u003e\nWARNING: The 'build_manpage' setup.py command will be removed v5\nWARNING: We'll drop the Python 2.7 support in v5\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esys.stdout used instead of /dev/stdout\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed build compatibility with newer setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed deprecation warnings for datetime and setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003enew compat method for handling SOURCE_DATE_EPOCH\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre\u003e\u003ccode\u003e\nNews in v4.6\n\u003cul\u003e\n\u003cli\u003eFix the build against Python 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.5\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWe newly provide \u003ccode\u003ebuild_manpages.build_py\u003c/code\u003e and \u003ccode\u003ebuild_manpages.install\u003c/code\u003e\ncommand classes that are re-usable from \u003ccode\u003epyproject.toml\u003c/code\u003e.  No need to\nprovide \u003ccode\u003esetup.py\u003c/code\u003e because of \u003ccode\u003eargparse-manpage\u003c/code\u003e.  Solved issue#85.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre\u003e\u003ccode\u003e\nNews in v4.4\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eprog=\u003c/code\u003e specifier (in setup.py/setup.cfg/pyproject.toml) is now\u003cbr /\u003e\nbetter handled so it doesn't conflict with ArgumentParser(prog=..).\u003cbr /\u003e\nFixes \u003ca href=\"https://redirect.github.com/praiskup/argparse-manpage/issues/79\"\u003epraiskup/argparse-manpage#79\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNews in v4.3\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe pyproject.toml parsing feature now depends on the python3-tomli library\u003cbr /\u003e\ninstead of python-toml for \u0026quot;python_environment \u0026gt;3, \u0026lt;=3.10\u0026quot;.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.2\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for pyproject.toml specification of manpages added.\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/praiskup/argparse-manpage/commit/7883becca340aa3ea124143e032848a7b2bdf84b\"\u003e\u003ccode\u003e7883bec\u003c/code\u003e\u003c/a\u003e Release v4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/765389ed4ee835c09451823d7fbfe22b0dc1674a\"\u003e\u003ccode\u003e765389e\u003c/code\u003e\u003c/a\u003e Move the SOURCE_DATE_EPOCH hack on one place\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/a06ed9c1f03360f8089819c8e845cd670687eb64\"\u003e\u003ccode\u003ea06ed9c\u003c/code\u003e\u003c/a\u003e ci: fix RPM build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/c985432ee15824c43c75548c7ec1bd6f105a7f22\"\u003e\u003ccode\u003ec985432\u003c/code\u003e\u003c/a\u003e Fix deprecation warnings for datetime and setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/306658941368ff0c2dfe2e4fa29b889fb5bbeb2b\"\u003e\u003ccode\u003e3066589\u003c/code\u003e\u003c/a\u003e ci: fedora-tox update list of environments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/b3a2c50e2abc47bd822d848864a80e35251a3147\"\u003e\u003ccode\u003eb3a2c50\u003c/code\u003e\u003c/a\u003e ci: enable ruff \u0026amp; bump deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/6dc54a5272e70b081af728958fd7554a6b0372f3\"\u003e\u003ccode\u003e6dc54a5\u003c/code\u003e\u003c/a\u003e Fix compatibility with newer setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/29f89bba536cf28f6ed66721367ff2ee3f6209b7\"\u003e\u003ccode\u003e29f89bb\u003c/code\u003e\u003c/a\u003e Fix some comments about sys.argv alteration for usage message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/ade76cc8ef49ec804955c6b4027dbae52d482034\"\u003e\u003ccode\u003eade76cc\u003c/code\u003e\u003c/a\u003e Use sys.stdout instead of /dev/stdout\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/praiskup/argparse-manpage/compare/v4.6...v4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `backrefs` from 5.8 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/backrefs/releases\"\u003ebackrefs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix a regression that created an ASCII binary property that would override the ASCII block property.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: POSIX character classes will now always use POSIX compatibility rules instead of Unicode standard rules,\nif any are specified in the Unicode specification. The affected character classes are: \u003ccode\u003e[[:alnum:]]\u003c/code\u003e, \u003ccode\u003e[[:digit:]]\u003c/code\u003e,\n\u003ccode\u003e[[:xdigit:]]\u003c/code\u003e, and  \u003ccode\u003e[[:punct:]]\u003c/code\u003e. To explicitly use standard Unicode rules for these compatibility properties, use\nthe Unicode property form instead: \u003ccode\u003e[\\p{Alnum}]\u003c/code\u003e, \u003ccode\u003e[\\p{Digit}]\u003c/code\u003e, \u003ccode\u003e[\\p{Punct}]\u003c/code\u003e, or \u003ccode\u003e[\\p{XDigit}]\u003c/code\u003e. This has changed\nto ensure no confusion for users expecting compatible POSIX style character class properties.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Scoped ASCII/Unicode flags (\u003ccode\u003e(?a:pattern)\u003c/code\u003e/\u003ccode\u003e(?u:pattern)\u003c/code\u003e) should be respected for Unicode properties in\n\u003ccode\u003ebre\u003c/code\u003e and will ensure ASCII or Unicode range if used.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix issues related to detecting disabled scoped flags.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eENHANCE\u003c/strong\u003e: Switch to deploying with PyPI's \u0026quot;Trusted Publisher\u0026quot;.\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/facelessuser/backrefs/commit/63f8a4b14750828b7c1e385844fd36f6f89859e4\"\u003e\u003ccode\u003e63f8a4b\u003c/code\u003e\u003c/a\u003e Fix grammar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7f4bf611e6e7fcc2aa4e0eba2872b5f51b7fc908\"\u003e\u003ccode\u003e7f4bf61\u003c/code\u003e\u003c/a\u003e Rework POSIX alias\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/956df5f387f1958110e5a7cf2a98d42a8309d9b6\"\u003e\u003ccode\u003e956df5f\u003c/code\u003e\u003c/a\u003e Fix ASCII block regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7a948f083c3c87114a8dd87c95dff1893f3af82a\"\u003e\u003ccode\u003e7a948f0\u003c/code\u003e\u003c/a\u003e Clean up code and add more comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/9b2e406be36c1e0fc72651adbc7d2d63c4151483\"\u003e\u003ccode\u003e9b2e406\u003c/code\u003e\u003c/a\u003e Add more flag tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/47d62b1270ca7f1717e7acdb56e8e6ed3e9e8f10\"\u003e\u003ccode\u003e47d62b1\u003c/code\u003e\u003c/a\u003e Handle enable/disable properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/8e7596700b913e13f478da57e0ba0965f2d9ed3b\"\u003e\u003ccode\u003e8e75967\u003c/code\u003e\u003c/a\u003e Fix issues with scoped flags (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/0df8e7746d3ea31824af97ea4ed713a3facded5b\"\u003e\u003ccode\u003e0df8e77\u003c/code\u003e\u003c/a\u003e POSIX character classes should use POSIX compatibility rules by default (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/191\"\u003e#191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/31fd8c5c0338eefe41452d52f99012c0fecfdd82\"\u003e\u003ccode\u003e31fd8c5\u003c/code\u003e\u003c/a\u003e Call mkdocs directly on deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/8b3a24bfc1cacde6fc9ab4edfaed0f5a9206c554\"\u003e\u003ccode\u003e8b3a24b\u003c/code\u003e\u003c/a\u003e Fix deploy logic\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facelessuser/backrefs/compare/5.8...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bracex` from 2.5.post1 to 2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/bracex/releases\"\u003ebracex's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/6d109c55372f0d5086adb7cf84a951cc06391a69\"\u003e\u003ccode\u003e6d109c5\u003c/code\u003e\u003c/a\u003e Add trusted publishing and support for Python 3.14 (\u003ca href=\"https://redirect.github.com/facelessuser/bracex/issues/44\"\u003e#44\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/c14d46fb495a8fdcd0ec51d4dd42aa587807407d\"\u003e\u003ccode\u003ec14d46f\u003c/code\u003e\u003c/a\u003e Add security policy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/14645af4bf4de0e1abe4fd6c29bf98871f549273\"\u003e\u003ccode\u003e14645af\u003c/code\u003e\u003c/a\u003e Typos: remove duplicate words\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/bracex/compare/2.5.post1...2.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 6.0.0 to 6.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\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/tkem/cachetools/commit/bb6d71a745785429b14aae30b7752f4765dc35c3\"\u003e\u003ccode\u003ebb6d71a\u003c/code\u003e\u003c/a\u003e Release v6.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/77a9c59e3324496a79e6c4d5a7b5bfdb9a7f7f42\"\u003e\u003ccode\u003e77a9c59\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/260\"\u003e#260\u003c/a\u003e: Use LFUCache implementation based on Blake Reid's \u0026quot;cacheing\u0026quot; library.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b1d4eb2972ca8f0ab49e22eae3bb47c1eb8b552c\"\u003e\u003ccode\u003eb1d4eb2\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.4.2 to 5.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/820b154494e91aa5bfe63a3fa2033c63a9c84603\"\u003e\u003ccode\u003e820b154\u003c/code\u003e\u003c/a\u003e Refactor \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e unit tests.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v6.0.0...v6.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.6.15 to 2025.8.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1\"\u003e\u003ccode\u003eddd90c6\u003c/code\u003e\u003c/a\u003e 2025.07.14 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d905221c916d51077f5c8071a0f7aa2df2a37c52\"\u003e\u003ccode\u003ed905221\u003c/code\u003e\u003c/a\u003e 2025.07.09 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.06.15...2025.08.03\"\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.2 to 3.4.3\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.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\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.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\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/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.9.1 to 7.10.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.4 — 2025-08-16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003epatch = fork\u003c/code\u003e for times when the built-in forking support is\ninsufficient.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003epatch = execv\u003c/code\u003e also inherits the entire coverage configuration now.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _changes_7-10-3:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.3 — 2025-08-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixes for \u003ccode\u003epatch = subprocess\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses spawned yet more subprocesses simultaneously, some coverage\ncould be missed.  This is now fixed, closing \u003ccode\u003eissue 2024\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses were created in other directories, their data files were\nstranded there and not combined into the totals, as described in \u003ccode\u003eissue 2025\u003c/code\u003e_.  This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOn Windows (or maybe only some Windows?) the patch would fail with a\n\u003ccode\u003eModuleNotFound\u003c/code\u003e error trying to import coverage.  This is now fixed,\nclosing \u003ccode\u003eissue 2022\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOriginally only options set in the coverage configuration file would apply\nto subprocesses.  Options set on the \u003ccode\u003ecoverage run\u003c/code\u003e command line (such as\n\u003ccode\u003e--branch\u003c/code\u003e) wouldn't be communicated to the subprocesses.  This could\nlead to combining failures, as described in \u003ccode\u003eissue 2021\u003c/code\u003e_. Now the entire\nconfiguration is used in subprocesses, regardless of its origin.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003edebug=patch\u003c/code\u003e to help diagnose problems.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: really close all SQLite databases, even in-memory ones. Closes \u003ccode\u003eissue 2017\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2017: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2017\"\u003enedbat/coveragepy#2017\u003c/a\u003e\n.. _issue 2021: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2021\"\u003enedbat/coveragepy#2021\u003c/a\u003e\n.. _issue 2022: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2022\"\u003enedbat/coveragepy#2022\u003c/a\u003e\n.. _issue 2024: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2024\"\u003enedbat/coveragepy#2024\u003c/a\u003e\n.. _issue 2025: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2025\"\u003enedbat/coveragepy#2025\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-2:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.2 — 2025-08-03\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/1cd29f24ce3859c9b2d824959031b9142c218904\"\u003e\u003ccode\u003e1cd29f2\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/92a91e9cbbde7ea05a960b4c85bfc9d16b4a8d33\"\u003e\u003ccode\u003e92a91e9\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9ee6390200e1946ba5458e86d6e9f46adace4751\"\u003e\u003ccode\u003e9ee6390\u003c/code\u003e\u003c/a\u003e debug: more details in debug messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/6af8a5d13314eba82c2c5974b2fbf133f09b51d0\"\u003e\u003ccode\u003e6af8a5d\u003c/code\u003e\u003c/a\u003e feat: patch=fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0eb292d24d3790ec46f2961cd05136e9e5f5d0c6\"\u003e\u003ccode\u003e0eb292d\u003c/code\u003e\u003c/a\u003e refactor: a nicer way to inject config from the environment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/183cd9b5358d41fc67210c66df9169a9e495df0b\"\u003e\u003ccode\u003e183cd9b\u003c/code\u003e\u003c/a\u003e build: tweaks to how the python build is bannered for tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/6c2fb87e14e0d18859cac4763577ef4f717c2f38\"\u003e\u003ccode\u003e6c2fb87\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a22436cb0e17397a79ae480be0ce6f19b98b3188\"\u003e\u003ccode\u003ea22436c\u003c/code\u003e\u003c/a\u003e test: since 62434e79 we don't need to account for .tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/4ab4bb04db299cee912d1f930dcab59f01317f54\"\u003e\u003ccode\u003e4ab4bb0\u003c/code\u003e\u003c/a\u003e test: add a test for env var truncation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/bf1a9706b3eb2a1c27743815e475ab6d966a6d6f\"\u003e\u003ccode\u003ebf1a970\u003c/code\u003e\u003c/a\u003e refactor: better style for constants\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.9.1...7.10.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 45.0.4 to 45.0.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e45.0.6 - 2025-08-05\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.2.\n\u003cp\u003e.. _v45-0-5:\u003c/p\u003e\n\u003cp\u003e45.0.5 - 2025-07-02\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.1.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-4:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/66198c23c97c9594d64540e5a866e4b4121aec2d\"\u003e\u003ccode\u003e66198c2\u003c/code\u003e\u003c/a\u003e Bump for release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13249\"\u003e#13249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3e53a233b65123d2a836b58ccdc427ed5207f92b\"\u003e\u003ccode\u003e3e53a23\u003c/code\u003e\u003c/a\u003e Bump for 45.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13135\"\u003e#13135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/45.0.4...45.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `distlib` from 0.3.9 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/distlib/blob/master/CHANGES.rst\"\u003edistlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.4.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nReleased: 2025-07-17\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003emarkers\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003einterpret_parsed\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ewheel\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/238\"\u003e#238\u003c/a\u003e: Add build tag to wheel metadata if specified.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/243\"\u003e#243\u003c/a\u003e: Update to support free-threading version of Python (3.13t).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e: Support subdirectories in the dist-info directory. Thanks to Pieter P for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e: Fix path normalisation issue caused by the fix for \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMove import in script wrapper to \u0026quot;if \u003cstrong\u003ename\u003c/strong\u003e == 'main'\u0026quot; clause.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003etests\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/245\"\u003e#245\u003c/a\u003e: Skip test_package_data if a SKIP_EXT_PACKAGE_DATA environment variable is present.\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/aff2cbbc4e8a87b9440cb93472789a213813dbd6\"\u003e\u003ccode\u003eaff2cbb\u003c/code\u003e\u003c/a\u003e Finalise version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/3716c4bcccac19d0c0f2ce0d1272dd33996381b5\"\u003e\u003ccode\u003e3716c4b\u003c/code\u003e\u003c/a\u003e Update change log, widen exception catching in test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/660bd337bf3217a7bd907c2ba8a2f8dd291ac793\"\u003e\u003ccode\u003e660bd33\u003c/code\u003e\u003c/a\u003e Changes for 0.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/56b4ad938455048fc79e599d369e02a1414e9946\"\u003e\u003ccode\u003e56b4ad9\u003c/code\u003e\u003c/a\u003e Guard script wrapper entrypoint import with if \u003cstrong\u003emain\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/242\"\u003e#242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/fe573669087cb1109fb0cc249bf0e06a5461324c\"\u003e\u003ccode\u003efe57366\u003c/code\u003e\u003c/a\u003e docs: update coverage results link (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/250\"\u003e#250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/c3286e508bb60cd2337408d88eb614a93b612d8c\"\u003e\u003ccode\u003ec3286e5\u003c/code\u003e\u003c/a\u003e Temporarily exclude 3.13t on windows-latest.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/e6b83d3b0eeb11d8e7b053f11139d15aab89d196\"\u003e\u003ccode\u003ee6b83d3\u003c/code\u003e\u003c/a\u003e Normalize archive paths in dist-info (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/93baffeaa1773796d802bb761607a6466790dcba\"\u003e\u003ccode\u003e93baffe\u003c/code\u003e\u003c/a\u003e Skip no-longer-relevant test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/83f656836f4b6d8175172fcb8370fbee691f2bec\"\u003e\u003ccode\u003e83f6568\u003c/code\u003e\u003c/a\u003e Support subdirectories in .dist-info (fixes \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/247\"\u003e#247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/f918abd5d20879041704f9d719533b213a55ad48\"\u003e\u003ccode\u003ef918abd\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003etest_wheel.WheelTestCase.test_abi\u003c/code\u003e for freethreading (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/distlib/compare/0.3.9...0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.18.0 to 3.19.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/py-filelock/releases\"\u003efilelock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.19.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd 3.14t (free threading) to matrix by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncrease test coverage by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/434\"\u003etox-dev/filelock#434\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/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.19.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for 3.14 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/432\"\u003etox-dev/filelock#432\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/8d1009f08a6a64624fad91d1079062ef31b8c2b4\"\u003e\u003ccode\u003e8d1009f\u003c/code\u003e\u003c/a\u003e Update release.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/66a428e97a874b44b0310072f6c974226f55a472\"\u003e\u003ccode\u003e66a428e\u003c/code\u003e\u003c/a\u003e Increase test coverage (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0dfc86eebd2c76ae959a409bcbc3112cc1ec5890\"\u003e\u003ccode\u003e0dfc86e\u003c/code\u003e\u003c/a\u003e add 3.14 to matrix (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0c54837e318ebe8a692b529722430cb38134bf7c\"\u003e\u003ccode\u003e0c54837\u003c/code\u003e\u003c/a\u003e Add support for 3.14 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/432\"\u003e#432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/77d02f5ada3a1a92167b1beee35a7815cbde0fcf\"\u003e\u003ccode\u003e77d02f5\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/bc972b33bf253bb9f08db32b19ffd4119a74706e\"\u003e\u003ccode\u003ebc972b3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/429\"\u003e#429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/78d02cb5ff42b22a56ad1a36755361a6b4601765\"\u003e\u003ccode\u003e78d02cb\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/428\"\u003e#428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/18cdb5d1c78a7a459463480303e9820f33cdf041\"\u003e\u003ccode\u003e18cdb5d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/b198a096d2bae58596479497d18a82bbeec515c8\"\u003e\u003ccode\u003eb198a09\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/426\"\u003e#426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/6b097e76de603d9be6a24c5058b6fe53ef003afd\"\u003e\u003ccode\u003e6b097e7\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.18.0...3.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gitpython` from 3.1.44 to 3.1.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gitpython-developers/GitPython/releases\"\u003egitpython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.45\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix various version-related CI breakages by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1987\"\u003egitpython-developers/GitPython#1987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo some CI cleanup to make reports clearer and future changes easier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1989\"\u003egitpython-developers/GitPython#1989\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAffirm that gitdb and smmap advisories can also be created by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1991\"\u003egitpython-developers/GitPython#1991\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix links to gitdb and smmap \u003ccode\u003eSECURITY.md\u003c/code\u003e files by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1992\"\u003egitpython-developers/GitPython#1992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest Python 3.13 regularly on Ubuntu and macOS on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1990\"\u003egitpython-developers/GitPython#1990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRepo.rev_parse: Handle \u003c!-- raw HTML omitted --\u003e^{commit} correctly by \u003ca href=\"https://github.com/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFuzzing: Fix Broken Fuzz Test for Git Submodule Handling by \u003ca href=\"https://github.com/DaveLak\"\u003e\u003ccode\u003e@​DaveLak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1997\"\u003egitpython-developers/GitPython#1997\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWork around Cygwin CI failure \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2004\"\u003e#2004\u003c/a\u003e, except for \u003ccode\u003etest_installation\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2007\"\u003egitpython-developers/GitPython#2007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark \u003ccode\u003etest_installation\u003c/code\u003e xfail on Cygwin CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2009\"\u003egitpython-developers/GitPython#2009\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eIndexFile._to_relative_path\u003c/code\u003e - fix case where absolute path gets stripped of trailing slash by \u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse WSL1 on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2010\"\u003egitpython-developers/GitPython#2010\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest free-threaded Python (but only on Linux) by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2011\"\u003egitpython-developers/GitPython#2011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse property decorator to support typing by \u003ca href=\"https://github.com/Andrej730\"\u003e\u003ccode\u003e@​Andrej730\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2015\"\u003egitpython-developers/GitPython#2015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some incorrect sphinx markups in the docstrings by \u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereplace quansight-labs/setup-python with actions/setup-python by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove type assertions from util.py by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecorrectly handle \u003ccode\u003euname-cmd\u003c/code\u003e that doesn't point to an executable file by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2026\"\u003egitpython-developers/GitPython#2026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse newer ruff style by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2031\"\u003egitpython-developers/GitPython#2031\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHave CodeQL scan GitHub Actions workflows as well as Python code by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2032\"\u003egitpython-developers/GitPython#2032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpecify explicit \u003ccode\u003econtents: read\u003c/code\u003e workflow permissions by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2033\"\u003egitpython-developers/GitPython#2033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GitConfigParser not removing quotes from values by \u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve quoted leading and trailing single-line config var whitespace by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2036\"\u003egitpython-developers/GitPython#2036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor Git.{AutoInterrupt,CatFileContentStream} nesting by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2037\"\u003egitpython-developers/GitPython#2037\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Git.{AutoInterrupt,CatFileContentStream} static typing by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2039\"\u003egitpython-developers/GitPython#2039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI \u003ccode\u003emypy\u003c/code\u003e command on free-threaded Python by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2040\"\u003egitpython-developers/GitPython#2040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit Cygwin CI into non-\u003ccode\u003eperformance\u003c/code\u003e and \u003ccode\u003eperformance\u003c/code\u003e test jobs by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2042\"\u003egitpython-developers/GitPython#2042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpress conditional \u003ccode\u003esetuptools\u003c/code\u003e requirement statically by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2043\"\u003egitpython-developers/GitPython#2043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ambiguous \u003ccode\u003e_safer_popen_windows\u003c/code\u003e comment by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2044\"\u003egitpython-developers/GitPython#2044\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eUSE_SHELL\u003c/code\u003e warning helper signature by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2045\"\u003egitpython-developers/GitPython#2045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest \u003ccode\u003eConfigParser\u003c/code\u003e with whitespace outside the value by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2046\"\u003egitpython-developers/GitPython#2046\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove explicit empty \u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e handling in ConfigParser by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2047\"\u003egitpython-developers/GitPython#2047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious style improvements by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2049\"\u003egitpython-developers/GitPython#2049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't remove quotes if \u003ccode\u003e\\\u003c/code\u003e or \u003ccode\u003e\u0026quot;\u003c/code\u003e are present inside by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2048\"\u003egitpython-developers/GitPython#2048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix updating submodules with relative urls by \u003ca href=\"https://github.com/david0\"\u003e\u003ccode\u003e@​david0\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2051\"\u003egitpython-developers/GitPython#2051\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun \u003ccode\u003ecat_file.py\u003c/code\u003e fixture without site customizations by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2052\"\u003egitpython-developers/GitPython#2052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Cygwin installation on CI for \u003ccode\u003epip\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2053\"\u003egitpython-developers/GitPython#2053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFail \u003ccode\u003etest_installation\u003c/code\u003e on warnings, and remove deprecated license classifier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2054\"\u003egitpython-developers/GitPython#2054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd clearer error version for unsupported index error by \u003ca href=\"https://github.com/tombedor\"\u003e\u003ccode\u003e@​tombedor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2055\"\u003egitpython-developers/GitPython#2055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix name collision by \u003ca href=\"https://github.com/NMertsch\"\u003e\u003ccode\u003e@​NMertsch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2060\"\u003egitpython-developers/GitPython#2060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow relative path url in submodules for submodule_update by \u003ca href=\"https://github.com/t-webber\"\u003e\u003ccode\u003e@​t-webber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2062\"\u003egitpython-developers/GitPython#2062\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/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\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/gitpython-developers/GitPython/commit/6ba2c0a2f9ee7feffd7e079621c4845820180c9a\"\u003e\u003ccode\u003e6ba2c0a\u003c/code\u003e\u003c/a\u003e Prepare a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/bbb3d00ac431dc7966f9715fb813792d234eca81\"\u003e\u003ccode\u003ebbb3d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2062\"\u003e#2062\u003c/a\u003e from t-webber/relative_path_submodules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/1ee1e781929074afd66bff1eae007bbee41d117e\"\u003e\u003ccode\u003e1ee1e78\u003c/code\u003e\u003c/a\u003e Add test case for cloning submodules with relative path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/ec2e2c8b894512e7a2364774d77cdd9db73f0566\"\u003e\u003ccode\u003eec2e2c8\u003c/code\u003e\u003c/a\u003e Allow relative path url in submodules for submodule_update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4d529b71905edae12e4699170f7d9e0a665801b5\"\u003e\u003ccode\u003e4d529b7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2060\"\u003e#2060\u003c/a\u003e from NMertsch/2023-fix-gitconfigparser-autodoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/80fd2c16211738156e65258381a17cdc429ddd08\"\u003e\u003ccode\u003e80fd2c1\u003c/code\u003e\u003c/a\u003e Don't treat sphinx warnings as errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/a4aadb0c04bd13af824c14dcc39f88345aa5c440\"\u003e\u003ccode\u003ea4aadb0\u003c/code\u003e\u003c/a\u003e Fix name collision\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4c7778a93134364cfff7b1597f9eda00a88323af\"\u003e\u003ccode\u003e4c7778a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2057\"\u003e#2057\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/5033c3ffd8917d835658c22e84bd86103a2ae52d\"\u003e\u003ccode\u003e5033c3f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2056\"\u003e#2056\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/496392b9bf781904421cbd171c0c5395a6fe330c\"\u003e\u003ccode\u003e496392b\u003c/code\u003e\u003c/a\u003e Bump cygwin/cygwin-install-action from 5 to 6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gitpython-developers/GitPython/compare/3.1.44...3.1.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `griffe` from 1.7.3 to 1.12.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/releases\"\u003egriffe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.12.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.1\"\u003e1.12.1\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.0...1.12.1\"\u003eCompare with 1.12.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce size of JSON dumps by removing keys with null values (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/58227eb377fee66ef66237d7cbed35156ff1fed1\"\u003e58227eb\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/403\"\u003eIssue-403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fields to aliases when serializing (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5c9fee2b0c6e4f4e63c7648fa41b2e540f2ecc7f\"\u003e5c9fee2\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAlso add the option to ignore missing type to the Sphinx parser (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8c9f803e748a659905b06445a349a6cfea948c1c\"\u003e8c9f803\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.12.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.0\"\u003e1.12.0\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.1...1.12.0\"\u003eCompare with 1.11.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow disabling \u0026quot;missing type/annotation\u0026quot; warnings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/07564b43524220342c3078ece406459c08b80a86\"\u003e07564b4\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/437\"\u003eIssue-mkdocstrings-437\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.11.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.1\"\u003e1.11.1\u003c/a\u003e - 2025-08-11\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.0...1.11.1\"\u003eCompare with 1.11.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix type parameters loading (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce41279cc8b7abc45c7b94316b24e87d4a1edc40\"\u003ece41279\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove private \u003ccode\u003e_griffe\u003c/code\u003e package under \u003ccode\u003egriffe._internal\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8f37158eb5617d2cf686f9a0a044f29c638598b2\"\u003e8f37158\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.0\"\u003e1.11.0\u003c/a\u003e - 2025-08-07\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.10.0...1.11.0\"\u003eCompare with 1.10.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd data to dict/json output (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/9731afcbeab377e7f3f69a0d18d19677e790072e\"\u003e9731afc\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.10.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.10.0\"\u003e1.10.0\u003c/a\u003e - 2025-08-06\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.9.0...1.10.0\"\u003eCompare with 1.9.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow adding \u003ccode\u003esys.path\u003c/code\u003e to search paths when temporary visiting/inspecting package (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/42983bc843fd9a63883e9c50ad5043b0f737b450\"\u003e42983bc\u003c/a\u003e by Timothée Mazzucotelli).\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/mkdocstrings/griffe/blob/main/CHANGELOG.md\"\u003egriffe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.1\"\u003e1.12.1\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.0...1.12.1\"\u003eCompare with 1.12.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce size of JSON dumps by removing keys with null values (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/58227eb377fee66ef66237d7cbed35156ff1fed1\"\u003e58227eb\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/403\"\u003eIssue-403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fields to aliases when serializing (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5c9fee2b0c6e4f4e63c7648fa41b2e540f2ecc7f\"\u003e5c9fee2\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAlso add the option to ignore missing type to the Sphinx parser (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8c9f803e748a659905b06445a349a6cfea948c1c\"\u003e8c9f803\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.0\"\u003e1.12.0\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.1...1.12.0\"\u003eCompare with 1.11.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow disabling \u0026quot;missing type/annotation\u0026quot; warnings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/07564b43524220342c3078ece406459c08b80a86\"\u003e07564b4\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/437\"\u003eIssue-mkdocstrings-437\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.1\"\u003e1.11.1\u003c/a\u003e - 2025-08-11\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.0...1.11.1\"\u003eCompare with 1.11.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix type parameters loading (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce41279cc8b7abc45c7b94316b24e87d4a1edc40\"\u003ece41279\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove private \u003ccode\u003e_griffe\u003c/code\u003e package under \u003ccode\u003egriffe._internal\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8f37158eb5617d2cf686f9a0a044f29c638598b2\"\u003e8f37158\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.0\"\u003e1.11.0\u003c/a\u003e - 2025-08-07\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.10.0...1.11.0\"\u003eCompare with 1.10.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd data to dict/json output (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/9731afcbeab377e7f3f69a0d18d19677e790072e\"\u003e9731afc\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.10.0\"\u003e1.10.0\u003c/a\u003e - 2025-08-06\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.9.0...1.10.0\"\u003eCompare with 1.9.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow adding \u003ccode\u003esys.path\u003c/code\u003e to search paths when temporary visiting/inspecting package (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/42983bc843fd9a63883e9c50ad5043b0f737b450\"\u003e42983bc\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.9.0\"\u003e1.9.0\u003c/a\u003e - 2025-07-28\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.8.0...1.9.0\"\u003eCompare with 1.8.0\u003c/a\u003e\u003c!-- raw HTML omitted --\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/mkdocstrings/griffe/commit/d1899ecf00f823a75af80ea186b8a1ca30898b55\"\u003e\u003ccode\u003ed1899ec\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.12.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/58227eb377fee66ef66237d7cbed35156ff1fed1\"\u003e\u003ccode\u003e58227eb\u003c/code\u003e\u003c/a\u003e refactor: Reduce size of JSON dumps by removing keys with null values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5c9fee2b0c6e4f4e63c7648fa41b2e540f2ecc7f\"\u003e\u003ccode\u003e5c9fee2\u003c/code\u003e\u003c/a\u003e refactor: Add fields to aliases when serializing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8c9f803e748a659905b06445a349a6cfea948c1c\"\u003e\u003ccode\u003e8c9f803\u003c/code\u003e\u003c/a\u003e refactor: Also add the option to ignore missing type to the Sphinx parser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/41921c5609dfb67e8b5c6b59429676155d24309b\"\u003e\u003ccode\u003e41921c5\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/07564b43524220342c3078ece406459c08b80a86\"\u003e\u003ccode\u003e07564b4\u003c/code\u003e\u003c/a\u003e feat: Allow disabling \u0026quot;missing type/annotation\u0026quot; warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/34d80517db78550a49e4322c1c5f5194677779e1\"\u003e\u003ccode\u003e34d8051\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/937c7967f036d0fa452245c1aa0d0ccab0e685dd\"\u003e\u003ccode\u003e937c796\u003c/code\u003e\u003c/a\u003e docs: Don't hide navigation in Python API page\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/4da5cc570535c7bc9370635750583f6bf1925447\"\u003e\u003ccode\u003e4da5cc5\u003c/code\u003e\u003c/a\u003e docs: Lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce41279cc8b7abc45c7b94316b24e87d4a1edc40\"\u003e\u003ccode\u003ece41279\u003c/code\u003e\u003c/a\u003e fix: Fix type parameters loading\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.7.3...1.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-resources` from 5.0.7 to 6.5.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_resources/blob/main/NEWS.rst\"\u003eimportlib-resources's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.5.2\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced reference to typing_extensions with stdlib Literal. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/323\"\u003e#323\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.5.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated \u003ccode\u003eTraversable.read_text()\u003c/code\u003e to reflect the \u003ccode\u003eerrors\u003c/code\u003e\u003ccode\u003epython/cpython#127012\u003c/code\u003e\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/321\"\u003e#321\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.5.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd type annotations for Traversable.open. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire Python 3.9 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.4.5\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOmit sentinel values from a namespace path. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/311\"\u003e#311\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.4.4\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch1\u003ev6.4.3\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWhen inferring the caller in \u003ccode\u003efiles()\u003c/code\u003e\u003ccode\u003epython/cpython#123085\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/python/importlib_resources/commit/7d3b2bfa1d8c53ecb64246ba16d8c632f8fcb6bf\"\u003e\u003ccode\u003e7d3b2bf\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/14408098293bd6bc68eca7b5a53333729a567e57\"\u003e\u003ccode\u003e1440809\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/324\"\u003e#324\u003c/a\u003e from pstjohn/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/6569354ad2cf38b202fdeaf11b49e639b1a00fbc\"\u003e\u003ccode\u003e6569354\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/6c1bc3cdb8f8a7d29252becc201508712040facc\"\u003e\u003ccode\u003e6c1bc3c\u003c/code\u003e\u003c/a\u003e Rely on Literal from stdlib.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/883380a5fcc482b67014b90b9aa7250d868c795a\"\u003e\u003ccode\u003e883380a\u003c/code\u003e\u003c/a\u003e Update pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/a61a948b6293ed46972909652909e2540242f197\"\u003e\u003ccode\u003ea61a948\u003c/code\u003e\u003c/a\u003e Add typing-extensions as a dependency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/78c4bda73c5d671cbbcfdf1430b6f2da03aeb04f\"\u003e\u003ccode\u003e78c4bda\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/10d87bf85a404e9fb9271f8f353ad0452c0cc631\"\u003e\u003ccode\u003e10d87bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/321\"\u003e#321\u003c/a\u003e from kurtmckee/add-readtext-errors-parameter-cpython-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/9a872e5dbceff32260e8ff19d039236304ee150c\"\u003e\u003ccode\u003e9a872e5\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/cf269ce50f496671f3b7fbc5e6292946ecc70e7d\"\u003e\u003ccode\u003ecf269ce\u003c/code\u003e\u003c/a\u003e Replace unreachable block with simple assertion. Fixes diffcov failure.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_resources/compare/v5.0.7...v6.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jsonschema` from 4.24.0 to 4.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-jsonschema/jsonschema/releases\"\u003ejsonschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.25.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eiri\u003c/code\u003e and \u003ccode\u003eiri-reference\u003c/code\u003e formats to the \u003ccode\u003eformat-nongpl\u003c/code\u003e extra by \u003ca href=\"https://github.com/jkowalleck\"\u003e\u003ccode\u003e@​jkowalleck\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1388\"\u003epython-jsonschema/jsonschema#1388\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/jkowalleck\"\u003e\u003ccode\u003e@​jkowalleck\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1388\"\u003epython-jsonschema/jsonschema#1388\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-jsonschema/jsonschema/compare/v4.24.1...v4.25.0\"\u003ehttps://github.com/python-jsonschema/jsonschema/compare/v4.24.1...v4.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.24.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUnambiguously quote and escape properties in JSON path rendering by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1390\"\u003epython-jsonschema/jsonschema#1390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop python\u0026lt;3.9 backports by \u003ca href=\"https://github.com/hackowitz-af\"\u003e\u003ccode\u003e@​hackowitz-af\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-...\n\n_Description has been truncated_","html_url":"https://github.com/pycontribs/subprocess-tee/pull/187","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycontribs%2Fsubprocess-tee/issues/187","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/187/packages"},{"uuid":"2733834606","node_id":"PR_kwDOEkpJIs6i8wFu","number":185,"state":"closed","title":"Bump the dependencies group across 1 directory with 24 updates","user":"dependabot[bot]","labels":["skip-changelog","dependencies","dependabot-deps-updates"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-08-17T22:26:48.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-08-10T22:43:42.000Z","updated_at":"2025-08-17T22:26:48.000Z","time_to_close":603786,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":24,"packages":[{"name":"mkdocstrings","old_version":"0.29.1","new_version":"0.30.0","repository_url":"https://github.com/mkdocstrings/mkdocstrings"},{"name":"backrefs","old_version":"5.8","new_version":"6.0.1","repository_url":"https://github.com/facelessuser/backrefs"},{"name":"bracex","old_version":"2.5.post1","new_version":"2.6","repository_url":"https://github.com/facelessuser/bracex"},{"name":"cachetools","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"coverage","old_version":"7.9.1","new_version":"7.10.3","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"cryptography","old_version":"45.0.4","new_version":"45.0.6","repository_url":"https://github.com/pyca/cryptography"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"gitpython","old_version":"3.1.44","new_version":"3.1.45","repository_url":"https://github.com/gitpython-developers/GitPython"},{"name":"griffe","old_version":"1.7.3","new_version":"1.11.0","repository_url":"https://github.com/mkdocstrings/griffe"},{"name":"importlib-resources","old_version":"5.0.7","new_version":"6.5.2","repository_url":"https://github.com/python/importlib_resources"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"markdown","old_version":"3.8","new_version":"3.8.2","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"mkdocs-material","old_version":"9.6.14","new_version":"9.6.16","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"pillow","old_version":"11.2.1","new_version":"11.3.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pymdown-extensions","old_version":"10.15","new_version":"10.16.1","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"pytest","old_version":"8.4.0","new_version":"8.4.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-xdist","old_version":"3.7.0","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"rich","old_version":"14.0.0","new_version":"14.1.0","repository_url":"https://github.com/Textualize/rich"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.27.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"urllib3","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"wcmatch","old_version":"10.0","new_version":"10.1","repository_url":"https://github.com/facelessuser/wcmatch"}],"path":null,"ecosystem":"conda"},"body":"Bumps the dependencies group with 24 updates in the /.config directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings) | `0.29.1` | `0.30.0` |\n| [backrefs](https://github.com/facelessuser/backrefs) | `5.8` | `6.0.1` |\n| [bracex](https://github.com/facelessuser/bracex) | `2.5.post1` | `2.6` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.0.0` | `6.1.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.8.3` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.3` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.9.1` | `7.10.3` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.4` | `45.0.6` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [gitpython](https://github.com/gitpython-developers/GitPython) | `3.1.44` | `3.1.45` |\n| [griffe](https://github.com/mkdocstrings/griffe) | `1.7.3` | `1.11.0` |\n| [importlib-resources](https://github.com/python/importlib_resources) | `5.0.7` | `6.5.2` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.0` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.8` | `3.8.2` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.6.14` | `9.6.16` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `11.3.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.15` | `10.16.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.0` | `8.4.1` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.7.0` | `3.8.0` |\n| [rich](https://github.com/Textualize/rich) | `14.0.0` | `14.1.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.27.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.4.0` | `2.5.0` |\n| [wcmatch](https://github.com/facelessuser/wcmatch) | `10.0` | `10.1` |\n\n\nUpdates `mkdocstrings` from 0.29.1 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases\"\u003emkdocstrings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.30.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\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/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md\"\u003emkdocstrings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\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/mkdocstrings/mkdocstrings/commit/2be445f054c1191d308af7ee0cc881e359f5a4c7\"\u003e\u003ccode\u003e2be445f\u003c/code\u003e\u003c/a\u003e chore: Prepare release 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003e\u003ccode\u003ef856160\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip regist...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e\u003ccode\u003e2b4ed54\u003c/code\u003e\u003c/a\u003e feat: Add I18N support (translations)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/51f217f38af9475415f758866697158d9010967d\"\u003e\u003ccode\u003e51f217f\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/b1da3d02c4f432f603cbb0004bb35099327706db\"\u003e\u003ccode\u003eb1da3d0\u003c/code\u003e\u003c/a\u003e ci: Ignore Ruff warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d5bf4e1ed0370853f968b210ad77913faf106eed\"\u003e\u003ccode\u003ed5bf4e1\u003c/code\u003e\u003c/a\u003e docs: Update link to YAML idiosyncrasies\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `backrefs` from 5.8 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/backrefs/releases\"\u003ebackrefs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix a regression that created an ASCII binary property that would override the ASCII block property.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: POSIX character classes will now always use POSIX compatibility rules instead of Unicode standard rules,\nif any are specified in the Unicode specification. The affected character classes are: \u003ccode\u003e[[:alnum:]]\u003c/code\u003e, \u003ccode\u003e[[:digit:]]\u003c/code\u003e,\n\u003ccode\u003e[[:xdigit:]]\u003c/code\u003e, and  \u003ccode\u003e[[:punct:]]\u003c/code\u003e. To explicitly use standard Unicode rules for these compatibility properties, use\nthe Unicode property form instead: \u003ccode\u003e[\\p{Alnum}]\u003c/code\u003e, \u003ccode\u003e[\\p{Digit}]\u003c/code\u003e, \u003ccode\u003e[\\p{Punct}]\u003c/code\u003e, or \u003ccode\u003e[\\p{XDigit}]\u003c/code\u003e. This has changed\nto ensure no confusion for users expecting compatible POSIX style character class properties.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Scoped ASCII/Unicode flags (\u003ccode\u003e(?a:pattern)\u003c/code\u003e/\u003ccode\u003e(?u:pattern)\u003c/code\u003e) should be respected for Unicode properties in\n\u003ccode\u003ebre\u003c/code\u003e and will ensure ASCII or Unicode range if used.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix issues related to detecting disabled scoped flags.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eENHANCE\u003c/strong\u003e: Switch to deploying with PyPI's \u0026quot;Trusted Publisher\u0026quot;.\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/facelessuser/backrefs/commit/63f8a4b14750828b7c1e385844fd36f6f89859e4\"\u003e\u003ccode\u003e63f8a4b\u003c/code\u003e\u003c/a\u003e Fix grammar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7f4bf611e6e7fcc2aa4e0eba2872b5f51b7fc908\"\u003e\u003ccode\u003e7f4bf61\u003c/code\u003e\u003c/a\u003e Rework POSIX alias\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/956df5f387f1958110e5a7cf2a98d42a8309d9b6\"\u003e\u003ccode\u003e956df5f\u003c/code\u003e\u003c/a\u003e Fix ASCII block regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7a948f083c3c87114a8dd87c95dff1893f3af82a\"\u003e\u003ccode\u003e7a948f0\u003c/code\u003e\u003c/a\u003e Clean up code and add more comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/9b2e406be36c1e0fc72651adbc7d2d63c4151483\"\u003e\u003ccode\u003e9b2e406\u003c/code\u003e\u003c/a\u003e Add more flag tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/47d62b1270ca7f1717e7acdb56e8e6ed3e9e8f10\"\u003e\u003ccode\u003e47d62b1\u003c/code\u003e\u003c/a\u003e Handle enable/disable properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/8e7596700b913e13f478da57e0ba0965f2d9ed3b\"\u003e\u003ccode\u003e8e75967\u003c/code\u003e\u003c/a\u003e Fix issues with scoped flags (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/0df8e7746d3ea31824af97ea4ed713a3facded5b\"\u003e\u003ccode\u003e0df8e77\u003c/code\u003e\u003c/a\u003e POSIX character classes should use POSIX compatibility rules by default (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/191\"\u003e#191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/31fd8c5c0338eefe41452d52f99012c0fecfdd82\"\u003e\u003ccode\u003e31fd8c5\u003c/code\u003e\u003c/a\u003e Call mkdocs directly on deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/8b3a24bfc1cacde6fc9ab4edfaed0f5a9206c554\"\u003e\u003ccode\u003e8b3a24b\u003c/code\u003e\u003c/a\u003e Fix deploy logic\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facelessuser/backrefs/compare/5.8...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bracex` from 2.5.post1 to 2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/bracex/releases\"\u003ebracex's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/6d109c55372f0d5086adb7cf84a951cc06391a69\"\u003e\u003ccode\u003e6d109c5\u003c/code\u003e\u003c/a\u003e Add trusted publishing and support for Python 3.14 (\u003ca href=\"https://redirect.github.com/facelessuser/bracex/issues/44\"\u003e#44\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/c14d46fb495a8fdcd0ec51d4dd42aa587807407d\"\u003e\u003ccode\u003ec14d46f\u003c/code\u003e\u003c/a\u003e Add security policy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/14645af4bf4de0e1abe4fd6c29bf98871f549273\"\u003e\u003ccode\u003e14645af\u003c/code\u003e\u003c/a\u003e Typos: remove duplicate words\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/bracex/compare/2.5.post1...2.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 6.0.0 to 6.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\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/tkem/cachetools/commit/bb6d71a745785429b14aae30b7752f4765dc35c3\"\u003e\u003ccode\u003ebb6d71a\u003c/code\u003e\u003c/a\u003e Release v6.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/77a9c59e3324496a79e6c4d5a7b5bfdb9a7f7f42\"\u003e\u003ccode\u003e77a9c59\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/260\"\u003e#260\u003c/a\u003e: Use LFUCache implementation based on Blake Reid's \u0026quot;cacheing\u0026quot; library.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b1d4eb2972ca8f0ab49e22eae3bb47c1eb8b552c\"\u003e\u003ccode\u003eb1d4eb2\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.4.2 to 5.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/820b154494e91aa5bfe63a3fa2033c63a9c84603\"\u003e\u003ccode\u003e820b154\u003c/code\u003e\u003c/a\u003e Refactor \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e unit tests.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v6.0.0...v6.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.6.15 to 2025.8.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1\"\u003e\u003ccode\u003eddd90c6\u003c/code\u003e\u003c/a\u003e 2025.07.14 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d905221c916d51077f5c8071a0f7aa2df2a37c52\"\u003e\u003ccode\u003ed905221\u003c/code\u003e\u003c/a\u003e 2025.07.09 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.06.15...2025.08.03\"\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.2 to 3.4.3\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.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\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.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\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/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.9.1 to 7.10.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.3 — 2025-08-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixes for \u003ccode\u003epatch = subprocess\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses spawned yet more subprocesses simultaneously, some coverage\ncould be missed.  This is now fixed, closing \u003ccode\u003eissue 2024\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses were created in other directories, their data files were\nstranded there and not combined into the totals, as described in \u003ccode\u003eissue 2025\u003c/code\u003e_.  This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOn Windows (or maybe only some Windows?) the patch would fail with a\n\u003ccode\u003eModuleNotFound\u003c/code\u003e error trying to import coverage.  This is now fixed,\nclosing \u003ccode\u003eissue 2022\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOriginally only options set in the coverage configuration file would apply\nto subprocesses.  Options set on the \u003ccode\u003ecoverage run\u003c/code\u003e command line (such as\n\u003ccode\u003e--branch\u003c/code\u003e) wouldn't be communicated to the subprocesses.  This could\nlead to combining failures, as described in \u003ccode\u003eissue 2021\u003c/code\u003e_. Now the entire\nconfiguration is used in subprocesses, regardless of its origin.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003edebug=patch\u003c/code\u003e to help diagnose problems.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: really close all SQLite databases, even in-memory ones. Closes \u003ccode\u003eissue 2017\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2017: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2017\"\u003enedbat/coveragepy#2017\u003c/a\u003e\n.. _issue 2021: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2021\"\u003enedbat/coveragepy#2021\u003c/a\u003e\n.. _issue 2022: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2022\"\u003enedbat/coveragepy#2022\u003c/a\u003e\n.. _issue 2024: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2024\"\u003enedbat/coveragepy#2024\u003c/a\u003e\n.. _issue 2025: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2025\"\u003enedbat/coveragepy#2025\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-2:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.2 — 2025-08-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: some code with NOP bytecodes could report missing branches that are\nactually executed. This is now fixed, closing \u003ccode\u003eissue 1999\u003c/code\u003e_. Python 3.9\nstill shows the problem.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1999: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1999\"\u003enedbat/coveragepy#1999\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.1 — 2025-07-27\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0691ce5d08ae2eb6cae51f879ffe609aeb14d221\"\u003e\u003ccode\u003e0691ce5\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/34c9aca951d2c89ab0af5343a9a1c5cc7b00aefd\"\u003e\u003ccode\u003e34c9aca\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/fd83f218e21058f43c7544a3cb01ce84714965f7\"\u003e\u003ccode\u003efd83f21\u003c/code\u003e\u003c/a\u003e style: lists for homogenous collections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/d9618002dde634898613f5935092cefbb29035f0\"\u003e\u003ccode\u003ed961800\u003c/code\u003e\u003c/a\u003e docs: remove an unused reference\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/697d4bb3950b31dc7f5d39d9dcf67fabde9db241\"\u003e\u003ccode\u003e697d4bb\u003c/code\u003e\u003c/a\u003e fix: subprocesses inherit the entire configuration. \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2021\"\u003e#2021\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/b6db3b7e52e4820bd1d3e43b29f700a5f31f3937\"\u003e\u003ccode\u003eb6db3b7\u003c/code\u003e\u003c/a\u003e build: show the total during local metacov\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/cfbceb584b18f87fdc6228fc4a8202d789e030cc\"\u003e\u003ccode\u003ecfbceb5\u003c/code\u003e\u003c/a\u003e docs: reverted \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2018\"\u003e#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/264bbd3d2c2ee9eca32248c5874423c0b6ff6287\"\u003e\u003ccode\u003e264bbd3\u003c/code\u003e\u003c/a\u003e refactor: more patch logging\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/3ecdfafc74bd2b007b561e6ac6b080c04e598b06\"\u003e\u003ccode\u003e3ecdfaf\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2026\"\u003e#2026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/41a225698710c9005da822978930be69312d1676\"\u003e\u003ccode\u003e41a2256\u003c/code\u003e\u003c/a\u003e fix: revert \u0026quot;thread safe resume (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2018\"\u003e#2018\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2027\"\u003e#2027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.9.1...7.10.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 45.0.4 to 45.0.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e45.0.6 - 2025-08-05\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.2.\n\u003cp\u003e.. _v45-0-5:\u003c/p\u003e\n\u003cp\u003e45.0.5 - 2025-07-02\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.1.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-4:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/66198c23c97c9594d64540e5a866e4b4121aec2d\"\u003e\u003ccode\u003e66198c2\u003c/code\u003e\u003c/a\u003e Bump for release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13249\"\u003e#13249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3e53a233b65123d2a836b58ccdc427ed5207f92b\"\u003e\u003ccode\u003e3e53a23\u003c/code\u003e\u003c/a\u003e Bump for 45.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13135\"\u003e#13135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/45.0.4...45.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `distlib` from 0.3.9 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/distlib/blob/master/CHANGES.rst\"\u003edistlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.4.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nReleased: 2025-07-17\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003emarkers\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003einterpret_parsed\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ewheel\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/238\"\u003e#238\u003c/a\u003e: Add build tag to wheel metadata if specified.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/243\"\u003e#243\u003c/a\u003e: Update to support free-threading version of Python (3.13t).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e: Support subdirectories in the dist-info directory. Thanks to Pieter P for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e: Fix path normalisation issue caused by the fix for \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMove import in script wrapper to \u0026quot;if \u003cstrong\u003ename\u003c/strong\u003e == 'main'\u0026quot; clause.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003etests\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/245\"\u003e#245\u003c/a\u003e: Skip test_package_data if a SKIP_EXT_PACKAGE_DATA environment variable is present.\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/aff2cbbc4e8a87b9440cb93472789a213813dbd6\"\u003e\u003ccode\u003eaff2cbb\u003c/code\u003e\u003c/a\u003e Finalise version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/3716c4bcccac19d0c0f2ce0d1272dd33996381b5\"\u003e\u003ccode\u003e3716c4b\u003c/code\u003e\u003c/a\u003e Update change log, widen exception catching in test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/660bd337bf3217a7bd907c2ba8a2f8dd291ac793\"\u003e\u003ccode\u003e660bd33\u003c/code\u003e\u003c/a\u003e Changes for 0.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/56b4ad938455048fc79e599d369e02a1414e9946\"\u003e\u003ccode\u003e56b4ad9\u003c/code\u003e\u003c/a\u003e Guard script wrapper entrypoint import with if \u003cstrong\u003emain\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/242\"\u003e#242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/fe573669087cb1109fb0cc249bf0e06a5461324c\"\u003e\u003ccode\u003efe57366\u003c/code\u003e\u003c/a\u003e docs: update coverage results link (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/250\"\u003e#250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/c3286e508bb60cd2337408d88eb614a93b612d8c\"\u003e\u003ccode\u003ec3286e5\u003c/code\u003e\u003c/a\u003e Temporarily exclude 3.13t on windows-latest.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/e6b83d3b0eeb11d8e7b053f11139d15aab89d196\"\u003e\u003ccode\u003ee6b83d3\u003c/code\u003e\u003c/a\u003e Normalize archive paths in dist-info (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/93baffeaa1773796d802bb761607a6466790dcba\"\u003e\u003ccode\u003e93baffe\u003c/code\u003e\u003c/a\u003e Skip no-longer-relevant test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/83f656836f4b6d8175172fcb8370fbee691f2bec\"\u003e\u003ccode\u003e83f6568\u003c/code\u003e\u003c/a\u003e Support subdirectories in .dist-info (fixes \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/247\"\u003e#247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/f918abd5d20879041704f9d719533b213a55ad48\"\u003e\u003ccode\u003ef918abd\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003etest_wheel.WheelTestCase.test_abi\u003c/code\u003e for freethreading (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/distlib/compare/0.3.9...0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gitpython` from 3.1.44 to 3.1.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gitpython-developers/GitPython/releases\"\u003egitpython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.45\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix various version-related CI breakages by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1987\"\u003egitpython-developers/GitPython#1987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo some CI cleanup to make reports clearer and future changes easier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1989\"\u003egitpython-developers/GitPython#1989\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAffirm that gitdb and smmap advisories can also be created by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1991\"\u003egitpython-developers/GitPython#1991\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix links to gitdb and smmap \u003ccode\u003eSECURITY.md\u003c/code\u003e files by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1992\"\u003egitpython-developers/GitPython#1992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest Python 3.13 regularly on Ubuntu and macOS on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1990\"\u003egitpython-developers/GitPython#1990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRepo.rev_parse: Handle \u003c!-- raw HTML omitted --\u003e^{commit} correctly by \u003ca href=\"https://github.com/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFuzzing: Fix Broken Fuzz Test for Git Submodule Handling by \u003ca href=\"https://github.com/DaveLak\"\u003e\u003ccode\u003e@​DaveLak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1997\"\u003egitpython-developers/GitPython#1997\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWork around Cygwin CI failure \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2004\"\u003e#2004\u003c/a\u003e, except for \u003ccode\u003etest_installation\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2007\"\u003egitpython-developers/GitPython#2007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark \u003ccode\u003etest_installation\u003c/code\u003e xfail on Cygwin CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2009\"\u003egitpython-developers/GitPython#2009\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eIndexFile._to_relative_path\u003c/code\u003e - fix case where absolute path gets stripped of trailing slash by \u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse WSL1 on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2010\"\u003egitpython-developers/GitPython#2010\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest free-threaded Python (but only on Linux) by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2011\"\u003egitpython-developers/GitPython#2011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse property decorator to support typing by \u003ca href=\"https://github.com/Andrej730\"\u003e\u003ccode\u003e@​Andrej730\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2015\"\u003egitpython-developers/GitPython#2015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some incorrect sphinx markups in the docstrings by \u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereplace quansight-labs/setup-python with actions/setup-python by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove type assertions from util.py by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecorrectly handle \u003ccode\u003euname-cmd\u003c/code\u003e that doesn't point to an executable file by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2026\"\u003egitpython-developers/GitPython#2026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse newer ruff style by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2031\"\u003egitpython-developers/GitPython#2031\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHave CodeQL scan GitHub Actions workflows as well as Python code by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2032\"\u003egitpython-developers/GitPython#2032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpecify explicit \u003ccode\u003econtents: read\u003c/code\u003e workflow permissions by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2033\"\u003egitpython-developers/GitPython#2033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GitConfigParser not removing quotes from values by \u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve quoted leading and trailing single-line config var whitespace by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2036\"\u003egitpython-developers/GitPython#2036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor Git.{AutoInterrupt,CatFileContentStream} nesting by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2037\"\u003egitpython-developers/GitPython#2037\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Git.{AutoInterrupt,CatFileContentStream} static typing by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2039\"\u003egitpython-developers/GitPython#2039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI \u003ccode\u003emypy\u003c/code\u003e command on free-threaded Python by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2040\"\u003egitpython-developers/GitPython#2040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit Cygwin CI into non-\u003ccode\u003eperformance\u003c/code\u003e and \u003ccode\u003eperformance\u003c/code\u003e test jobs by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2042\"\u003egitpython-developers/GitPython#2042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpress conditional \u003ccode\u003esetuptools\u003c/code\u003e requirement statically by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2043\"\u003egitpython-developers/GitPython#2043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ambiguous \u003ccode\u003e_safer_popen_windows\u003c/code\u003e comment by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2044\"\u003egitpython-developers/GitPython#2044\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eUSE_SHELL\u003c/code\u003e warning helper signature by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2045\"\u003egitpython-developers/GitPython#2045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest \u003ccode\u003eConfigParser\u003c/code\u003e with whitespace outside the value by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2046\"\u003egitpython-developers/GitPython#2046\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove explicit empty \u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e handling in ConfigParser by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2047\"\u003egitpython-developers/GitPython#2047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious style improvements by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2049\"\u003egitpython-developers/GitPython#2049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't remove quotes if \u003ccode\u003e\\\u003c/code\u003e or \u003ccode\u003e\u0026quot;\u003c/code\u003e are present inside by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2048\"\u003egitpython-developers/GitPython#2048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix updating submodules with relative urls by \u003ca href=\"https://github.com/david0\"\u003e\u003ccode\u003e@​david0\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2051\"\u003egitpython-developers/GitPython#2051\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun \u003ccode\u003ecat_file.py\u003c/code\u003e fixture without site customizations by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2052\"\u003egitpython-developers/GitPython#2052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Cygwin installation on CI for \u003ccode\u003epip\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2053\"\u003egitpython-developers/GitPython#2053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFail \u003ccode\u003etest_installation\u003c/code\u003e on warnings, and remove deprecated license classifier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2054\"\u003egitpython-developers/GitPython#2054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd clearer error version for unsupported index error by \u003ca href=\"https://github.com/tombedor\"\u003e\u003ccode\u003e@​tombedor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2055\"\u003egitpython-developers/GitPython#2055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix name collision by \u003ca href=\"https://github.com/NMertsch\"\u003e\u003ccode\u003e@​NMertsch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2060\"\u003egitpython-developers/GitPython#2060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow relative path url in submodules for submodule_update by \u003ca href=\"https://github.com/t-webber\"\u003e\u003ccode\u003e@​t-webber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2062\"\u003egitpython-developers/GitPython#2062\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/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\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/gitpython-developers/GitPython/commit/6ba2c0a2f9ee7feffd7e079621c4845820180c9a\"\u003e\u003ccode\u003e6ba2c0a\u003c/code\u003e\u003c/a\u003e Prepare a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/bbb3d00ac431dc7966f9715fb813792d234eca81\"\u003e\u003ccode\u003ebbb3d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2062\"\u003e#2062\u003c/a\u003e from t-webber/relative_path_submodules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/1ee1e781929074afd66bff1eae007bbee41d117e\"\u003e\u003ccode\u003e1ee1e78\u003c/code\u003e\u003c/a\u003e Add test case for cloning submodules with relative path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/ec2e2c8b894512e7a2364774d77cdd9db73f0566\"\u003e\u003ccode\u003eec2e2c8\u003c/code\u003e\u003c/a\u003e Allow relative path url in submodules for submodule_update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4d529b71905edae12e4699170f7d9e0a665801b5\"\u003e\u003ccode\u003e4d529b7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2060\"\u003e#2060\u003c/a\u003e from NMertsch/2023-fix-gitconfigparser-autodoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/80fd2c16211738156e65258381a17cdc429ddd08\"\u003e\u003ccode\u003e80fd2c1\u003c/code\u003e\u003c/a\u003e Don't treat sphinx warnings as errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/a4aadb0c04bd13af824c14dcc39f88345aa5c440\"\u003e\u003ccode\u003ea4aadb0\u003c/code\u003e\u003c/a\u003e Fix name collision\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4c7778a93134364cfff7b1597f9eda00a88323af\"\u003e\u003ccode\u003e4c7778a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2057\"\u003e#2057\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/5033c3ffd8917d835658c22e84bd86103a2ae52d\"\u003e\u003ccode\u003e5033c3f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2056\"\u003e#2056\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/496392b9bf781904421cbd171c0c5395a6fe330c\"\u003e\u003ccode\u003e496392b\u003c/code\u003e\u003c/a\u003e Bump cygwin/cygwin-install-action from 5 to 6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gitpython-developers/GitPython/compare/3.1.44...3.1.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `griffe` from 1.7.3 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/releases\"\u003egriffe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.0\"\u003e1.11.0\u003c/a\u003e - 2025-08-07\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.10.0...1.11.0\"\u003eCompare with 1.10.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd data to dict/json output (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/9731afcbeab377e7f3f69a0d18d19677e790072e\"\u003e9731afc\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.10.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.10.0\"\u003e1.10.0\u003c/a\u003e - 2025-08-06\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.9.0...1.10.0\"\u003eCompare with 1.9.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow adding \u003ccode\u003esys.path\u003c/code\u003e to search paths when temporary visiting/inspecting package (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/42983bc843fd9a63883e9c50ad5043b0f737b450\"\u003e42983bc\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.9.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.9.0\"\u003e1.9.0\u003c/a\u003e - 2025-07-28\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.8.0...1.9.0\"\u003eCompare with 1.8.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport PEP 695 generics (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/be28e9c9835a709fca0a78990c56e8d652a71a8c\"\u003ebe28e9c\u003c/a\u003e by Victor Westerhuis). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/342\"\u003eIssue-342\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/348\"\u003ePR-348\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.8.0\"\u003e1.8.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.7.3...1.8.0\"\u003eCompare with 1.7.3\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd method to functions and classes to build and return a stringified signature (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8ef1486e9b1f0872cca3b1cd2419144b702a0c1e\"\u003e8ef1486\u003c/a\u003e by ISOREX). \u003ca href=\"https://github.com/mkdocstrings/griffe/discussions/376\"\u003eDiscussion-376\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/381\"\u003ePR-381\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance Sphinx-style parameter parsing to handle invalid type info (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/cbce5a2c2429dc92e15ac3a8fe53db55825ebd6c\"\u003ecbce5a2\u003c/a\u003e by Edouard Choinière). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/396\"\u003ePR-396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParse Sphinx parameter types as expressions (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/70dda21d15dfdf5807dde370fb636d69eea6272b\"\u003e70dda21\u003c/a\u003e by Edouard Choinière). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/392\"\u003ePR-392\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid SyntaxError when loading modules encoded in UTF8 with BOM (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/b3461901ae08204ea6184025a006f5d34152d30d\"\u003eb346190\u003c/a\u003e by John Hennig). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/386\"\u003eIssue-386\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/387\"\u003ePR-387\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrectly parenthesize expressions (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/a8c5585c8a45a4d6b67bd5dc36d7054478d3873d\"\u003ea8c5585\u003c/a\u003e by Abraham Cheung). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/389\"\u003ePR-389\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBe more consistent regarding not overriding submodules with aliases (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/be1963cca6d7d49bcc41fdf05570b1bfba934330\"\u003ebe1963c\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eExprName.parent\u003c/code\u003e to be of type \u003ccode\u003egriffe.Function\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/acafbd8b6d97fe8370f3eb730e2154e19b2c1a54\"\u003eacafbd8\u003c/a\u003e by Edouard Choinière). \u003ca href=\"https://github.com/mkdocstrings/griffe/discussions/391\"\u003eIssue-391\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/395\"\u003ePR-395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize labels for attributes (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/1b376cd39ce99730910d8344abbfd5c53ce28300\"\u003e1b376cd\u003c/a\u003e by Timothée Mazzucotelli).\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/mkdocstrings/griffe/blob/main/CHANGELOG.md\"\u003egriffe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.0\"\u003e1.11.0\u003c/a\u003e - 2025-08-07\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.10.0...1.11.0\"\u003eCompare with 1.10.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd data to dict/json output (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/9731afcbeab377e7f3f69a0d18d19677e790072e\"\u003e9731afc\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.10.0\"\u003e1.10.0\u003c/a\u003e - 2025-08-06\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.9.0...1.10.0\"\u003eCompare with 1.9.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow adding \u003ccode\u003esys.path\u003c/code\u003e to search paths when temporary visiting/inspecting package (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/42983bc843fd9a63883e9c50ad5043b0f737b450\"\u003e42983bc\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.9.0\"\u003e1.9.0\u003c/a\u003e - 2025-07-28\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.8.0...1.9.0\"\u003eCompare with 1.8.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport PEP 695 generics (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/be28e9c9835a709fca0a78990c56e8d652a71a8c\"\u003ebe28e9c\u003c/a\u003e by Victor Westerhuis). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/342\"\u003eIssue-342\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/348\"\u003ePR-348\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.8.0\"\u003e1.8.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.7.3...1.8.0\"\u003eCompare with 1.7.3\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd method to functions and classes to build and return a stringified signature (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8ef1486e9b1f0872cca3b1cd2419144b702a0c1e\"\u003e8ef1486\u003c/a\u003e by ISOREX). \u003ca href=\"https://github.com/mkdocstrings/griffe/discussions/376\"\u003eDiscussion-376\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/381\"\u003ePR-381\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance Sphinx-style parameter parsing to handle invalid type info (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/cbce5a2c2429dc92e15ac3a8fe53db55825ebd6c\"\u003ecbce5a2\u003c/a\u003e by Edouard Choinière). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/396\"\u003ePR-396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParse Sphinx parameter types as expressions (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/70dda21d15dfdf5807dde370fb636d69eea6272b\"\u003e70dda21\u003c/a\u003e by Edouard Choinière). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/392\"\u003ePR-392\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid SyntaxError when loading modules encoded in UTF8 with BOM (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/b3461901ae08204ea6184025a006f5d34152d30d\"\u003eb346190\u003c/a\u003e by John Hennig). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/386\"\u003eIssue-386\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/387\"\u003ePR-387\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrectly parenthesize expressions (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/a8c5585c8a45a4d6b67bd5dc36d7054478d3873d\"\u003ea8c5585\u003c/a\u003e by Abraham Cheung). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/389\"\u003ePR-389\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBe more consistent regarding not overriding submodules with aliases (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/be1963cca6d7d49bcc41fdf05570b1bfba934330\"\u003ebe1963c\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eExprName.parent\u003c/code\u003e to be of type \u003ccode\u003egriffe.Function\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/acafbd8b6d97fe8370f3eb730e2154e19b2c1a54\"\u003eacafbd8\u003c/a\u003e by Edouard Choinière). \u003ca href=\"https://github.com/mkdocstrings/griffe/discussions/391\"\u003eIssue-391\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/395\"\u003ePR-395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize labels for attributes (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/1b376cd39ce99730910d8344abbfd5c53ce28300\"\u003e1b376cd\u003c/a\u003e by Timothée Mazzucotelli).\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/mkdocstrings/griffe/commit/b3cbedb59fab118b81086ee33bdd0745fa70f4a3\"\u003e\u003ccode\u003eb3cbedb\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/9731afcbeab377e7f3f69a0d18d19677e790072e\"\u003e\u003ccode\u003e9731afc\u003c/code\u003e\u003c/a\u003e feat: Add data to dict/json output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/52c3dc87fe8901deb6d6b857a20edb2cd7d5d415\"\u003e\u003ccode\u003e52c3dc8\u003c/code\u003e\u003c/a\u003e style: Format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/444913331cdec17fb10bb6396d7fbd97861af900\"\u003e\u003ccode\u003e4449133\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/42983bc843fd9a63883e9c50ad5043b0f737b450\"\u003e\u003ccode\u003e42983bc\u003c/code\u003e\u003c/a\u003e feat: Allow adding \u003ccode\u003esys.path\u003c/code\u003e to search paths when temporary visiting/inspect...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/85dd76c0248efc453b78edf986f79e2a26632f89\"\u003e\u003ccode\u003e85dd76c\u003c/code\u003e\u003c/a\u003e docs: Add pages to llms.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/032779aa3bdfbdaeb6411da4f8853318ff2e8424\"\u003e\u003ccode\u003e032779a\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/be28e9c9835a709fca0a78990c56e8d652a71a8c\"\u003e\u003ccode\u003ebe28e9c\u003c/code\u003e\u003c/a\u003e feat: Support PEP 695 generics\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/27a385b435d3c09eedeffe980416f7012e65ed6f\"\u003e\u003ccode\u003e27a385b\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8ef1486e9b1f0872cca3b1cd2419144b702a0c1e\"\u003e\u003ccode\u003e8ef1486\u003c/code\u003e\u003c/a\u003e feat: Add method to functions and classes to build and return a stringified s...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.7.3...1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-resources` from 5.0.7 to 6.5.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_resources/blob/main/NEWS.rst\"\u003eimportlib-resources's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.5.2\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced reference to typing_extensions with stdlib Literal. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/323\"\u003e#323\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.5.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated \u003ccode\u003eTraversable.read_text()\u003c/code\u003e to reflect the \u003ccode\u003eerrors\u003c/code\u003e\u003ccode\u003epython/cpython#127012\u003c/code\u003e\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/321\"\u003e#321\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.5.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd type annotations for Traversable.open. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire Python 3.9 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.4.5\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOmit sentinel values from a namespace path. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/311\"\u003e#311\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.4.4\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch1\u003ev6.4.3\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWhen inferring the caller in \u003ccode\u003efiles()\u003c/code\u003e\u003ccode\u003epython/cpython#123085\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/python/importlib_resources/commit/7d3b2bfa1d8c53ecb64246ba16d8c632f8fcb6bf\"\u003e\u003ccode\u003e7d3b2bf\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/14408098293bd6bc68eca7b5a53333729a567e57\"\u003e\u003ccode\u003e1440809\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/324\"\u003e#324\u003c/a\u003e from pstjohn/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/6569354ad2cf38b202fdeaf11b49e639b1a00fbc\"\u003e\u003ccode\u003e6569354\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/6c1bc3cdb8f8a7d29252becc201508712040facc\"\u003e\u003ccode\u003e6c1bc3c\u003c/code\u003e\u003c/a\u003e Rely on Literal from stdlib.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/883380a5fcc482b67014b90b9aa7250d868c795a\"\u003e\u003ccode\u003e883380a\u003c/code\u003e\u003c/a\u003e Update pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/a61a948b6293ed46972909652909e2540242f197\"\u003e\u003ccode\u003ea61a948\u003c/code\u003e\u003c/a\u003e Add typing-extensions as a dependency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/78c4bda73c5d671cbbcfdf1430b6f2da03aeb04f\"\u003e\u003ccode\u003e78c4bda\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/10d87bf85a404e9fb9271f8f353ad0452c0cc631\"\u003e\u003ccode\u003e10d87bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/321\"\u003e#321\u003c/a\u003e from kurtmckee/add-readtext-errors-parameter-cpython-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/9a872e5dbceff32260e8ff19d039236304ee150c\"\u003e\u003ccode\u003e9a872e5\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/cf269ce50f496671f3b7fbc5e6292946ecc70e7d\"\u003e\u003ccode\u003ecf269ce\u003c/code\u003e\u003c/a\u003e Replace unreachable block with simple assertion. Fixes diffcov failure.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_resources/compare/v5.0.7...v6.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jsonschema` from 4.24.0 to 4.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-jsonschema/jsonschema/releases\"\u003ejsonschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.25.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eiri\u003c/code\u003e and \u003ccode\u003eiri-reference\u003c/code\u003e formats to the \u003ccode\u003eformat-nongpl\u003c/code\u003e extra by \u003ca href=\"https://github.com/jkowalleck\"\u003e\u003ccode\u003e@​jkowalleck\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1388\"\u003epython-jsonschema/jsonschema#1388\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/jkowalleck\"\u003e\u003ccode\u003e@​jkowalleck\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1388\"\u003epython-jsonschema/jsonschema#1388\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-jsonschema/jsonschema/compare/v4.24.1...v4.25.0\"\u003ehttps://github.com/python-jsonschema/jsonschema/compare/v4.24.1...v4.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.24.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUnambiguously quote and escape properties in JSON path rendering by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1390\"\u003epython-jsonschema/jsonschema#1390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop python\u0026lt;3.9 backports by \u003ca href=\"https://github.com/hackowitz-af\"\u003e\u003ccode\u003e@​hackowitz-af\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1367\"\u003epython-jsonschema/jsonschema#1367\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/hackowitz-af\"\u003e\u003ccode\u003e@​hackowitz-af\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1367\"\u003epython-jsonschema/jsonschema#1367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1390\"\u003epython-jsonschema/jsonschema#1390\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-jsonschema/jsonschema/compare/v4.24.0...v4.24.1\"\u003ehttps://github.com/python-jsonschema/jsonschema/compare/v4.24.0...v4.24.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/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst\"\u003ejsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev4.25.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eiri\u003c/code\u003e and \u003ccode\u003eiri-reference\u003c/code\u003e formats to the \u003ccode\u003eformat-nongpl\u003c/code\u003e extra via the MIT-licensed \u003ccode\u003erfc3987-syntax\u003c/code\u003e.\nThey were alread supported by the \u003ccode\u003eformat\u003c/code\u003e extra. (\u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1388\"\u003e#1388\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev4.24.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eProperly escape segments in \u003ccode\u003eValidationError.json_path\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/139\"\u003e#139\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-jsonschema/jsonschema/commit/9889f69eb5ccb532e2147465697f30c82b2a8bb0\"\u003e\u003ccode\u003e9889f69\u003c/code\u003e\u003c/a\u003e Add the new functionality to the CHANGELOG.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/18855d01f7839083efc5bad1ca67688a7177be42\"\u003e\u003ccode\u003e18855d0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1388\"\u003e#1388\u003c/a\u003e from jkowalleck/feat/validate_rfc3987_non-gpl/rfc398...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/1a6067fc441177d1911446c7325eee7c776007ae\"\u003e\u003ccode\u003e1a6067f\u003c/code\u003e\u003c/a\u003e adjust rfc3987-syntax min-version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/6aadb8b7ad7f9d5eee58eed73df5a7d865dad34c\"\u003e\u003ccode\u003e6aadb8b\u003c/code\u003e\u003c/a\u003e Add the fix to the CHANGELOG.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/785741e73b63d97eda3973442b109df3f8aa5892\"\u003e\u003ccode\u003e785741e\u003c/code\u003e\u003c/a\u003e Add a dependency group for our new test dependency.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/dc547341f2a3304d73114b1d18da063be7fc43e0\"\u003e\u003ccode\u003edc54734\u003c/code\u003e\u003c/a\u003e Add a uv.lock.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/b5572c9971358be547bbcf614a304f85886c1627\"\u003e\u003ccode\u003eb5572c9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1390\"\u003e#1390\u003c/a\u003e from kurtmckee/fix-json_path-str-rendering\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/4cf45b95de90191b02396bd04d41760d9798ecd6\"\u003e\u003ccode\u003e4cf45b9\u003c/code\u003e\u003c/a\u003e Feedback: Use jsonpath-ng to re-parse the rendered JSON path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/2680f6ab44d6fe36d321fef6ee626608a5f0ec7a\"\u003e\u003ccode\u003e2680f6a\u003c/code\u003e\u003c/a\u003e Feedback: Make a compiled regex pattern private\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/9a957d770d6e63646f4fc874bf8df6be4593f8c8\"\u003e\u003ccode\u003e9a957d7\u003c/code\u003e\u003c/a\u003e Unambiguously quote and escape properties in JSON path rendering\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-jsonschema/jsonschema/compare/v4.24.0...v4.25.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markdown` from 3.8 to 3.8.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.8.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.8.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure incomplete markup declaration in raw HTML doesn't crash parser (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1534\"\u003e#1534\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed dropped content in \u003ccode\u003emd_in_html\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1526\"\u003e#1526\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed HTML handling corner case that prevented some content from not being rendered (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1528\"\u003e#1528\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/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.1] - 2025-06-18\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure incomplete markup declaration in raw HTML doesn't crash parser (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1534\"\u003e#1534\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed dropped content in \u003ccode\u003emd_in_html\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1526\"\u003e#1526\u003c/a\u003e).\u003c/li\u003e\n...\n\n_Description has been truncated_","html_url":"https://github.com/pycontribs/subprocess-tee/pull/185","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycontribs%2Fsubprocess-tee/issues/185","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/185/packages"},{"uuid":"2698598126","node_id":"PR_kwDOEkpJIs6g2Vbu","number":184,"state":"closed","title":"Bump the dependencies group across 1 directory with 23 updates","user":"dependabot[bot]","labels":["skip-changelog","dependencies","dependabot-deps-updates"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-08-10T22:42:40.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-07-27T22:38:45.000Z","updated_at":"2025-08-10T22:42:40.000Z","time_to_close":1209835,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":23,"packages":[{"name":"mkdocstrings","old_version":"0.29.1","new_version":"0.30.0","repository_url":"https://github.com/mkdocstrings/mkdocstrings"},{"name":"backrefs","old_version":"5.8","new_version":"5.9","repository_url":"https://github.com/facelessuser/backrefs"},{"name":"bracex","old_version":"2.5.post1","new_version":"2.6","repository_url":"https://github.com/facelessuser/bracex"},{"name":"cachetools","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.7.14","repository_url":"https://github.com/certifi/python-certifi"},{"name":"coverage","old_version":"7.9.1","new_version":"7.10.1","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"cryptography","old_version":"45.0.4","new_version":"45.0.5","repository_url":"https://github.com/pyca/cryptography"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"gitpython","old_version":"3.1.44","new_version":"3.1.45","repository_url":"https://github.com/gitpython-developers/GitPython"},{"name":"griffe","old_version":"1.7.3","new_version":"1.8.0","repository_url":"https://github.com/mkdocstrings/griffe"},{"name":"importlib-resources","old_version":"5.0.7","new_version":"6.5.2","repository_url":"https://github.com/python/importlib_resources"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"markdown","old_version":"3.8","new_version":"3.8.2","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"mkdocs-material","old_version":"9.6.14","new_version":"9.6.16","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"pillow","old_version":"11.2.1","new_version":"11.3.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pymdown-extensions","old_version":"10.15","new_version":"10.16","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"pytest","old_version":"8.4.0","new_version":"8.4.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-xdist","old_version":"3.7.0","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"rich","old_version":"14.0.0","new_version":"14.1.0","repository_url":"https://github.com/Textualize/rich"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.26.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"urllib3","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"wcmatch","old_version":"10.0","new_version":"10.1","repository_url":"https://github.com/facelessuser/wcmatch"}],"path":null,"ecosystem":"conda"},"body":"Bumps the dependencies group with 23 updates in the /.config directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings) | `0.29.1` | `0.30.0` |\n| [backrefs](https://github.com/facelessuser/backrefs) | `5.8` | `5.9` |\n| [bracex](https://github.com/facelessuser/bracex) | `2.5.post1` | `2.6` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.0.0` | `6.1.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.7.14` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.9.1` | `7.10.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.4` | `45.0.5` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [gitpython](https://github.com/gitpython-developers/GitPython) | `3.1.44` | `3.1.45` |\n| [griffe](https://github.com/mkdocstrings/griffe) | `1.7.3` | `1.8.0` |\n| [importlib-resources](https://github.com/python/importlib_resources) | `5.0.7` | `6.5.2` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.0` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.8` | `3.8.2` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.6.14` | `9.6.16` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `11.3.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.15` | `10.16` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.0` | `8.4.1` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.7.0` | `3.8.0` |\n| [rich](https://github.com/Textualize/rich) | `14.0.0` | `14.1.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.26.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.4.0` | `2.5.0` |\n| [wcmatch](https://github.com/facelessuser/wcmatch) | `10.0` | `10.1` |\n\n\nUpdates `mkdocstrings` from 0.29.1 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases\"\u003emkdocstrings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.30.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\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/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md\"\u003emkdocstrings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\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/mkdocstrings/mkdocstrings/commit/2be445f054c1191d308af7ee0cc881e359f5a4c7\"\u003e\u003ccode\u003e2be445f\u003c/code\u003e\u003c/a\u003e chore: Prepare release 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003e\u003ccode\u003ef856160\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip regist...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e\u003ccode\u003e2b4ed54\u003c/code\u003e\u003c/a\u003e feat: Add I18N support (translations)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/51f217f38af9475415f758866697158d9010967d\"\u003e\u003ccode\u003e51f217f\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/b1da3d02c4f432f603cbb0004bb35099327706db\"\u003e\u003ccode\u003eb1da3d0\u003c/code\u003e\u003c/a\u003e ci: Ignore Ruff warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d5bf4e1ed0370853f968b210ad77913faf106eed\"\u003e\u003ccode\u003ed5bf4e1\u003c/code\u003e\u003c/a\u003e docs: Update link to YAML idiosyncrasies\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `backrefs` from 5.8 to 5.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/backrefs/releases\"\u003ebackrefs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eENHANCE\u003c/strong\u003e: Switch to deploying with PyPI's \u0026quot;Trusted Publisher\u0026quot;.\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/facelessuser/backrefs/commit/8b3a24bfc1cacde6fc9ab4edfaed0f5a9206c554\"\u003e\u003ccode\u003e8b3a24b\u003c/code\u003e\u003c/a\u003e Fix deploy logic\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/3e9376b5b3a8393d05cfffdb49b88f9c9ec847f5\"\u003e\u003ccode\u003e3e9376b\u003c/code\u003e\u003c/a\u003e Don't exclude testing Py 3.14 on Windows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/a6232df1af245af89ba06cb8806e42d86be2b447\"\u003e\u003ccode\u003ea6232df\u003c/code\u003e\u003c/a\u003e Add license link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/400547889cab46e5457f209723730b25dea51813\"\u003e\u003ccode\u003e4005478\u003c/code\u003e\u003c/a\u003e Remove discord link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/4a4fe480b16f680f506331690b5fee1efbccf909\"\u003e\u003ccode\u003e4a4fe48\u003c/code\u003e\u003c/a\u003e Update to officially support python 3.14 and use trusted publisher (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7b65b0bdd670f002e8b7c8a7f3cf0cbdf08db6ee\"\u003e\u003ccode\u003e7b65b0b\u003c/code\u003e\u003c/a\u003e Docs: fix typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/0acee11cc1617a310a6b4e60929fc32ae4983e22\"\u003e\u003ccode\u003e0acee11\u003c/code\u003e\u003c/a\u003e Remove Py 3.7 Unicode data\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/21b34bde08b4b5d788e6aaf39ca49244999e2918\"\u003e\u003ccode\u003e21b34bd\u003c/code\u003e\u003c/a\u003e Fix build badge status\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/cdb244d0a2f86286543f4bff303e6debc6615734\"\u003e\u003ccode\u003ecdb244d\u003c/code\u003e\u003c/a\u003e Bump copyright year\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/242d3d4a9d61013b6f159e652d225ebb1edfb5ec\"\u003e\u003ccode\u003e242d3d4\u003c/code\u003e\u003c/a\u003e Fix readme example\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facelessuser/backrefs/compare/5.8...5.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bracex` from 2.5.post1 to 2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/bracex/releases\"\u003ebracex's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/6d109c55372f0d5086adb7cf84a951cc06391a69\"\u003e\u003ccode\u003e6d109c5\u003c/code\u003e\u003c/a\u003e Add trusted publishing and support for Python 3.14 (\u003ca href=\"https://redirect.github.com/facelessuser/bracex/issues/44\"\u003e#44\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/c14d46fb495a8fdcd0ec51d4dd42aa587807407d\"\u003e\u003ccode\u003ec14d46f\u003c/code\u003e\u003c/a\u003e Add security policy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/14645af4bf4de0e1abe4fd6c29bf98871f549273\"\u003e\u003ccode\u003e14645af\u003c/code\u003e\u003c/a\u003e Typos: remove duplicate words\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/bracex/compare/2.5.post1...2.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 6.0.0 to 6.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\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/tkem/cachetools/commit/bb6d71a745785429b14aae30b7752f4765dc35c3\"\u003e\u003ccode\u003ebb6d71a\u003c/code\u003e\u003c/a\u003e Release v6.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/77a9c59e3324496a79e6c4d5a7b5bfdb9a7f7f42\"\u003e\u003ccode\u003e77a9c59\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/260\"\u003e#260\u003c/a\u003e: Use LFUCache implementation based on Blake Reid's \u0026quot;cacheing\u0026quot; library.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b1d4eb2972ca8f0ab49e22eae3bb47c1eb8b552c\"\u003e\u003ccode\u003eb1d4eb2\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.4.2 to 5.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/820b154494e91aa5bfe63a3fa2033c63a9c84603\"\u003e\u003ccode\u003e820b154\u003c/code\u003e\u003c/a\u003e Refactor \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e unit tests.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v6.0.0...v6.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.6.15 to 2025.7.14\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1\"\u003e\u003ccode\u003eddd90c6\u003c/code\u003e\u003c/a\u003e 2025.07.14 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d905221c916d51077f5c8071a0f7aa2df2a37c52\"\u003e\u003ccode\u003ed905221\u003c/code\u003e\u003c/a\u003e 2025.07.09 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.06.15...2025.07.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.9.1 to 7.10.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.1 — 2025-07-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the exclusion for \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e was wrong: it marked the branch\nas partial, but it should have been a line exclusion so the entire clause\nwould be excluded. Improves \u003ccode\u003eissue 831\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: changed where .pth files are written for \u003ccode\u003epatch = subprocess\u003c/code\u003e, closing\n\u003ccode\u003eissue 2006\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2006: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2006\"\u003enedbat/coveragepy#2006\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.0 — 2025-07-24\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eA new configuration option: \u0026quot;:ref:\u003ccode\u003econfig_run_patch\u003c/code\u003e\u0026quot; specifies named patches\nto work around some limitations in coverage measurement.  These patches are\navailable:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epatch = _exit\u003c/code\u003e lets coverage save its data even when :func:\u003ccode\u003eos._exit() \u0026lt;python:os._exit\u0026gt;\u003c/code\u003e is used to abruptly end the process.  This closes\nlong-standing \u003ccode\u003eissue 310\u003c/code\u003e_ as well as its duplicates: \u003ccode\u003eissue 312\u003c/code\u003e\u003cem\u003e, \u003ccode\u003eissue 1673\u003c/code\u003e\u003c/em\u003e, \u003ccode\u003eissue 1845\u003c/code\u003e\u003cem\u003e, and \u003ccode\u003eissue 1941\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epatch = subprocess\u003c/code\u003e measures coverage in Python subprocesses created\nwith :mod:\u003ccode\u003esubprocess\u003c/code\u003e, :func:\u003ccode\u003eos.system\u003c/code\u003e, or one of the :func:\u003ccode\u003eexecv \u0026lt;python:os.execl\u0026gt;\u003c/code\u003e or :func:\u003ccode\u003espawnv \u0026lt;python:os.spawnl\u0026gt;\u003c/code\u003e family of\nfunctions. Closes old \u003ccode\u003eissue 367\u003c/code\u003e_ and duplicate \u003ccode\u003eissue 378\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epatch = execv\u003c/code\u003e adjusts the :func:\u003ccode\u003eexecv \u0026lt;python:os.execl\u0026gt;\u003c/code\u003e family of\nfunctions to save coverage data before ending the current program and\nstarting the next. Not available on Windows. Closes \u003ccode\u003eissue 43\u003c/code\u003e_ after 15\nyears!\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe HTML report now dimly colors subsequent lines in multi-line statements.\nThey used to have no color.  This gives a better indication of the amount of\ncode missing in the report.  Closes \u003ccode\u003eissue 1308\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTwo new exclusion patterns are part of the defaults: \u003ccode\u003e...\u003c/code\u003e is automatically\nexcluded as a line and \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e is excluded as a branch.  Closes\n\u003ccode\u003eissue 831\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eA new command-line option: \u003ccode\u003e--save-signal=USR1\u003c/code\u003e specifies a signal that\ncoverage.py will listen for.  When the signal is sent, the coverage data will\nbe saved.  This makes it possible to save data from within long-running\nprocesses.  Thanks, \u003ccode\u003eArkady Gilinsky \u0026lt;pull 1998_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/7fdcbeb70255447199fb4501707aac39840ffba4\"\u003e\u003ccode\u003e7fdcbeb\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/c9e962586e30bdcc7e862dc12b8b4b7790cd8372\"\u003e\u003ccode\u003ec9e9625\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/e8193ff919502be0a28d0922e4fd8e6eccc70e3c\"\u003e\u003ccode\u003ee8193ff\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9aad22a57a7163bf7e8d593112715c409193c643\"\u003e\u003ccode\u003e9aad22a\u003c/code\u003e\u003c/a\u003e test: improve the \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e exclusion test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/1e2f41a756191898d4f1936fa01165d52ec9e624\"\u003e\u003ccode\u003e1e2f41a\u003c/code\u003e\u003c/a\u003e fix: excluding TYPE_CHECKING should have been the line not the branch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/2134e57af92b95b2ef883e756bb0d6b926b6eac1\"\u003e\u003ccode\u003e2134e57\u003c/code\u003e\u003c/a\u003e fix: use getsitepackages for writing .pth files.  \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2006\"\u003e#2006\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a4300a7e0f84683d92971ed0b8ac16e6c552f710\"\u003e\u003ccode\u003ea4300a7\u003c/code\u003e\u003c/a\u003e test: signal statuses are mysterious. \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2008\"\u003e#2008\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/2fd496182f9043e8e8471e58ca26c81a44a7b9a7\"\u003e\u003ccode\u003e2fd4961\u003c/code\u003e\u003c/a\u003e docs: update the man page, for once\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a13607f5da807a8ef5b483ce27c5e4779d1d4584\"\u003e\u003ccode\u003ea13607f\u003c/code\u003e\u003c/a\u003e build: comment_on_fixes should show html urls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0f00d49a594c2dc3576714a0669fbdbcc4dd4c7e\"\u003e\u003ccode\u003e0f00d49\u003c/code\u003e\u003c/a\u003e build: bump version to 7.10.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.9.1...7.10.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 45.0.4 to 45.0.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e45.0.5 - 2025-07-02\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.1.\n\u003cp\u003e.. _v45-0-4:\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3e53a233b65123d2a836b58ccdc427ed5207f92b\"\u003e\u003ccode\u003e3e53a23\u003c/code\u003e\u003c/a\u003e Bump for 45.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13135\"\u003e#13135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/45.0.4...45.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `distlib` from 0.3.9 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/distlib/blob/master/CHANGES.rst\"\u003edistlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.4.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nReleased: 2025-07-17\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003emarkers\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003einterpret_parsed\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ewheel\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/238\"\u003e#238\u003c/a\u003e: Add build tag to wheel metadata if specified.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/243\"\u003e#243\u003c/a\u003e: Update to support free-threading version of Python (3.13t).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e: Support subdirectories in the dist-info directory. Thanks to Pieter P for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e: Fix path normalisation issue caused by the fix for \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMove import in script wrapper to \u0026quot;if \u003cstrong\u003ename\u003c/strong\u003e == 'main'\u0026quot; clause.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003etests\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/245\"\u003e#245\u003c/a\u003e: Skip test_package_data if a SKIP_EXT_PACKAGE_DATA environment variable is present.\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/aff2cbbc4e8a87b9440cb93472789a213813dbd6\"\u003e\u003ccode\u003eaff2cbb\u003c/code\u003e\u003c/a\u003e Finalise version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/3716c4bcccac19d0c0f2ce0d1272dd33996381b5\"\u003e\u003ccode\u003e3716c4b\u003c/code\u003e\u003c/a\u003e Update change log, widen exception catching in test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/660bd337bf3217a7bd907c2ba8a2f8dd291ac793\"\u003e\u003ccode\u003e660bd33\u003c/code\u003e\u003c/a\u003e Changes for 0.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/56b4ad938455048fc79e599d369e02a1414e9946\"\u003e\u003ccode\u003e56b4ad9\u003c/code\u003e\u003c/a\u003e Guard script wrapper entrypoint import with if \u003cstrong\u003emain\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/242\"\u003e#242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/fe573669087cb1109fb0cc249bf0e06a5461324c\"\u003e\u003ccode\u003efe57366\u003c/code\u003e\u003c/a\u003e docs: update coverage results link (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/250\"\u003e#250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/c3286e508bb60cd2337408d88eb614a93b612d8c\"\u003e\u003ccode\u003ec3286e5\u003c/code\u003e\u003c/a\u003e Temporarily exclude 3.13t on windows-latest.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/e6b83d3b0eeb11d8e7b053f11139d15aab89d196\"\u003e\u003ccode\u003ee6b83d3\u003c/code\u003e\u003c/a\u003e Normalize archive paths in dist-info (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/93baffeaa1773796d802bb761607a6466790dcba\"\u003e\u003ccode\u003e93baffe\u003c/code\u003e\u003c/a\u003e Skip no-longer-relevant test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/83f656836f4b6d8175172fcb8370fbee691f2bec\"\u003e\u003ccode\u003e83f6568\u003c/code\u003e\u003c/a\u003e Support subdirectories in .dist-info (fixes \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/247\"\u003e#247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/f918abd5d20879041704f9d719533b213a55ad48\"\u003e\u003ccode\u003ef918abd\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003etest_wheel.WheelTestCase.test_abi\u003c/code\u003e for freethreading (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/distlib/compare/0.3.9...0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gitpython` from 3.1.44 to 3.1.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gitpython-developers/GitPython/releases\"\u003egitpython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.45\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix various version-related CI breakages by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1987\"\u003egitpython-developers/GitPython#1987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo some CI cleanup to make reports clearer and future changes easier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1989\"\u003egitpython-developers/GitPython#1989\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAffirm that gitdb and smmap advisories can also be created by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1991\"\u003egitpython-developers/GitPython#1991\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix links to gitdb and smmap \u003ccode\u003eSECURITY.md\u003c/code\u003e files by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1992\"\u003egitpython-developers/GitPython#1992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest Python 3.13 regularly on Ubuntu and macOS on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1990\"\u003egitpython-developers/GitPython#1990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRepo.rev_parse: Handle \u003c!-- raw HTML omitted --\u003e^{commit} correctly by \u003ca href=\"https://github.com/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFuzzing: Fix Broken Fuzz Test for Git Submodule Handling by \u003ca href=\"https://github.com/DaveLak\"\u003e\u003ccode\u003e@​DaveLak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1997\"\u003egitpython-developers/GitPython#1997\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWork around Cygwin CI failure \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2004\"\u003e#2004\u003c/a\u003e, except for \u003ccode\u003etest_installation\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2007\"\u003egitpython-developers/GitPython#2007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark \u003ccode\u003etest_installation\u003c/code\u003e xfail on Cygwin CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2009\"\u003egitpython-developers/GitPython#2009\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eIndexFile._to_relative_path\u003c/code\u003e - fix case where absolute path gets stripped of trailing slash by \u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse WSL1 on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2010\"\u003egitpython-developers/GitPython#2010\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest free-threaded Python (but only on Linux) by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2011\"\u003egitpython-developers/GitPython#2011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse property decorator to support typing by \u003ca href=\"https://github.com/Andrej730\"\u003e\u003ccode\u003e@​Andrej730\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2015\"\u003egitpython-developers/GitPython#2015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some incorrect sphinx markups in the docstrings by \u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereplace quansight-labs/setup-python with actions/setup-python by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove type assertions from util.py by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecorrectly handle \u003ccode\u003euname-cmd\u003c/code\u003e that doesn't point to an executable file by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2026\"\u003egitpython-developers/GitPython#2026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse newer ruff style by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2031\"\u003egitpython-developers/GitPython#2031\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHave CodeQL scan GitHub Actions workflows as well as Python code by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2032\"\u003egitpython-developers/GitPython#2032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpecify explicit \u003ccode\u003econtents: read\u003c/code\u003e workflow permissions by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2033\"\u003egitpython-developers/GitPython#2033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GitConfigParser not removing quotes from values by \u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve quoted leading and trailing single-line config var whitespace by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2036\"\u003egitpython-developers/GitPython#2036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor Git.{AutoInterrupt,CatFileContentStream} nesting by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2037\"\u003egitpython-developers/GitPython#2037\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Git.{AutoInterrupt,CatFileContentStream} static typing by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2039\"\u003egitpython-developers/GitPython#2039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI \u003ccode\u003emypy\u003c/code\u003e command on free-threaded Python by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2040\"\u003egitpython-developers/GitPython#2040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit Cygwin CI into non-\u003ccode\u003eperformance\u003c/code\u003e and \u003ccode\u003eperformance\u003c/code\u003e test jobs by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2042\"\u003egitpython-developers/GitPython#2042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpress conditional \u003ccode\u003esetuptools\u003c/code\u003e requirement statically by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2043\"\u003egitpython-developers/GitPython#2043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ambiguous \u003ccode\u003e_safer_popen_windows\u003c/code\u003e comment by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2044\"\u003egitpython-developers/GitPython#2044\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eUSE_SHELL\u003c/code\u003e warning helper signature by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2045\"\u003egitpython-developers/GitPython#2045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest \u003ccode\u003eConfigParser\u003c/code\u003e with whitespace outside the value by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2046\"\u003egitpython-developers/GitPython#2046\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove explicit empty \u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e handling in ConfigParser by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2047\"\u003egitpython-developers/GitPython#2047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious style improvements by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2049\"\u003egitpython-developers/GitPython#2049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't remove quotes if \u003ccode\u003e\\\u003c/code\u003e or \u003ccode\u003e\u0026quot;\u003c/code\u003e are present inside by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2048\"\u003egitpython-developers/GitPython#2048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix updating submodules with relative urls by \u003ca href=\"https://github.com/david0\"\u003e\u003ccode\u003e@​david0\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2051\"\u003egitpython-developers/GitPython#2051\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun \u003ccode\u003ecat_file.py\u003c/code\u003e fixture without site customizations by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2052\"\u003egitpython-developers/GitPython#2052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Cygwin installation on CI for \u003ccode\u003epip\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2053\"\u003egitpython-developers/GitPython#2053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFail \u003ccode\u003etest_installation\u003c/code\u003e on warnings, and remove deprecated license classifier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2054\"\u003egitpython-developers/GitPython#2054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd clearer error version for unsupported index error by \u003ca href=\"https://github.com/tombedor\"\u003e\u003ccode\u003e@​tombedor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2055\"\u003egitpython-developers/GitPython#2055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix name collision by \u003ca href=\"https://github.com/NMertsch\"\u003e\u003ccode\u003e@​NMertsch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2060\"\u003egitpython-developers/GitPython#2060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow relative path url in submodules for submodule_update by \u003ca href=\"https://github.com/t-webber\"\u003e\u003ccode\u003e@​t-webber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2062\"\u003egitpython-developers/GitPython#2062\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/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\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/gitpython-developers/GitPython/commit/6ba2c0a2f9ee7feffd7e079621c4845820180c9a\"\u003e\u003ccode\u003e6ba2c0a\u003c/code\u003e\u003c/a\u003e Prepare a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/bbb3d00ac431dc7966f9715fb813792d234eca81\"\u003e\u003ccode\u003ebbb3d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2062\"\u003e#2062\u003c/a\u003e from t-webber/relative_path_submodules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/1ee1e781929074afd66bff1eae007bbee41d117e\"\u003e\u003ccode\u003e1ee1e78\u003c/code\u003e\u003c/a\u003e Add test case for cloning submodules with relative path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/ec2e2c8b894512e7a2364774d77cdd9db73f0566\"\u003e\u003ccode\u003eec2e2c8\u003c/code\u003e\u003c/a\u003e Allow relative path url in submodules for submodule_update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4d529b71905edae12e4699170f7d9e0a665801b5\"\u003e\u003ccode\u003e4d529b7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2060\"\u003e#2060\u003c/a\u003e from NMertsch/2023-fix-gitconfigparser-autodoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/80fd2c16211738156e65258381a17cdc429ddd08\"\u003e\u003ccode\u003e80fd2c1\u003c/code\u003e\u003c/a\u003e Don't treat sphinx warnings as errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/a4aadb0c04bd13af824c14dcc39f88345aa5c440\"\u003e\u003ccode\u003ea4aadb0\u003c/code\u003e\u003c/a\u003e Fix name collision\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4c7778a93134364cfff7b1597f9eda00a88323af\"\u003e\u003ccode\u003e4c7778a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2057\"\u003e#2057\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/5033c3ffd8917d835658c22e84bd86103a2ae52d\"\u003e\u003ccode\u003e5033c3f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2056\"\u003e#2056\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/496392b9bf781904421cbd171c0c5395a6fe330c\"\u003e\u003ccode\u003e496392b\u003c/code\u003e\u003c/a\u003e Bump cygwin/cygwin-install-action from 5 to 6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gitpython-developers/GitPython/compare/3.1.44...3.1.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `griffe` from 1.7.3 to 1.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/releases\"\u003egriffe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.8.0\"\u003e1.8.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.7.3...1.8.0\"\u003eCompare with 1.7.3\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd method to functions and classes to build and return a stringified signature (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8ef1486e9b1f0872cca3b1cd2419144b702a0c1e\"\u003e8ef1486\u003c/a\u003e by ISOREX). \u003ca href=\"https://github.com/mkdocstrings/griffe/discussions/376\"\u003eDiscussion-376\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/381\"\u003ePR-381\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance Sphinx-style parameter parsing to handle invalid type info (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/cbce5a2c2429dc92e15ac3a8fe53db55825ebd6c\"\u003ecbce5a2\u003c/a\u003e by Edouard Choinière). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/396\"\u003ePR-396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParse Sphinx parameter types as expressions (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/70dda21d15dfdf5807dde370fb636d69eea6272b\"\u003e70dda21\u003c/a\u003e by Edouard Choinière). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/392\"\u003ePR-392\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid SyntaxError when loading modules encoded in UTF8 with BOM (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/b3461901ae08204ea6184025a006f5d34152d30d\"\u003eb346190\u003c/a\u003e by John Hennig). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/386\"\u003eIssue-386\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/387\"\u003ePR-387\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrectly parenthesize expressions (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/a8c5585c8a45a4d6b67bd5dc36d7054478d3873d\"\u003ea8c5585\u003c/a\u003e by Abraham Cheung). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/389\"\u003ePR-389\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBe more consistent regarding not overriding submodules with aliases (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/be1963cca6d7d49bcc41fdf05570b1bfba934330\"\u003ebe1963c\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eExprName.parent\u003c/code\u003e to be of type \u003ccode\u003egriffe.Function\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/acafbd8b6d97fe8370f3eb730e2154e19b2c1a54\"\u003eacafbd8\u003c/a\u003e by Edouard Choinière). \u003ca href=\"https://github.com/mkdocstrings/griffe/discussions/391\"\u003eIssue-391\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/395\"\u003ePR-395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize labels for attributes (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/1b376cd39ce99730910d8344abbfd5c53ce28300\"\u003e1b376cd\u003c/a\u003e by Timothée Mazzucotelli).\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/mkdocstrings/griffe/blob/main/CHANGELOG.md\"\u003egriffe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.8.0\"\u003e1.8.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.7.3...1.8.0\"\u003eCompare with 1.7.3\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd method to functions and classes to build and return a stringified signature (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8ef1486e9b1f0872cca3b1cd2419144b702a0c1e\"\u003e8ef1486\u003c/a\u003e by ISOREX). \u003ca href=\"https://github.com/mkdocstrings/griffe/discussions/376\"\u003eDiscussion-376\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/381\"\u003ePR-381\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance Sphinx-style parameter parsing to handle invalid type info (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/cbce5a2c2429dc92e15ac3a8fe53db55825ebd6c\"\u003ecbce5a2\u003c/a\u003e by Edouard Choinière). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/396\"\u003ePR-396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParse Sphinx parameter types as expressions (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/70dda21d15dfdf5807dde370fb636d69eea6272b\"\u003e70dda21\u003c/a\u003e by Edouard Choinière). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/392\"\u003ePR-392\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid SyntaxError when loading modules encoded in UTF8 with BOM (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/b3461901ae08204ea6184025a006f5d34152d30d\"\u003eb346190\u003c/a\u003e by John Hennig). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/386\"\u003eIssue-386\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/387\"\u003ePR-387\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrectly parenthesize expressions (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/a8c5585c8a45a4d6b67bd5dc36d7054478d3873d\"\u003ea8c5585\u003c/a\u003e by Abraham Cheung). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/389\"\u003ePR-389\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBe more consistent regarding not overriding submodules with aliases (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/be1963cca6d7d49bcc41fdf05570b1bfba934330\"\u003ebe1963c\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eExprName.parent\u003c/code\u003e to be of type \u003ccode\u003egriffe.Function\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/acafbd8b6d97fe8370f3eb730e2154e19b2c1a54\"\u003eacafbd8\u003c/a\u003e by Edouard Choinière). \u003ca href=\"https://github.com/mkdocstrings/griffe/discussions/391\"\u003eIssue-391\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/395\"\u003ePR-395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize labels for attributes (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/1b376cd39ce99730910d8344abbfd5c53ce28300\"\u003e1b376cd\u003c/a\u003e by Timothée Mazzucotelli).\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/mkdocstrings/griffe/commit/27a385b435d3c09eedeffe980416f7012e65ed6f\"\u003e\u003ccode\u003e27a385b\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8ef1486e9b1f0872cca3b1cd2419144b702a0c1e\"\u003e\u003ccode\u003e8ef1486\u003c/code\u003e\u003c/a\u003e feat: Add method to functions and classes to build and return a stringified s...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/b3461901ae08204ea6184025a006f5d34152d30d\"\u003e\u003ccode\u003eb346190\u003c/code\u003e\u003c/a\u003e fix: Avoid SyntaxError when loading modules encoded in UTF8 with BOM\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/a8c5585c8a45a4d6b67bd5dc36d7054478d3873d\"\u003e\u003ccode\u003ea8c5585\u003c/code\u003e\u003c/a\u003e fix: Correctly parenthesize expressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/0a051861d4fc3e064f2d19d53e1abab112316771\"\u003e\u003ccode\u003e0a05186\u003c/code\u003e\u003c/a\u003e ci: Ignore Mypy warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/cbce5a2c2429dc92e15ac3a8fe53db55825ebd6c\"\u003e\u003ccode\u003ecbce5a2\u003c/code\u003e\u003c/a\u003e feat: Enhance Sphinx-style parameter parsing to handle invalid type info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/2d77bf16a0b6f823e2bbe54a49f2c26e4cd1e290\"\u003e\u003ccode\u003e2d77bf1\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:mkdocstrings/griffe\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/be1963cca6d7d49bcc41fdf05570b1bfba934330\"\u003e\u003ccode\u003ebe1963c\u003c/code\u003e\u003c/a\u003e refactor: Be more consistent regarding not overriding submodules with aliases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/fbad6f5dd556b49f20a51a8ba6dc19fb13878bdc\"\u003e\u003ccode\u003efbad6f5\u003c/code\u003e\u003c/a\u003e tests: Fix annotation tests for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8489f11257c880adca76298bef7bca8a367585e4\"\u003e\u003ccode\u003e8489f11\u003c/code\u003e\u003c/a\u003e docs: Add link to function reference at the end of guide\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.7.3...1.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-resources` from 5.0.7 to 6.5.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_resources/blob/main/NEWS.rst\"\u003eimportlib-resources's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.5.2\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced reference to typing_extensions with stdlib Literal. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/323\"\u003e#323\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.5.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated \u003ccode\u003eTraversable.read_text()\u003c/code\u003e to reflect the \u003ccode\u003eerrors\u003c/code\u003e\u003ccode\u003epython/cpython#127012\u003c/code\u003e\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/321\"\u003e#321\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.5.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd type annotations for Traversable.open. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire Python 3.9 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.4.5\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOmit sentinel values from a namespace path. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/311\"\u003e#311\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.4.4\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch1\u003ev6.4.3\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWhen inferring the caller in \u003ccode\u003efiles()\u003c/code\u003e\u003ccode\u003epython/cpython#123085\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/python/importlib_resources/commit/7d3b2bfa1d8c53ecb64246ba16d8c632f8fcb6bf\"\u003e\u003ccode\u003e7d3b2bf\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/14408098293bd6bc68eca7b5a53333729a567e57\"\u003e\u003ccode\u003e1440809\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/324\"\u003e#324\u003c/a\u003e from pstjohn/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/6569354ad2cf38b202fdeaf11b49e639b1a00fbc\"\u003e\u003ccode\u003e6569354\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/6c1bc3cdb8f8a7d29252becc201508712040facc\"\u003e\u003ccode\u003e6c1bc3c\u003c/code\u003e\u003c/a\u003e Rely on Literal from stdlib.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/883380a5fcc482b67014b90b9aa7250d868c795a\"\u003e\u003ccode\u003e883380a\u003c/code\u003e\u003c/a\u003e Update pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/a61a948b6293ed46972909652909e2540242f197\"\u003e\u003ccode\u003ea61a948\u003c/code\u003e\u003c/a\u003e Add typing-extensions as a dependency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/78c4bda73c5d671cbbcfdf1430b6f2da03aeb04f\"\u003e\u003ccode\u003e78c4bda\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/10d87bf85a404e9fb9271f8f353ad0452c0cc631\"\u003e\u003ccode\u003e10d87bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/321\"\u003e#321\u003c/a\u003e from kurtmckee/add-readtext-errors-parameter-cpython-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/9a872e5dbceff32260e8ff19d039236304ee150c\"\u003e\u003ccode\u003e9a872e5\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/cf269ce50f496671f3b7fbc5e6292946ecc70e7d\"\u003e\u003ccode\u003ecf269ce\u003c/code\u003e\u003c/a\u003e Replace unreachable block with simple assertion. Fixes diffcov failure.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_resources/compare/v5.0.7...v6.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jsonschema` from 4.24.0 to 4.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-jsonschema/jsonschema/releases\"\u003ejsonschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.25.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eiri\u003c/code\u003e and \u003ccode\u003eiri-reference\u003c/code\u003e formats to the \u003ccode\u003eformat-nongpl\u003c/code\u003e extra by \u003ca href=\"https://github.com/jkowalleck\"\u003e\u003ccode\u003e@​jkowalleck\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1388\"\u003epython-jsonschema/jsonschema#1388\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/jkowalleck\"\u003e\u003ccode\u003e@​jkowalleck\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1388\"\u003epython-jsonschema/jsonschema#1388\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-jsonschema/jsonschema/compare/v4.24.1...v4.25.0\"\u003ehttps://github.com/python-jsonschema/jsonschema/compare/v4.24.1...v4.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.24.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUnambiguously quote and escape properties in JSON path rendering by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1390\"\u003epython-jsonschema/jsonschema#1390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop python\u0026lt;3.9 backports by \u003ca href=\"https://github.com/hackowitz-af\"\u003e\u003ccode\u003e@​hackowitz-af\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1367\"\u003epython-jsonschema/jsonschema#1367\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/hackowitz-af\"\u003e\u003ccode\u003e@​hackowitz-af\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1367\"\u003epython-jsonschema/jsonschema#1367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1390\"\u003epython-jsonschema/jsonschema#1390\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-jsonschema/jsonschema/compare/v4.24.0...v4.24.1\"\u003ehttps://github.com/python-jsonschema/jsonschema/compare/v4.24.0...v4.24.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/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst\"\u003ejsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev4.25.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eiri\u003c/code\u003e and \u003ccode\u003eiri-reference\u003c/code\u003e formats to the \u003ccode\u003eformat-nongpl\u003c/code\u003e extra via the MIT-licensed \u003ccode\u003erfc3987-syntax\u003c/code\u003e.\nThey were alread supported by the \u003ccode\u003eformat\u003c/code\u003e extra. (\u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1388\"\u003e#1388\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev4.24.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eProperly escape segments in \u003ccode\u003eValidationError.json_path\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/139\"\u003e#139\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-jsonschema/jsonschema/commit/9889f69eb5ccb532e2147465697f30c82b2a8bb0\"\u003e\u003ccode\u003e9889f69\u003c/code\u003e\u003c/a\u003e Add the new functionality to the CHANGELOG.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/18855d01f7839083efc5bad1ca67688a7177be42\"\u003e\u003ccode\u003e18855d0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1388\"\u003e#1388\u003c/a\u003e from jkowalleck/feat/validate_rfc3987_non-gpl/rfc398...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/1a6067fc441177d1911446c7325eee7c776007ae\"\u003e\u003ccode\u003e1a6067f\u003c/code\u003e\u003c/a\u003e adjust rfc3987-syntax min-version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/6aadb8b7ad7f9d5eee58eed73df5a7d865dad34c\"\u003e\u003ccode\u003e6aadb8b\u003c/code\u003e\u003c/a\u003e Add the fix to the CHANGELOG.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/785741e73b63d97eda3973442b109df3f8aa5892\"\u003e\u003ccode\u003e785741e\u003c/code\u003e\u003c/a\u003e Add a dependency group for our new test dependency.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/dc547341f2a3304d73114b1d18da063be7fc43e0\"\u003e\u003ccode\u003edc54734\u003c/code\u003e\u003c/a\u003e Add a uv.lock.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/b5572c9971358be547bbcf614a304f85886c1627\"\u003e\u003ccode\u003eb5572c9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1390\"\u003e#1390\u003c/a\u003e from kurtmckee/fix-json_path-str-rendering\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/4cf45b95de90191b02396bd04d41760d9798ecd6\"\u003e\u003ccode\u003e4cf45b9\u003c/code\u003e\u003c/a\u003e Feedback: Use jsonpath-ng to re-parse the rendered JSON path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/2680f6ab44d6fe36d321fef6ee626608a5f0ec7a\"\u003e\u003ccode\u003e2680f6a\u003c/code\u003e\u003c/a\u003e Feedback: Make a compiled regex pattern private\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/9a957d770d6e63646f4fc874bf8df6be4593f8c8\"\u003e\u003ccode\u003e9a957d7\u003c/code\u003e\u003c/a\u003e Unambiguously quote and escape properties in JSON path rendering\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-jsonschema/jsonschema/compare/v4.24.0...v4.25.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markdown` from 3.8 to 3.8.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.8.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.8.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure incomplete markup declaration in raw HTML doesn't crash parser (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1534\"\u003e#1534\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed dropped content in \u003ccode\u003emd_in_html\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1526\"\u003e#1526\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed HTML handling corner case that prevented some content from not being rendered (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1528\"\u003e#1528\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/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.1] - 2025-06-18\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure incomplete markup declaration in raw HTML doesn't crash parser (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1534\"\u003e#1534\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed dropped content in \u003ccode\u003emd_in_html\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1526\"\u003e#1526\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed HTML handling corner case that prevented some content from not being rendered (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1528\"\u003e#1528\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.0] - 2025-04-09\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDRY fix in \u003ccode\u003eabbr\u003c/code\u003e extension by introducing method \u003ccode\u003ecreate_element\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1483\"\u003e#1483\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eClean up test directory by removing some redundant tests and port\nnon-redundant cases to the newer test framework.\u003c/li\u003e\n\u003cli\u003eImproved performance of the raw HTML post-processor (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1510\"\u003e#1510\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBackslash Unescape IDs set via \u003ccode\u003eattr_list\u003c/code\u003e on \u003ccode\u003etoc\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1493\"\u003e#1493\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003emd_in_html\u003c/code\u003e processes content inside \u0026quot;markdown\u0026quot; blocks as they are\nparsed outside of \u0026quot;markdown\u0026quot; blocks to keep things more consistent for\nthird-party extensions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1503\"\u003e#1503\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emd_in_html\u003c/code\u003e handle tags within inline code blocks better (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1075\"\u003e#1075\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emd_in_html\u003c/code\u003e fix handling of one-liner block HTML handling (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1074\"\u003e#1074\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e\u0026lt;center\u0026gt;\u003c/code\u003e is treated like a block-level element (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1481\"\u003e#1481\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eEnsure that \u003ccode\u003eabbr\u003c/code\u003e extension respects \u003ccode\u003eAtomicString\u003c/code\u003e and does not process\nperceived abbreviations in these strings (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1512\"\u003e#1512\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003esmarty\u003c/code\u003e extension correctly renders nested closing quotes (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1514\"\u003e#1514\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.7.0] - 2024-08-16\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor \u003ccode\u003eabbr\u003c/code\u003e Extension\u003c/p\u003e\n\u003cp\u003eA new \u003ccode\u003eAbbrTreeprocessor\u003c/code\u003e has been introduced, which replaces the now deprecated\n\u003ccode\u003eAbbrInlineProcessor\u003c/code\u003e. Abbreviation processing now happens after Attribute Lists,\navoiding a conflict between the two extensions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1460\"\u003e#1460\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eAbbrPreprocessor\u003c/code\u003e class has been renamed to \u003ccode\u003eAbbrBlockprocessor\u003c/code\u003e, which\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/d9c8431e404d614812e39a11109afbe9981bba13\"\u003e\u003ccode\u003ed9c8431\u003c/code\u003e\u003c/a\u003e Bump version to 3.8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/9980cb5b27b07ff48283178d98213e41543701ec\"\u003e\u003ccode\u003e9980cb5\u003c/code\u003e\u003c/a\u003e Fixes for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/3561310d30dac10c47f0b9fc404b167fc65331b0\"\u003e\u003ccode\u003e3561310\u003c/code\u003e\u003c/a\u003e Properly document version specification.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/3bb9d42b93dae519d4f5a6eea970a571232e05e2\"\u003e\u003ccode\u003e3bb9d42\u003c/code\u003e\u003c/a\u003e Update documentation for release process\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/3870f20ba1dd214609b380e921dffc5f115730f5\"\u003e\u003ccode\u003e3870f20\u003c/code\u003e\u003c/a\u003e Bump version to 3.8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/820721485c928c6f97f3d74f37afb6d2450aef9e\"\u003e\u003ccode\u003e8207214\u003c/code\u003e\u003c/a\u003e Ensure incomplete markup declaration in raw HTML doesn't crash parser.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/64a3c0fbc00327fbfee1fd6b44da0e5453287fe4\"\u003e\u003ccode\u003e64a3c0f\u003c/code\u003e\u003c/a\u003e Fix HTML handling of \u003ccode\u003e\\\u0026lt;/\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/f2b9fd10f1fc7b0683f226e6a82da8e8375bccf5\"\u003e\u003ccode\u003ef2b9fd1\u003c/code\u003e\u003c/a\u003e Ensure \u003ccode\u003emd_in_html\u003c/code\u003e does not drop content\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/513de8a0db81c840f917488af7078a45f74542bf\"\u003e\u003ccode\u003e513de8a\u003c/code\u003e\u003c/a\u003e Update pypa/gh-action-pypi-publish to v1.12.4\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.8...3.8.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-material` from 9.6.14 to 9.6.16\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/squidfunk/mkdocs-material/releases\"\u003emkdocs-material's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emkdocs-material-9.6.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8349\"\u003e#8349\u003c/a\u003e: Info plugin doesn't correctly detect virtualenv in some cases\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8334\"\u003e#8334\u003c/a\u003e: Find-in-page detects matches in hidden search result list\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003emkdocs-material-9.6.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Mongolian translations\u003c/li\u003e\n\u003cli\u003eImproved semantic markup of \u0026quot;edit this page\u0026quot; button\u003c/li\u003e\n\u003cli\u003eImproved info plugin virtual environment resolution\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8291\"\u003e#8291\u003c/a\u003e: Large font size setting throws of breakpoints in JavaScript\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/squidfunk/mkdocs-material/blob/master/CHANGELOG\"\u003emkdocs-material's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emkdocs-material-9.6.16 (2025-07-26)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8349\"\u003e#8349\u003c/a\u003e: Info plugin doesn't correctly detect virtualenv in some cases\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8334\"\u003e#8334\u003c/a\u003e: Find-in-page detects matches in hidden search result list\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.6.15 (2025-07-01)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Mongolian translations\u003c/li\u003e\n\u003cli\u003eImproved semantic markup of \u0026quot;edit this page\u0026quot; button\u003c/li\u003e\n\u003cli\u003eImproved info plugin virtual environment resolution\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8291\"\u003e#8291\u003c/a\u003e: Large font size setting throws of breakpoints in JavaScript\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.6.14 (2025-05-13)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8215\"\u003e#8215\u003c/a\u003e: Social plugin crashes when CairoSVG is updated to 2.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.6.13 (2025-05-10)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8204\"\u003e#8204\u003c/a\u003e: Annotations showing list markers in print view\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8153\"\u003e#8153\u003c/a\u003e: Improve style of cardinality symbols in Mermaid.js ER diagrams\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.6.12 (2025-04-17)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8158\"\u003e#8158\u003c/a\u003e: Flip footnote back reference icon for right-to-left languages\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.6.11 (2025-04-01)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Docker image to latest Alpine Linux\u003c/li\u003e\n\u003cli\u003eBump required Jinja version to 3.1\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8133\"\u003e#8133\u003c/a\u003e: Jinja filter \u003ccode\u003eitems\u003c/code\u003e not available (9.6.10 regression)\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8128\"\u003e#8128\u003c/a\u003e: Search plugin not entirely disabled via enabled setting\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.6.10 (2025-03-30)\u003c/p\u003e\n\u003cp\u003eThis version is a pure refactoring release, and does not contain new features\nor bug fixes. It strives to improve the compatibility of our templates with\nalternative Jinja-like template engines that we're currently exploring,\nincluding minijinja.\u003c/p\u003e\n\u003cp\u003eAdditionally, it replaces several instances of Python function invocations\nwith idiomatic use of template filters. All instances where variables have\nbeen mutated inside templates have been replaced. Most changes have been made\nin partials, and only a few in blocks, and all of them are fully backward\ncompatible, so no changes to overrides are necessary.\u003c/p\u003e\n\u003cp\u003eNote that this release does not replace the Jinja template engine with\nminijinja. However, our templates are now 99% compatible with minijinja,\nwhich means we can explore alternative Jinja-compatible implementations.\nAdditionally, immutability and removal of almost all Python function\ninvocations means much more idiomatic templating.\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/squidfunk/mkdocs-material/commit/8b949816ba16ad46e7c4c72912e5bd8c6254dcfd\"\u003e\u003ccode\u003e8b94981\u003c/code\u003e\u003c/a\u003e Prepare 9.6.16 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/e5c7ab542745013397b7e7b284960ed57de306c1\"\u003e\u003ccode\u003ee5c7ab5\u003c/code\u003e\u003c/a\u003e Updated dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/53385529f0481e89ff6fba49f855fd0dbbd16cdb\"\u003e\u003ccode\u003e5338552\u003c/code\u003e\u003c/a\u003e Fixed handling of inconsistent drive letter case\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/6d4f756461dd556e459d4769d6e1ec7ce7bce4ae\"\u003e\u003ccode\u003e6d4f756\u003c/code\u003e\u003c/a\u003e Fixed dotpath venv guessing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/88bdcf5f16696eb540fcbf8bc24244dc1c5f965f\"\u003e\u003ccode\u003e88bdcf5\u003c/code\u003e\u003c/a\u003e Fixed empty username fallback\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/d0c4bd618fd01b849ba85aee5275c23481214eea\"\u003e\u003ccode\u003ed0c4bd6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8346\"\u003e#8346\u003c/a\u003e from squidfunk/dependabot/npm_and_yarn/form-data-3.0.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/9c1e4deb5c96c6baa076431f0cb4ede20ba35fab\"\u003e\u003ccode\u003e9c1e4de\u003c/code\u003e\u003c/a\u003e Bump form-data from 3.0.1 to 3.0.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/b2d235eb65d717202fedbe70c6856f2560e66c40\"\u003e\u003ccode\u003eb2d235e\u003c/code\u003e\u003c/a\u003e Updated Premium sponsors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/e54ff0632c46e811e6adc7a104c0bd567ed22fc0\"\u003e\u003ccode\u003ee54ff06\u003c/code\u003e\u003c/a\u003e Updated Premium sponsors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/212b7ab8f74a78a56e8f09b032633bc69289639a\"\u003e\u003ccode\u003e...\n\n_Description has been truncated_","html_url":"https://github.com/pycontribs/subprocess-tee/pull/184","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycontribs%2Fsubprocess-tee/issues/184","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/184/packages"},{"uuid":"2609858757","node_id":"PR_kwDOJHFGx86bj0jF","number":223,"state":"open","title":"Bump the dependencies group in /.config with 5 updates","user":"dependabot[bot]","labels":["skip-changelog","dependabot","minor"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-06-22T17:22:20.000Z","updated_at":"2025-06-24T18:55:40.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":5,"packages":[{"name":"markdown","old_version":"3.8","new_version":"3.8.2","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pymdown-extensions","old_version":"10.15","new_version":"10.16","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"urllib3","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"pytest","old_version":"8.4.0","new_version":"8.4.1","repository_url":"https://github.com/pytest-dev/pytest"}],"path":"/.config","ecosystem":"conda"},"body":"Bumps the dependencies group in /.config with 5 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.8` | `3.8.2` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.15` | `10.16` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.4.0` | `2.5.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.0` | `8.4.1` |\n\nUpdates `markdown` from 3.8 to 3.8.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.8.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.8.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure incomplete markup declaration in raw HTML doesn't crash parser (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1534\"\u003e#1534\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed dropped content in \u003ccode\u003emd_in_html\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1526\"\u003e#1526\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed HTML handling corner case that prevented some content from not being rendered (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1528\"\u003e#1528\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/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.1] - 2025-06-18\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure incomplete markup declaration in raw HTML doesn't crash parser (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1534\"\u003e#1534\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed dropped content in \u003ccode\u003emd_in_html\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1526\"\u003e#1526\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed HTML handling corner case that prevented some content from not being rendered (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1528\"\u003e#1528\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.0] - 2025-04-09\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDRY fix in \u003ccode\u003eabbr\u003c/code\u003e extension by introducing method \u003ccode\u003ecreate_element\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1483\"\u003e#1483\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eClean up test directory by removing some redundant tests and port\nnon-redundant cases to the newer test framework.\u003c/li\u003e\n\u003cli\u003eImproved performance of the raw HTML post-processor (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1510\"\u003e#1510\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBackslash Unescape IDs set via \u003ccode\u003eattr_list\u003c/code\u003e on \u003ccode\u003etoc\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1493\"\u003e#1493\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003emd_in_html\u003c/code\u003e processes content inside \u0026quot;markdown\u0026quot; blocks as they are\nparsed outside of \u0026quot;markdown\u0026quot; blocks to keep things more consistent for\nthird-party extensions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1503\"\u003e#1503\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emd_in_html\u003c/code\u003e handle tags within inline code blocks better (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1075\"\u003e#1075\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emd_in_html\u003c/code\u003e fix handling of one-liner block HTML handling (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1074\"\u003e#1074\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e\u0026lt;center\u0026gt;\u003c/code\u003e is treated like a block-level element (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1481\"\u003e#1481\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eEnsure that \u003ccode\u003eabbr\u003c/code\u003e extension respects \u003ccode\u003eAtomicString\u003c/code\u003e and does not process\nperceived abbreviations in these strings (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1512\"\u003e#1512\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003esmarty\u003c/code\u003e extension correctly renders nested closing quotes (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1514\"\u003e#1514\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.7.0] - 2024-08-16\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor \u003ccode\u003eabbr\u003c/code\u003e Extension\u003c/p\u003e\n\u003cp\u003eA new \u003ccode\u003eAbbrTreeprocessor\u003c/code\u003e has been introduced, which replaces the now deprecated\n\u003ccode\u003eAbbrInlineProcessor\u003c/code\u003e. Abbreviation processing now happens after Attribute Lists,\navoiding a conflict between the two extensions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1460\"\u003e#1460\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eAbbrPreprocessor\u003c/code\u003e class has been renamed to \u003ccode\u003eAbbrBlockprocessor\u003c/code\u003e, which\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/d9c8431e404d614812e39a11109afbe9981bba13\"\u003e\u003ccode\u003ed9c8431\u003c/code\u003e\u003c/a\u003e Bump version to 3.8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/9980cb5b27b07ff48283178d98213e41543701ec\"\u003e\u003ccode\u003e9980cb5\u003c/code\u003e\u003c/a\u003e Fixes for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/3561310d30dac10c47f0b9fc404b167fc65331b0\"\u003e\u003ccode\u003e3561310\u003c/code\u003e\u003c/a\u003e Properly document version specification.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/3bb9d42b93dae519d4f5a6eea970a571232e05e2\"\u003e\u003ccode\u003e3bb9d42\u003c/code\u003e\u003c/a\u003e Update documentation for release process\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/3870f20ba1dd214609b380e921dffc5f115730f5\"\u003e\u003ccode\u003e3870f20\u003c/code\u003e\u003c/a\u003e Bump version to 3.8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/820721485c928c6f97f3d74f37afb6d2450aef9e\"\u003e\u003ccode\u003e8207214\u003c/code\u003e\u003c/a\u003e Ensure incomplete markup declaration in raw HTML doesn't crash parser.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/64a3c0fbc00327fbfee1fd6b44da0e5453287fe4\"\u003e\u003ccode\u003e64a3c0f\u003c/code\u003e\u003c/a\u003e Fix HTML handling of \u003ccode\u003e\\\u0026lt;/\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/f2b9fd10f1fc7b0683f226e6a82da8e8375bccf5\"\u003e\u003ccode\u003ef2b9fd1\u003c/code\u003e\u003c/a\u003e Ensure \u003ccode\u003emd_in_html\u003c/code\u003e does not drop content\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/513de8a0db81c840f917488af7078a45f74542bf\"\u003e\u003ccode\u003e513de8a\u003c/code\u003e\u003c/a\u003e Update pypa/gh-action-pypi-publish to v1.12.4\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.8...3.8.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pygments` from 2.19.1 to 2.19.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pygments/pygments/releases\"\u003epygments's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.19.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLua: Fix regression introduced in 2.19.0 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2882\"\u003e#2882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2839\"\u003e#2839\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/pygments/pygments/blob/master/CHANGES\"\u003epygments's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.19.2\u003c/h2\u003e\n\u003cp\u003e(released June 21st, 2025)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLua: Fix regression introduced in 2.19.0 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2882\"\u003e#2882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2839\"\u003e#2839\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/pygments/pygments/commit/cfca62e6e95136e48a255e8cbffb0bbe1d98456c\"\u003e\u003ccode\u003ecfca62e\u003c/code\u003e\u003c/a\u003e Prepare v2.19.2 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/6688300df2ea289a6137c7ee9c78d0bb95683b5c\"\u003e\u003ccode\u003e6688300\u003c/code\u003e\u003c/a\u003e Disable pyodide (currently broken.)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/66997c3e302226a95c22cdaebf827444327920fa\"\u003e\u003ccode\u003e66997c3\u003c/code\u003e\u003c/a\u003e Update ruff version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/94dda77d69a6d6c47c33f06ce2425e7f306154a2\"\u003e\u003ccode\u003e94dda77\u003c/code\u003e\u003c/a\u003e Update CHANGES.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/26634c856cefea620571123577d1f8cf09589ed8\"\u003e\u003ccode\u003e26634c8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2882\"\u003e#2882\u003c/a\u003e from thavelick/fix_lua_runaway_regex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/b6a51ece09e31d3db2b732c8536a533b6de74768\"\u003e\u003ccode\u003eb6a51ec\u003c/code\u003e\u003c/a\u003e fix lua regex causing runaway backtracking.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/edef94d66c2d70f05a86ac6098a69ab253b8d946\"\u003e\u003ccode\u003eedef94d\u003c/code\u003e\u003c/a\u003e Investigation for \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2839\"\u003e#2839\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/fb6a00ef872e45a23212c214b8494ebedbd4709b\"\u003e\u003ccode\u003efb6a00e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2837\"\u003e#2837\u003c/a\u003e from dlazin/sql-cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/bf7aa2368fe7e0f42d4543781f0b00b4565b3995\"\u003e\u003ccode\u003ebf7aa23\u003c/code\u003e\u003c/a\u003e Clean up sql.py\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pygments/pygments/compare/2.19.1...2.19.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymdown-extensions` from 10.15 to 10.16\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/releases\"\u003epymdown-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e10.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add early support for Python 3.14.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Snippets: Added \u003ccode\u003emax_retries\u003c/code\u003e and \u003ccode\u003ebackoff_retries\u003c/code\u003e options to configure new retry logic for HTTP 429\nerrors (Too Many Requests client error).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Caption: Prefix templates are now preserved exactly as specified allowing the insertion of HTML tags if\ndesired.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Caption: Fix issue where manual numbers in auto were not respected appropriately.\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/facelessuser/pymdown-extensions/commit/7d3d4f990463e50b1ba1e20830832285d92990c7\"\u003e\u003ccode\u003e7d3d4f9\u003c/code\u003e\u003c/a\u003e Add early support for Python 3.14 (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2697\"\u003e#2697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/beb841e6f968b81403166d685b083fe2bde84bbc\"\u003e\u003ccode\u003ebeb841e\u003c/code\u003e\u003c/a\u003e Docs: Update JS deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/620d7fded457a0b5317019fa461a27f484a0d3d4\"\u003e\u003ccode\u003e620d7fd\u003c/code\u003e\u003c/a\u003e Docs: update JS deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/a49f32aa4ac91d97c7c10c9abe7f654b5ec802e5\"\u003e\u003ccode\u003ea49f32a\u003c/code\u003e\u003c/a\u003e Refactor for mypy issue\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/52a481b5591879f49baffecf4275f351d27a3759\"\u003e\u003ccode\u003e52a481b\u003c/code\u003e\u003c/a\u003e Docs: update JS dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/2a1828accdc2371d97610fbbb574dd878e090b54\"\u003e\u003ccode\u003e2a1828a\u003c/code\u003e\u003c/a\u003e Allow raw HTML in caption prefix (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2679\"\u003e#2679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/fbf4bf22da3bc864f24b4ee6a2c05b145fb6c304\"\u003e\u003ccode\u003efbf4bf2\u003c/code\u003e\u003c/a\u003e Fix issue where manual captions in auto were not respected properly (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2678\"\u003e#2678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/70cf820aae36d57cf493ca9c8c2e24ab11c6c445\"\u003e\u003ccode\u003e70cf820\u003c/code\u003e\u003c/a\u003e Fix spelling of marketplace for GitHub (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2674\"\u003e#2674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/553251d5a68999a95b71bd155fa83b3f9a4f7997\"\u003e\u003ccode\u003e553251d\u003c/code\u003e\u003c/a\u003e Add retry logic for rate limited HTTP errors (429) (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2669\"\u003e#2669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/bd2f267557e27d1482db5ad7c0a9db4c619a6004\"\u003e\u003ccode\u003ebd2f267\u003c/code\u003e\u003c/a\u003e Drop Python 3.8 (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2654\"\u003e#2654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/compare/10.15...10.16\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.4.0 to 2.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.5.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch1\u003eSecurity issues\u003c/h1\u003e\n\u003cp\u003eurllib3 2.5.0 fixes two moderate security issues:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePool managers now properly control redirects when \u003ccode\u003eretries\u003c/code\u003e is passed — CVE-2025-50181 reported by \u003ca href=\"https://github.com/sandumjacob\"\u003e\u003ccode\u003e@​sandumjacob\u003c/code\u003e\u003c/a\u003e (5.3 Medium, GHSA-pq67-6m6q-mj2v)\u003c/li\u003e\n\u003cli\u003eRedirects are now controlled by urllib3 in the Node.js runtime — CVE-2025-50182 (5.3 Medium, GHSA-48p4-8xcf-vxj5)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFeatures\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for the \u003ccode\u003ecompression.zstd\u003c/code\u003e module that is new in Python 3.14. See \u003ca href=\"https://peps.python.org/pep-0784/\"\u003ePEP 784\u003c/a\u003e for more information. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3610\"\u003e#3610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for version 0.5 of \u003ccode\u003ehatch-vcs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3612\"\u003e#3612\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBugfixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRaised exception for \u003ccode\u003eHTTPResponse.shutdown\u003c/code\u003e on a connection already released to the pool. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3581\"\u003e#3581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed incorrect \u003ccode\u003eCONNECT\u003c/code\u003e statement when using an IPv6 proxy with \u003ccode\u003econnection_from_host\u003c/code\u003e. Previously would not be wrapped in \u003ccode\u003e[]\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3615\"\u003e#3615\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/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.5.0 (2025-06-18)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for the \u003ccode\u003ecompression.zstd\u003c/code\u003e module that is new in Python 3.14.\nSee \u003ccode\u003ePEP 784 \u0026lt;https://peps.python.org/pep-0784/\u0026gt;\u003c/code\u003e_ for more information. (\u003ccode\u003e[#3610](https://github.com/urllib3/urllib3/issues/3610) \u0026lt;https://github.com/urllib3/urllib3/issues/3610\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded support for version 0.5 of \u003ccode\u003ehatch-vcs\u003c/code\u003e (\u003ccode\u003e[#3612](https://github.com/urllib3/urllib3/issues/3612) \u0026lt;https://github.com/urllib3/urllib3/issues/3612\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where restricting the maximum number of followed\nredirects at the \u003ccode\u003eurllib3.PoolManager\u003c/code\u003e level via the \u003ccode\u003eretries\u003c/code\u003e parameter\ndid not work.\u003c/li\u003e\n\u003cli\u003eMade the Node.js runtime respect redirect parameters such as \u003ccode\u003eretries\u003c/code\u003e\nand \u003ccode\u003eredirects\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised exception for \u003ccode\u003eHTTPResponse.shutdown\u003c/code\u003e on a connection already released to the pool. (\u003ccode\u003e[#3581](https://github.com/urllib3/urllib3/issues/3581) \u0026lt;https://github.com/urllib3/urllib3/issues/3581\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed incorrect \u003ccode\u003eCONNECT\u003c/code\u003e statement when using an IPv6 proxy with \u003ccode\u003econnection_from_host\u003c/code\u003e. Previously would not be wrapped in \u003ccode\u003e[]\u003c/code\u003e. (\u003ccode\u003e[#3615](https://github.com/urllib3/urllib3/issues/3615) \u0026lt;https://github.com/urllib3/urllib3/issues/3615\u0026gt;\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/urllib3/urllib3/commit/aaab4eccc10c965897540b21e15f11859d0b62e7\"\u003e\u003ccode\u003eaaab4ec\u003c/code\u003e\u003c/a\u003e Release 2.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/7eb4a2aafe49a279c29b6d1f0ed0f42e9736194f\"\u003e\u003ccode\u003e7eb4a2a\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/f05b1329126d5be6de501f9d1e3e36738bc08857\"\u003e\u003ccode\u003ef05b132\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/d03fe327a71d09728512217149f269763671f296\"\u003e\u003ccode\u003ed03fe32\u003c/code\u003e\u003c/a\u003e Fix HTTP tunneling with IPv6 in older Python versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/11661e9bb4278e43d081f47a516e287a928c2206\"\u003e\u003ccode\u003e11661e9\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 3.28.0 to 3.29.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3624\"\u003e#3624\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/6a0ecc6b16fe30f721021b44a81d19615098c71e\"\u003e\u003ccode\u003e6a0ecc6\u003c/code\u003e\u003c/a\u003e Update v2 migration guide to 2.4.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8e32e60d9024c05bc6f7adda08bdf6c539d0b0d4\"\u003e\u003ccode\u003e8e32e60\u003c/code\u003e\u003c/a\u003e Raise exception for shutdown on a connection already released to the pool (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/9996e0fbf90b77083ad3c73737a6c6395703faa9\"\u003e\u003ccode\u003e9996e0f\u003c/code\u003e\u003c/a\u003e Fix emscripten CI for Chrome 137+ (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3599\"\u003e#3599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/4fd1a99a59725faf0efc946ce3b6bc9a194420af\"\u003e\u003ccode\u003e4fd1a99\u003c/code\u003e\u003c/a\u003e Bump RECENT_DATE (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3617\"\u003e#3617\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/c4b5917e911a90c8bf279448df8952a682294135\"\u003e\u003ccode\u003ec4b5917\u003c/code\u003e\u003c/a\u003e Add support for the new \u003ccode\u003ecompression.zstd\u003c/code\u003e module in Python 3.14 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3611\"\u003e#3611\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.4.0...2.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.0 to 8.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.1\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.1 (2025-06-17)\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/13461\"\u003e#13461\u003c/a\u003e: Corrected \u003ccode\u003e_pytest.terminal.TerminalReporter.isatty\u003c/code\u003e to support\nbeing called as a method. Before it was just a boolean which could\nbreak correct code when using \u003ccode\u003e-o log_cli=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/13477\"\u003e#13477\u003c/a\u003e: Reintroduced \u003ccode\u003epytest.PytestReturnNotNoneWarning\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} which was removed by accident in pytest [8.4]{.title-ref}.\u003c/p\u003e\n\u003cp\u003eThis warning is raised when a test functions returns a value other than \u003ccode\u003eNone\u003c/code\u003e, which is often a mistake made by beginners.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003ereturn-not-none\u003c/code\u003e{.interpreted-text role=\u0026quot;ref\u0026quot;} for more information.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13497\"\u003e#13497\u003c/a\u003e: Fixed compatibility with \u003ccode\u003eTwisted 25+\u003c/code\u003e.\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/13492\"\u003e#13492\u003c/a\u003e: Fixed outdated warning about \u003ccode\u003efaulthandler\u003c/code\u003e not working on Windows.\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/8d99211f0ce3927eb7ee579f7b4f969da06dc787\"\u003e\u003ccode\u003e8d99211\u003c/code\u003e\u003c/a\u003e Prepare release version 8.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5dc5880715633c97310c0593f0ae356de27fa933\"\u003e\u003ccode\u003e5dc5880\u003c/code\u003e\u003c/a\u003e docs: update pytest.ini addopts example to use separate -p entries (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13529\"\u003e#13529\u003c/a\u003e) (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d0c7ed0bfae5a5f1f9153cd1e464a421d701e925\"\u003e\u003ccode\u003ed0c7ed0\u003c/code\u003e\u003c/a\u003e Reintroduce PytestReturnNotNoneWarning (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13495\"\u003e#13495\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13527\"\u003e#13527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a1b3a7879589eb437e4fd97c169b228c3ed58c63\"\u003e\u003ccode\u003ea1b3a78\u003c/code\u003e\u003c/a\u003e Fix compatibility with Twisted 25 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13502\"\u003e#13502\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13531\"\u003e#13531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/4c161aba8ecaab9940040702369025595d26564c\"\u003e\u003ccode\u003e4c161ab\u003c/code\u003e\u003c/a\u003e pytester: avoid unraisableexception gc collects in inline runs to speed up te...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a86ee09291f913b36fdeec14c42356515b91c979\"\u003e\u003ccode\u003ea86ee09\u003c/code\u003e\u003c/a\u003e Fix typo in parametrize.rst (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13514\"\u003e#13514\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13516\"\u003e#13516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/1a0581b0227fa07afd1f2c4c6215aec3862cf1ab\"\u003e\u003ccode\u003e1a0581b\u003c/code\u003e\u003c/a\u003e Remove outdated warning about faulthandler_timeout on Windows (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13492\"\u003e#13492\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13493\"\u003e#13493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/4e631a71484c2fa49e3fd9f884546af411a4888d\"\u003e\u003ccode\u003e4e631a7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13486\"\u003e#13486\u003c/a\u003e from hosmir/fixtypo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13487\"\u003e#13487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b49745ec529f06edfbbe531b766839763b2be3c2\"\u003e\u003ccode\u003eb49745e\u003c/code\u003e\u003c/a\u003e fix: support TerminalReporter.isatty being called (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13462\"\u003e#13462\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13483\"\u003e#13483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/cc5ceed916d0c63696da33c67e035917194a4e87\"\u003e\u003ccode\u003ecc5ceed\u003c/code\u003e\u003c/a\u003e RELEASING: remove pytest mailing list (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13472\"\u003e#13472\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13473\"\u003e#13473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.0...8.4.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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/ansible/mkdocs-ansible/pull/223","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansible%2Fmkdocs-ansible/issues/223","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/223/packages"},{"uuid":"2558290731","node_id":"PR_kwDOB845h86YfGsr","number":679,"state":"closed","title":"Bump the main-dependencies group with 20 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-06-01T15:44:38.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-06-01T15:27:31.000Z","updated_at":"2025-06-01T15:44:38.000Z","time_to_close":1027,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"main-dependencies","update_count":20,"packages":[{"name":"scipy","old_version":"1.14.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"astropy","old_version":"6.1.5","new_version":"6.1.7","repository_url":"https://github.com/astropy/astropy"},{"name":"lxml","old_version":"5.2.2","new_version":"5.4.0","repository_url":"https://github.com/lxml/lxml"},{"name":"more-itertools","old_version":"10.2.0","new_version":"10.7.0","repository_url":"https://github.com/more-itertools/more-itertools"},{"name":"tqdm","old_version":"4.66.5","new_version":"4.67.1","repository_url":"https://github.com/tqdm/tqdm"},{"name":"packaging","old_version":"23.2","new_version":"25.0","repository_url":"https://github.com/pypa/packaging"},{"name":"anyio","old_version":"3.7.1","new_version":"4.9.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"certifi","old_version":"2024.7.4","new_version":"2025.4.26","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.3.2","new_version":"3.4.2","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"contourpy","old_version":"1.2.0","new_version":"1.3.2","repository_url":"https://github.com/contourpy/contourpy"},{"name":"exceptiongroup","old_version":"1.2.0","new_version":"1.3.0","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"fonttools","old_version":"4.47.0","new_version":"4.58.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"idna","old_version":"3.7","new_version":"3.10","repository_url":"https://github.com/kjd/idna"},{"name":"pillow","old_version":"11.0.0","new_version":"11.2.1","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.1.0","new_version":"4.3.8","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pyparsing","old_version":"3.0.9","new_version":"3.2.3","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"soupsieve","old_version":"2.5","new_version":"2.7","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"typing-extensions","old_version":"4.9.0","new_version":"4.13.2","repository_url":"https://github.com/python/typing_extensions"},{"name":"urllib3","old_version":"1.26.19","new_version":"2.4.0","repository_url":"https://github.com/urllib3/urllib3"}],"path":null,"ecosystem":"conda"},"body":"Bumps the main-dependencies group with 20 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [scipy](https://github.com/scipy/scipy) | `1.14.1` | `1.15.3` |\n| [astropy](https://github.com/astropy/astropy) | `6.1.5` | `6.1.7` |\n| [lxml](https://github.com/lxml/lxml) | `5.2.2` | `5.4.0` |\n| [more-itertools](https://github.com/more-itertools/more-itertools) | `10.2.0` | `10.7.0` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.66.5` | `4.67.1` |\n| [packaging](https://github.com/pypa/packaging) | `23.2` | `25.0` |\n| [anyio](https://github.com/agronholm/anyio) | `3.7.1` | `4.9.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2024.7.4` | `2025.4.26` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.3.2` | `3.4.2` |\n| [contourpy](https://github.com/contourpy/contourpy) | `1.2.0` | `1.3.2` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.2.0` | `1.3.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.47.0` | `4.58.1` |\n| [idna](https://github.com/kjd/idna) | `3.7` | `3.10` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.0.0` | `11.2.1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.1.0` | `4.3.8` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.0.9` | `3.2.3` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.5` | `2.7` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.9.0` | `4.13.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `1.26.19` | `2.4.0` |\n\nUpdates `scipy` from 1.14.1 to 1.15.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scipy/scipy/releases\"\u003escipy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eSciPy 1.15.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eSciPy \u003ccode\u003e1.15.3\u003c/code\u003e is a bug-fix release with no new features\ncompared to \u003ccode\u003e1.15.2\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eFor the complete issue and PR lists see the \u003ca href=\"https://github.com/scipy/scipy/releases/download/v1.15.3/README.txt\"\u003eraw release notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch1\u003eAuthors\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eName (commits)\u003c/li\u003e\n\u003cli\u003eaiudirog (1) +\u003c/li\u003e\n\u003cli\u003eNickolai Belakovski (1)\u003c/li\u003e\n\u003cli\u003eFlorian Bourgey (1) +\u003c/li\u003e\n\u003cli\u003eRichard Strong Bowen (2) +\u003c/li\u003e\n\u003cli\u003eJake Bowhay (1)\u003c/li\u003e\n\u003cli\u003eDietrich Brunn (2)\u003c/li\u003e\n\u003cli\u003eEvgeni Burovski (1)\u003c/li\u003e\n\u003cli\u003eLucas Colley (1)\u003c/li\u003e\n\u003cli\u003eRalf Gommers (1)\u003c/li\u003e\n\u003cli\u003eSaarthak Gupta (1) +\u003c/li\u003e\n\u003cli\u003eMatt Haberland (4)\u003c/li\u003e\n\u003cli\u003eChengyu Han (1) +\u003c/li\u003e\n\u003cli\u003eLukas Huber (1) +\u003c/li\u003e\n\u003cli\u003eNick ODell (2)\u003c/li\u003e\n\u003cli\u003eIlhan Polat (4)\u003c/li\u003e\n\u003cli\u003eTyler Reddy (52)\u003c/li\u003e\n\u003cli\u003eNeil Schemenauer (1) +\u003c/li\u003e\n\u003cli\u003eDan Schult (1)\u003c/li\u003e\n\u003cli\u003esildater (1) +\u003c/li\u003e\n\u003cli\u003eGagandeep Singh (4)\u003c/li\u003e\n\u003cli\u003eAlbert Steppi (2)\u003c/li\u003e\n\u003cli\u003eMatthias Urlichs (1) +\u003c/li\u003e\n\u003cli\u003eDavid Varela (1) +\u003c/li\u003e\n\u003cli\u003eਗਗਨਦੀਪ ਸਿੰਘ (Gagandeep Singh) (3)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eA total of 24 people contributed to this release.\nPeople with a \u0026quot;+\u0026quot; by their names contributed a patch for the first time.\nThis list of names is automatically generated, and may not be fully complete.\u003c/p\u003e\n\u003ch1\u003eSciPy 1.15.2 Release Notes\u003c/h1\u003e\n\u003cp\u003eSciPy \u003ccode\u003e1.15.2\u003c/code\u003e is a bug-fix release with no new features\ncompared to \u003ccode\u003e1.15.1\u003c/code\u003e. Free-threaded Python \u003ccode\u003e3.13\u003c/code\u003e wheels\nfor Linux ARM platform are available on PyPI starting with\nthis release.\u003c/p\u003e\n\u003cp\u003eAuthors\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/scipy/scipy/commit/e29dcb65a2040f04819b426a04b60d44a8f69c04\"\u003e\u003ccode\u003ee29dcb6\u003c/code\u003e\u003c/a\u003e REL: 1.15.3 rel commit [wheel build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/61e6aa16d8868097256ac4413cad97ab7cd120fd\"\u003e\u003ccode\u003e61e6aa1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/scipy/scipy/issues/22840\"\u003e#22840\u003c/a\u003e from tylerjereddy/treddy_1.15.3_backports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/18c4ca8cb6b4e5335e460eca3128efe2e7e8b86b\"\u003e\u003ccode\u003e18c4ca8\u003c/code\u003e\u003c/a\u003e MAINT: PR 22840 wheel build [wheel build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/bd0f132b37f5eaab79b50eefbe2139c0f1bde443\"\u003e\u003ccode\u003ebd0f132\u003c/code\u003e\u003c/a\u003e MAINT: PR 22840 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/033b13880993f49e485f8ba763fbb3847ff4b801\"\u003e\u003ccode\u003e033b138\u003c/code\u003e\u003c/a\u003e MAINT: PR 22840 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/7a283ccc33378001f10a29fdece5d8f5f6c090d8\"\u003e\u003ccode\u003e7a283cc\u003c/code\u003e\u003c/a\u003e DOC: PR 22840 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/3d1ea405a3d45c438583740dd6391316d17d8bc6\"\u003e\u003ccode\u003e3d1ea40\u003c/code\u003e\u003c/a\u003e BUG: spatial.HalfspaceIntersection: raise on non-feasible half space (\u003ca href=\"https://redirect.github.com/scipy/scipy/issues/20035\"\u003e#20035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/d01b9843c01e55076b0426c5d5a3c1a439d1d7e5\"\u003e\u003ccode\u003ed01b984\u003c/code\u003e\u003c/a\u003e BUG: ndimage.median_filter: fix segfault when using \u003ccode\u003emode='mirror'\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/scipy/scipy/issues/22608\"\u003e#22608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/0879108c5f7e7f74d3b41ed1edcf8db85b5a8f02\"\u003e\u003ccode\u003e0879108\u003c/code\u003e\u003c/a\u003e MAINT: special.logsumexp: fix bug when weight of largest magnitude component ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/9b3b2d81374475495d9c6c550aaab96330dfa913\"\u003e\u003ccode\u003e9b3b2d8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/scipy/scipy/issues/22869\"\u003e#22869\u003c/a\u003e from smurfix/main\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scipy/scipy/compare/v1.14.1...v1.15.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `astropy` from 6.1.5 to 6.1.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astropy/astropy/releases\"\u003eastropy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.1.7\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.astropy.org/en/v6.1.7/changelog.html\"\u003ehttps://docs.astropy.org/en/v6.1.7/changelog.html\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/astropy/astropy/commit/5692198e18a6cef1a367979dba1d0214185a0be1\"\u003e\u003ccode\u003e5692198\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/astropy/astropy/issues/17431\"\u003e#17431\u003c/a\u003e from astrofrog/v6.1.7-changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy/commit/2106f39b7ee24654726d708e797bf3cf255e4b09\"\u003e\u003ccode\u003e2106f39\u003c/code\u003e\u003c/a\u003e Finalizing changelog for v6.1.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy/commit/044a150d8b278f59a2c8de60257ba50c5beffd88\"\u003e\u003ccode\u003e044a150\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/astropy/astropy/issues/17411\"\u003e#17411\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-17410-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy/commit/6d263f8b45b39e6bccb3b17eb9c6c04023ff05fa\"\u003e\u003ccode\u003e6d263f8\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/astropy/astropy/issues/17410\"\u003e#17410\u003c/a\u003e: Add sigma_clip tests for MaskedArray masks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy/commit/5328b704354f3c864dc9d66313cf3e026ffbb427\"\u003e\u003ccode\u003e5328b70\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/astropy/astropy/issues/17407\"\u003e#17407\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-17402-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy/commit/f5cb2dcea980e3d134ff051d0d26724484f6d72c\"\u003e\u003ccode\u003ef5cb2dc\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/astropy/astropy/issues/17402\"\u003e#17402\u003c/a\u003e: Fix loss of mask sigma clipping (issue \u003ca href=\"https://redirect.github.com/astropy/astropy/issues/17401\"\u003e#17401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy/commit/99241d3dc7323a506de99c1aebbba8ff0d472371\"\u003e\u003ccode\u003e99241d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/astropy/astropy/issues/17396\"\u003e#17396\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-17394-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy/commit/9444181727e9fdea17d00028ac040d9f6dcd2965\"\u003e\u003ccode\u003e9444181\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/astropy/astropy/issues/17394\"\u003e#17394\u003c/a\u003e: Fix typos in quantity tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy/commit/d4e571a7f2cde8103a3da0669a9f3d10cc18b571\"\u003e\u003ccode\u003ed4e571a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/astropy/astropy/issues/17370\"\u003e#17370\u003c/a\u003e from astrofrog/v6.1.6-changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy/commit/5d2ff642e5431782caa206630f121b79cdb8fa60\"\u003e\u003ccode\u003e5d2ff64\u003c/code\u003e\u003c/a\u003e Finalizing changelog for v6.1.6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astropy/astropy/compare/v6.1.5...v6.1.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml` from 5.2.2 to 5.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lxml/lxml/releases\"\u003elxml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elxml-5.4.0\u003c/h2\u003e\n\u003ch1\u003e5.4.0 (2025-04-22)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLP#2107279: Binary wheels use libxml2 2.13.8 and libxslt 1.1.43 to resolve several CVEs.\n(Binary wheels for Windows continue to use a patched libxml2 2.11.9 and libxslt 1.1.39.)\nIssue found by Anatoly Katyushin, see \u003ca href=\"https://bugs.launchpad.net/lxml/+bug/2107279\"\u003ehttps://bugs.launchpad.net/lxml/+bug/2107279\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003elxml-5.3.2\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003elxml-5.3.1\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003elxml-5.3.0\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\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/lxml/lxml/blob/master/CHANGES.txt\"\u003elxml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.4.0 (2025-04-22)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLP#2107279: Binary wheels use libxml2 2.13.8 and libxslt 1.1.43 to resolve several CVEs.\n(Binary wheels for Windows continue to use a patched libxml2 2.11.9 and libxslt 1.1.39.)\nIssue found by Anatoly Katyushin.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e5.3.2 (2025-04-05)\u003c/h1\u003e\n\u003cp\u003eThis release resolves CVE-2025-24928 as described in\n\u003ca href=\"https://gitlab.gnome.org/GNOME/libxml2/-/issues/847\"\u003ehttps://gitlab.gnome.org/GNOME/libxml2/-/issues/847\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBinary wheels use libxml2 2.12.10 and libxslt 1.1.42.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBinary wheels for Windows use a patched libxml2 2.11.9 and libxslt 1.1.39.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e5.3.1 (2025-02-09)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eGH#440: Some tests were adapted for libxml2 2.14.0.\nPatch by Nick Wellnhofer.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLP#2097175: \u003ccode\u003eDTD(external_id=\u0026quot;…\u0026quot;)\u003c/code\u003e erroneously required a byte string as ID value.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eGH#450: \u003ccode\u003eiterparse()\u003c/code\u003e internally triggered the `DeprecationWarning`` added in lxml 5.3.0 when parsing HTML.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eGH#442: Binary wheels for macOS no longer use the linker flag \u003ccode\u003e-flat_namespace\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e5.3.0 (2024-08-10)\u003c/h1\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/6e76d57af83d59d7a0456fd5889e392a7b366b43\"\u003e\u003ccode\u003e6e76d57\u003c/code\u003e\u003c/a\u003e Build: Exclude slow Py3.9 wheel builds for s390/ppc and Py3.7 for ARM64.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/ee10c02bb771be22e6e3c36a90f3b66e5ce87752\"\u003e\u003ccode\u003eee10c02\u003c/code\u003e\u003c/a\u003e Prepare release of lxml 5.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/0e4f3c33723bb2b4d9565046a24a896c36fb5602\"\u003e\u003ccode\u003e0e4f3c3\u003c/code\u003e\u003c/a\u003e Prepare release of lxml 5.3.3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/b4703fc2e74296a1bcb44ba050d856ceab21d87f\"\u003e\u003ccode\u003eb4703fc\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/db723bb3b9140f9f313f4b638790a69e82eae2a3\"\u003e\u003ccode\u003edb723bb\u003c/code\u003e\u003c/a\u003e Build: Use libxslt 1.1.43 instead of 1.1.42 to resolve some CVEs.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/a664877bde77d4d649fb8475e8bfb2bc2693ac26\"\u003e\u003ccode\u003ea664877\u003c/code\u003e\u003c/a\u003e Build: Use libxml2 2.13.8 instead of 2.12.x to resolve some CVEs.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/df4633e7a919f0a4d42df310f17477b5ab51e403\"\u003e\u003ccode\u003edf4633e\u003c/code\u003e\u003c/a\u003e Remove appveyor usage.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/820db896be83f72f1cb653981362c682c8fc0d1f\"\u003e\u003ccode\u003e820db89\u003c/code\u003e\u003c/a\u003e CI: Allow Py3.14 jobs to fail.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/93ad02aad6caa1a7a4b2f595c2973644709cb5f9\"\u003e\u003ccode\u003e93ad02a\u003c/code\u003e\u003c/a\u003e docs: Add a note about C compiler installation to error message (\u003ca href=\"https://redirect.github.com/lxml/lxml/issues/454\"\u003eGH-454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/16878dac7075903c7b6e412f5f770ce43e942509\"\u003e\u003ccode\u003e16878da\u003c/code\u003e\u003c/a\u003e Add some hints to the documentation on how to build lxml (\u003ca href=\"https://redirect.github.com/lxml/lxml/issues/453\"\u003eGH-453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lxml/lxml/compare/lxml-5.2.2...lxml-5.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `more-itertools` from 10.2.0 to 10.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/more-itertools/more-itertools/releases\"\u003emore-itertools's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 10.7.0\u003c/h2\u003e\n\u003cp\u003eSee the change log \u003ca href=\"https://github.com/more-itertools/more-itertools/blob/28ab73678adc39eacc2610bd67c1c4a37def6c28/docs/versions.rst#L8\"\u003ehere\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003eVersion 10.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNew functions:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eis_prime\u003c/code\u003e and \u003ccode\u003enth_prime\u003c/code\u003e were added (thanks to JamesParrott and rhettinger)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eloops\u003c/code\u003e was added (thanks to rhettinger)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanges to existing functions:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efactor\u003c/code\u003e was optimized to handle larger inputs and use less memory (thanks to rhettinger)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003espy\u003c/code\u003e was optimized to enable nested calls (thanks to rhettinger)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epolynomial_from_roots\u003c/code\u003e was made non-recursive and able to handle larger numbers of roots (thanks to pochmann3 and rhettinger)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eis_sorted\u003c/code\u003e now only relies on less than comparisons (thanks to rhettinger)\u003c/li\u003e\n\u003cli\u003eThe docstring for \u003ccode\u003eouter_product\u003c/code\u003e was improved (thanks to rhettinger)\u003c/li\u003e\n\u003cli\u003eThe type annotations for \u003ccode\u003esample\u003c/code\u003e were improved (thanks to rhettinger)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOther changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.13 is officially supported. Python 3.8 is no longer officially supported. (thanks to hugovk, JamesParrott, and stankudrow)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emypy\u003c/code\u003e checks were fixed (thanks to JamesParrott)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev10.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize all_equal recipe by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/899\"\u003emore-itertools/more-itertools#899\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReduce groupby.\u003cstrong\u003enext\u003c/strong\u003e calls in all_equal by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/903\"\u003emore-itertools/more-itertools#903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix types.UnionType by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/905\"\u003emore-itertools/more-itertools#905\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion 10.5.0 by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/906\"\u003emore-itertools/more-itertools#906\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/more-itertools/more-itertools/compare/v10.4.0...v10.5.0\"\u003ehttps://github.com/more-itertools/more-itertools/compare/v10.4.0...v10.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 10.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIssue 854: sample improvements by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/855\"\u003emore-itertools/more-itertools#855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 858: Use chain and starmap in run_length.decode by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/861\"\u003emore-itertools/more-itertools#861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 859: Update totient recipe by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/860\"\u003emore-itertools/more-itertools#860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDistinct permutations of incomparable items by \u003ca href=\"https://github.com/JamesParrott\"\u003e\u003ccode\u003e@​JamesParrott\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/834\"\u003emore-itertools/more-itertools#834\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify seekable.relative_seek behavior by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/863\"\u003emore-itertools/more-itertools#863\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 864: Improve _sample_unweighted by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/865\"\u003emore-itertools/more-itertools#865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse log1p for _sample_unweighted by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/868\"\u003emore-itertools/more-itertools#868\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 862: change relative_seek() behaviour by \u003ca href=\"https://github.com/dkrikun\"\u003e\u003ccode\u003e@​dkrikun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/866\"\u003emore-itertools/more-itertools#866\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 876: is_sorted clarifications by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/877\"\u003emore-itertools/more-itertools#877\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 870: counts parameter for sample by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/875\"\u003emore-itertools/more-itertools#875\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 869: Add a steps argument to circular_shifts by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/874\"\u003emore-itertools/more-itertools#874\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 871: Add a fast path for sliding_window by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/873\"\u003emore-itertools/more-itertools#873\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etype annotation of \u003ccode\u003ewindowed_complete\u003c/code\u003e corrected by \u003ca href=\"https://github.com/m472\"\u003e\u003ccode\u003e@​m472\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/881\"\u003emore-itertools/more-itertools#881\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Docs] Fix strictly_n missing the n parameter by \u003ca href=\"https://github.com/fakuivan\"\u003e\u003ccode\u003e@​fakuivan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/886\"\u003emore-itertools/more-itertools#886\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStandardize type hints for isinstance's second argument by \u003ca href=\"https://github.com/jbosboom\"\u003e\u003ccode\u003e@​jbosboom\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/887\"\u003emore-itertools/more-itertools#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 883: change type hint by \u003ca href=\"https://github.com/akisatoon1\"\u003e\u003ccode\u003e@​akisatoon1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/884\"\u003emore-itertools/more-itertools#884\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd type overloads for \u003ccode\u003ezip_broadcast\u003c/code\u003e by \u003ca href=\"https://github.com/Pandede\"\u003e\u003ccode\u003e@​Pandede\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/888\"\u003emore-itertools/more-itertools#888\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 889: Optimize triplewise by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/891\"\u003emore-itertools/more-itertools#891\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/more-itertools/more-itertools/commit/28ab73678adc39eacc2610bd67c1c4a37def6c28\"\u003e\u003ccode\u003e28ab736\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/issues/977\"\u003e#977\u003c/a\u003e from more-itertools/version-10.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/4c1a0c7af1c433f67a5ba999d5ef019577c5bc31\"\u003e\u003ccode\u003e4c1a0c7\u003c/code\u003e\u003c/a\u003e Bump version: 10.6.0 → 10.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/f2d5c9fbb6c995132e820e001ff5591cfea99329\"\u003e\u003ccode\u003ef2d5c9f\u003c/code\u003e\u003c/a\u003e Late-breaking changes for 10.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/5d5a9e6190c5372625a3bba9ba9a1f5b1b54860d\"\u003e\u003ccode\u003e5d5a9e6\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into version-10.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/8988de66332ef26f0873ed80f2f466f525b46b0a\"\u003e\u003ccode\u003e8988de6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/issues/975\"\u003e#975\u003c/a\u003e from rhettinger/groupby_transform_overloads\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/c925c2eb8ffc673544dca298bc3670e6c797c93a\"\u003e\u003ccode\u003ec925c2e\u003c/code\u003e\u003c/a\u003e Fix inner Iterable types as well\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/cc38c748465cc14362bea3daac54009dc892d364\"\u003e\u003ccode\u003ecc38c74\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/issues/974\"\u003e#974\u003c/a\u003e: Inconsistent \u003ca href=\"https://github.com/overload\"\u003e\u003ccode\u003e@​overload\u003c/code\u003e\u003c/a\u003e signatures\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/3742de96f864666a0360dfcb20ee645491bb6494\"\u003e\u003ccode\u003e3742de9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/issues/972\"\u003e#972\u003c/a\u003e from ricbit/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/c904030580fe25ff430b5129900b5d622f9952e1\"\u003e\u003ccode\u003ec904030\u003c/code\u003e\u003c/a\u003e Fix some typos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/6d0fe022dc744e785026c63977190d6ba5d164e2\"\u003e\u003ccode\u003e6d0fe02\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/issues/971\"\u003e#971\u003c/a\u003e from rhettinger/small_doc_edits\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/more-itertools/more-itertools/compare/v10.2.0...v10.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.66.5 to 4.67.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.67.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix \u003ccode\u003egui\u003c/code\u003e (\u003ccode\u003ematplotlib\u003c/code\u003e syntax) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1629\"\u003e#1629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc test \u0026amp; framework updates\n\u003cul\u003e\n\u003cli\u003ebump \u003ccode\u003epytest-asyncio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1630\"\u003e#1630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003ecodecov\u003c/code\u003e rate limit\u003c/li\u003e\n\u003cli\u003efix pybuild\u003c/li\u003e\n\u003cli\u003esync dependencies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.67.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.discord\u003c/code\u003e: replace \u003ccode\u003edisco-py\u003c/code\u003e with \u003ccode\u003erequests\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1536\"\u003e#1536\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.66.6 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ecli: zip-safe \u003ccode\u003e--manpath\u003c/code\u003e, \u003ccode\u003e--comppath\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1627\"\u003e#1627\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc framework updates (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1627\"\u003e#1627\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003efix \u003ccode\u003epytest\u003c/code\u003e \u003ccode\u003eDeprecationWarning\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003esnapcraft\u003c/code\u003e build\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003enbval\u003c/code\u003e \u003ccode\u003eDeprecationWarning\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eupdate \u0026amp; tidy workflows\u003c/li\u003e\n\u003cli\u003ebump pre-commit\u003c/li\u003e\n\u003cli\u003edocs: update URLs\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/0ed5d7f18fa3153834cbac0aa57e8092b217cc16\"\u003e\u003ccode\u003e0ed5d7f\u003c/code\u003e\u003c/a\u003e bump version, merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1629\"\u003e#1629\u003c/a\u003e from tqdm/fix-gui\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/a2d5f1c9d1cbdbcf56f52dc4365ea4124e3e33f7\"\u003e\u003ccode\u003ea2d5f1c\u003c/code\u003e\u003c/a\u003e tests: fix codecov rate limit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/cac7150d7c8a650c7e76004cd7f8643990932c7f\"\u003e\u003ccode\u003ecac7150\u003c/code\u003e\u003c/a\u003e tests: bump pytest-asyncio\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/6338f6216996918fdc9c9a73bf095acac54ce0bb\"\u003e\u003ccode\u003e6338f62\u003c/code\u003e\u003c/a\u003e deps: fix pybuild\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/342b15ed68ae7c5ec1082cadb1b563c7dfde610f\"\u003e\u003ccode\u003e342b15e\u003c/code\u003e\u003c/a\u003e tests: sync deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c66458d9ac2ad096937406f79d105af891cee6e7\"\u003e\u003ccode\u003ec66458d\u003c/code\u003e\u003c/a\u003e gui: fix matplotlib\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/35a6ee9a4527bab5c0c7234531269e0c7fd0f2fd\"\u003e\u003ccode\u003e35a6ee9\u003c/code\u003e\u003c/a\u003e bump version, merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1536\"\u003e#1536\u003c/a\u003e from guigoruiz1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/8aa9470e485a90679936d3781a4f953cf5afa8f4\"\u003e\u003ccode\u003e8aa9470\u003c/code\u003e\u003c/a\u003e add discord requests dep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/1db24b4ff442c43752cf56a55b1782998c76801c\"\u003e\u003ccode\u003e1db24b4\u003c/code\u003e\u003c/a\u003e better user-agent\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/61365d8321ae4ca433d2c6cda770a73a8e0e62cb\"\u003e\u003ccode\u003e61365d8\u003c/code\u003e\u003c/a\u003e handle rate limit\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.66.5...v4.67.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 23.2 to 25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRe-add a test for Unicode file name parsing by \u003ca href=\"https://github.com/Siddhesh-Agarwal\"\u003e\u003ccode\u003e@​Siddhesh-Agarwal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/863\"\u003epypa/packaging#863\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to ruff 0.9.1 by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/865\"\u003epypa/packaging#865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for PEP 738 Android tags by \u003ca href=\"https://github.com/mhsmith\"\u003e\u003ccode\u003e@​mhsmith\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/880\"\u003epypa/packaging#880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(markers): support 'extras' and 'dependency_groups' markers by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/888\"\u003epypa/packaging#888\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/Siddhesh-Agarwal\"\u003e\u003ccode\u003e@​Siddhesh-Agarwal\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/863\"\u003epypa/packaging#863\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mhsmith\"\u003e\u003ccode\u003e@​mhsmith\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/880\"\u003epypa/packaging#880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/888\"\u003epypa/packaging#888\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/packaging/compare/24.2...25.0\"\u003ehttps://github.com/pypa/packaging/compare/24.2...25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e24.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe source is auto-formatted with ruff, not black by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/798\"\u003epypa/packaging#798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group across 1 directory with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/813\"\u003epypa/packaging#813\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApply ruff rules (RUF) by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/800\"\u003epypa/packaging#800\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in Version \u003ccode\u003e__str__\u003c/code\u003e by \u003ca href=\"https://github.com/aryanpingle\"\u003e\u003ccode\u003e@​aryanpingle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/817\"\u003epypa/packaging#817\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/819\"\u003epypa/packaging#819\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGet rid of duplicate test cases by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/821\"\u003epypa/packaging#821\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix doc for canonicalize_version and a typo in a docstring by \u003ca href=\"https://github.com/Laurent-Dx\"\u003e\u003ccode\u003e@​Laurent-Dx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/801\"\u003epypa/packaging#801\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: public/base_version comparison by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/818\"\u003epypa/packaging#818\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApply ruff/bugbear rules (B) by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/787\"\u003epypa/packaging#787\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApply ruff/pyupgrade rules (UP) by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/786\"\u003epypa/packaging#786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a changelog entry for dropping Python 3.7 support by \u003ca href=\"https://github.com/alexwlchan\"\u003e\u003ccode\u003e@​alexwlchan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/824\"\u003epypa/packaging#824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePatch python_full_version unconditionally by \u003ca href=\"https://github.com/jaraco\"\u003e\u003ccode\u003e@​jaraco\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/825\"\u003epypa/packaging#825\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor canonicalize_version by \u003ca href=\"https://github.com/jaraco\"\u003e\u003ccode\u003e@​jaraco\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/793\"\u003epypa/packaging#793\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow creating a SpecifierSet from a list of specifiers by \u003ca href=\"https://github.com/pfmoore\"\u003e\u003ccode\u003e@​pfmoore\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/777\"\u003epypa/packaging#777\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix uninformative error message by \u003ca href=\"https://github.com/abravalheri\"\u003e\u003ccode\u003e@​abravalheri\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/830\"\u003epypa/packaging#830\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix prerelease detection for \u003ccode\u003e\u0026gt;\u003c/code\u003e and \u003ccode\u003e\u0026lt;\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/794\"\u003epypa/packaging#794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group across 1 directory with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/839\"\u003epypa/packaging#839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for PEP 730 iOS tags. by \u003ca href=\"https://github.com/freakboy3742\"\u003e\u003ccode\u003e@​freakboy3742\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/832\"\u003epypa/packaging#832\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate the changelog to reflect 24.1 changes by \u003ca href=\"https://github.com/pradyunsg\"\u003e\u003ccode\u003e@​pradyunsg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/840\"\u003epypa/packaging#840\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention updating changelog in release process by \u003ca href=\"https://github.com/pradyunsg\"\u003e\u003ccode\u003e@​pradyunsg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/841\"\u003epypa/packaging#841\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a comment as to why \u003ccode\u003eMetadata.name\u003c/code\u003e isn't normalized by \u003ca href=\"https://github.com/brettcannon\"\u003e\u003ccode\u003e@​brettcannon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/842\"\u003epypa/packaging#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse !r formatter for error messages with filenames. by \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/844\"\u003epypa/packaging#844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 639: Implement License-Expression and License-File by \u003ca href=\"https://github.com/ewdurbin\"\u003e\u003ccode\u003e@​ewdurbin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/828\"\u003epypa/packaging#828\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/852\"\u003epypa/packaging#852\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to latest mypy by \u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/853\"\u003epypa/packaging#853\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExtraneous quotes by \u003ca href=\"https://github.com/ewdurbin\"\u003e\u003ccode\u003e@​ewdurbin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/848\"\u003epypa/packaging#848\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aryanpingle\"\u003e\u003ccode\u003e@​aryanpingle\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/817\"\u003epypa/packaging#817\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Laurent-Dx\"\u003e\u003ccode\u003e@​Laurent-Dx\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/801\"\u003epypa/packaging#801\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexwlchan\"\u003e\u003ccode\u003e@​alexwlchan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/824\"\u003epypa/packaging#824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco\"\u003e\u003ccode\u003e@​jaraco\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/825\"\u003epypa/packaging#825\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/794\"\u003epypa/packaging#794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/freakboy3742\"\u003e\u003ccode\u003e@​freakboy3742\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/832\"\u003epypa/packaging#832\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e25.0 - 2025-04-19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* PEP 751: Add support for ``extras`` and ``dependency_groups`` markers. (:issue:`885`)\n* PEP 738: Add support for Android platform tags. (:issue:`880`)\n\u003cp\u003e24.2 - 2024-11-08\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 639: Implement License-Expression and License-File (:issue:\u003ccode\u003e828\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e!r\u003c/code\u003e formatter for error messages with filenames (:issue:\u003ccode\u003e844\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for PEP 730 iOS tags (:issue:\u003ccode\u003e832\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix prerelease detection for \u003ccode\u003e\u0026gt;\u003c/code\u003e and \u003ccode\u003e\u0026lt;\u003c/code\u003e (:issue:\u003ccode\u003e794\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix uninformative error message (:issue:\u003ccode\u003e830\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003ecanonicalize_version\u003c/code\u003e (:issue:\u003ccode\u003e793\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePatch python_full_version unconditionally (:issue:\u003ccode\u003e825\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix doc for \u003ccode\u003ecanonicalize_version\u003c/code\u003e to mention \u003ccode\u003estrip_trailing_zero\u003c/code\u003e and a typo in a docstring (:issue:\u003ccode\u003e801\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix typo in Version \u003ccode\u003e__str__\u003c/code\u003e (:issue:\u003ccode\u003e817\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport creating a \u003ccode\u003eSpecifierSet\u003c/code\u003e from an iterable of \u003ccode\u003eSpecifier\u003c/code\u003e objects (:issue:\u003ccode\u003e775\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e24.1 - 2024-06-10\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Document ``markers.default_environment()`` (:issue:`753`).\n* Add support for Python 3.13 (:issue:`783`).\n* Modernise type annotations (:issue:`785`).\n* Work around ``platform.python_version()`` returning non PEP 440 compliant version\n  for non-tagged CPython builds (:issue:`802`).\n\u003cp\u003e24.0 - 2024-03-10\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDo specifier matching correctly when the specifier contains an epoch number\nand has more components than the version (:issue:\u003ccode\u003e683\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport the experimental \u003ccode\u003e--disable-gil\u003c/code\u003e builds in packaging.tags\n(:issue:\u003ccode\u003e727\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eBREAKING: Make optional \u003ccode\u003emetadata.Metadata\u003c/code\u003e attributes default to \u003ccode\u003eNone\u003c/code\u003e (:issue:\u003ccode\u003e733\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix errors when trying to access the \u003ccode\u003edescription_content_type\u003c/code\u003e, \u003ccode\u003ekeywords\u003c/code\u003e,\nand \u003ccode\u003erequires_python\u003c/code\u003e attributes on \u003ccode\u003emetadata.Metadata\u003c/code\u003e when those values\nhave not been provided (:issue:\u003ccode\u003e733\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug preventing the use of the built in \u003ccode\u003eExceptionGroup\u003c/code\u003e on versions of\nPython that support it (:issue:\u003ccode\u003e725\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/pypa/packaging/commit/f58537628042c7f29780b9d33f31597e7fc9d664\"\u003e\u003ccode\u003ef585376\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/600ecea15b2388037b8dc94883504ca612947576\"\u003e\u003ccode\u003e600ecea\u003c/code\u003e\u003c/a\u003e Add changelog entries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3910129009b25dd1aa1fe32e644bc891188c56fe\"\u003e\u003ccode\u003e3910129\u003c/code\u003e\u003c/a\u003e support 'extras' and 'dependency_groups' markers (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/888\"\u003e#888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/8e49b4373731bffb110c9583e64ad802cb67c7ea\"\u003e\u003ccode\u003e8e49b43\u003c/code\u003e\u003c/a\u003e Add support for PEP 738 Android tags (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/e624d8edfaa28865de7b5a7da8bd59fd410e5331\"\u003e\u003ccode\u003ee624d8e\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/886\"\u003e#886\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/71f38d872a6e88b28da9d1b270f8512475bc90d4\"\u003e\u003ccode\u003e71f38d8\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/878\"\u003e#878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9b4922dd3c26c8522d716bec79d7e0ed408631c1\"\u003e\u003ccode\u003e9b4922d\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/870\"\u003e#870\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/8510bd9d3bab5571974202ec85f6ef7b0359bfaf\"\u003e\u003ccode\u003e8510bd9\u003c/code\u003e\u003c/a\u003e Upgrade to ruff 0.9.1 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/865\"\u003e#865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9375ec2eff48257967c97d331b9a76019e95bdb0\"\u003e\u003ccode\u003e9375ec2\u003c/code\u003e\u003c/a\u003e Re-add tests for Unicode file name parsing (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/863\"\u003e#863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/2256ed4ac261309a09daa04cc801abd7cff2e6f0\"\u003e\u003ccode\u003e2256ed4\u003c/code\u003e\u003c/a\u003e Bump the github-actions group across 1 directory with 2 updates (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/864\"\u003e#864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/23.2...25.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 3.7.1 to 4.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded async support for temporary file handling (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/344\"\u003e#344\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded 4 new fixtures for the AnyIO \u003ccode\u003epytest\u003c/code\u003e plugin:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efree_tcp_port_factory\u003c/code\u003e: session scoped fixture returning a callable that generates unused TCP port numbers\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efree_udp_port_factory\u003c/code\u003e: session scoped fixture returning a callable that generates unused UDP port numbers\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efree_tcp_port\u003c/code\u003e: function scoped fixture that invokes the \u003ccode\u003efree_tcp_port_factory\u003c/code\u003e fixture to generate a free TCP port number\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efree_udp_port\u003c/code\u003e: function scoped fixture that invokes the \u003ccode\u003efree_udp_port_factory\u003c/code\u003e fixture to generate a free UDP port number\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003estdin\u003c/code\u003e argument to \u003ccode\u003eanyio.run_process()\u003c/code\u003e akin to what \u003ccode\u003eanyio.open_process()\u003c/code\u003e, \u003ccode\u003easyncio.create_subprocess()\u003c/code\u003e, \u003ccode\u003etrio.run_process()\u003c/code\u003e, and \u003ccode\u003esubprocess.run()\u003c/code\u003e already accept (PR by \u003ca href=\"https://github.com/jmehnle\"\u003e\u003ccode\u003e@​jmehnle\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003einfo\u003c/code\u003e property to \u003ccode\u003eanyio.Path\u003c/code\u003e on Python 3.14\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eanyio.getaddrinfo()\u003c/code\u003e to ignore (invalid) IPv6 name resolution results when IPv6 support is disabled in Python\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eEndOfStream\u003c/code\u003e raised from \u003ccode\u003eMemoryObjectReceiveStream.receive()\u003c/code\u003e to leave out the \u003ccode\u003eAttributeError\u003c/code\u003e from the exception chain which was merely an implementation detail and caused some confusion\u003c/li\u003e\n\u003cli\u003eFixed traceback formatting growing quadratically with level of \u003ccode\u003eTaskGroup\u003c/code\u003e nesting on asyncio due to exception chaining when raising \u003ccode\u003eExceptionGroups\u003c/code\u003e in \u003ccode\u003eTaskGroup.__aexit__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/863\"\u003e#863\u003c/a\u003e; PR by \u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.Path.iterdir()\u003c/code\u003e making a blocking call in Python 3.13 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/873\"\u003e#873\u003c/a\u003e; PR by \u003ca href=\"https://github.com/cbornet\"\u003e\u003ccode\u003e@​cbornet\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003econnect_tcp()\u003c/code\u003e producing cyclic references in tracebacks when raising exceptions (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/809\"\u003e#809\u003c/a\u003e; PR by \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.to_thread.run_sync()\u003c/code\u003e needlessly holding on to references of the context, function, arguments and others until the next work item on asyncio (PR by \u003ca href=\"https://github.com/Wankupi\"\u003e\u003ccode\u003e@​Wankupi\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003cstrong\u003eexperimental\u003c/strong\u003e support for running functions in subinterpreters on Python 3.13 and later\u003c/li\u003e\n\u003cli\u003eAdded support for the \u003ccode\u003ecopy()\u003c/code\u003e, \u003ccode\u003ecopy_into()\u003c/code\u003e, \u003ccode\u003emove()\u003c/code\u003e and \u003ccode\u003emove_into()\u003c/code\u003e methods in \u003ccode\u003eanyio.Path\u003c/code\u003e, available in Python 3.14\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eTaskGroup\u003c/code\u003e on asyncio to always spawn tasks non-eagerly, even if using a task factory created via \u003ccode\u003easyncio.create_eager_task_factory()\u003c/code\u003e, to preserve expected Trio-like task scheduling semantics (PR by \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConfigure \u003ccode\u003eSO_RCVBUF\u003c/code\u003e, \u003ccode\u003eSO_SNDBUF\u003c/code\u003e and \u003ccode\u003eTCP_NODELAY\u003c/code\u003e on the selector thread waker socket pair (this should improve the performance of \u003ccode\u003ewait_readable()\u003c/code\u003e and \u003ccode\u003ewait_writable()\u003c/code\u003e when using the \u003ccode\u003eProactorEventLoop\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/836\"\u003e#836\u003c/a\u003e; PR by \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eAssertionError\u003c/code\u003e when using \u003ccode\u003enest-asyncio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/840\"\u003e#840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed return type annotation of various context managers' \u003ccode\u003e__exit__\u003c/code\u003e method (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/847\"\u003e#847\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Enegg\"\u003e\u003ccode\u003e@​Enegg\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated \u003ccode\u003eTaskGroup\u003c/code\u003e to work with asyncio's eager task factories (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/764\"\u003e#764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003ewait_readable()\u003c/code\u003e and \u003ccode\u003ewait_writable()\u003c/code\u003e functions which will accept an object with a \u003ccode\u003e.fileno()\u003c/code\u003e method or an integer handle, and deprecated their now obsolete versions (\u003ccode\u003ewait_socket_readable()\u003c/code\u003e and \u003ccode\u003ewait_socket_writable()\u003c/code\u003e) (PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eEventAdapter\u003c/code\u003e (an \u003ccode\u003eEvent\u003c/code\u003e with no bound async backend) to allow \u003ccode\u003eset()\u003c/code\u003e to work even before an async backend is bound to it (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/819\"\u003e#819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003ewait_readable()\u003c/code\u003e and \u003ccode\u003ewait_writable()\u003c/code\u003e on \u003ccode\u003eProactorEventLoop\u003c/code\u003e (used on asyncio + Windows by default)\u003c/li\u003e\n\u003cli\u003eFixed a misleading \u003ccode\u003eValueError\u003c/code\u003e in the context of DNS failures (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/815\"\u003e#815\u003c/a\u003e; PR by \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the return type annotations of \u003ccode\u003ereadinto()\u003c/code\u003e and \u003ccode\u003ereadinto1()\u003c/code\u003e methods in the \u003ccode\u003eanyio.AsyncFile\u003c/code\u003e class (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/825\"\u003e#825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eTaskInfo.has_pending_cancellation()\u003c/code\u003e on asyncio returning false positives in cleanup code on Python \u0026gt;= 3.11 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/832\"\u003e#832\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed cancelled cancel scopes on asyncio calling \u003ccode\u003easyncio.Task.uncancel\u003c/code\u003e when propagating a \u003ccode\u003eCancelledError\u003c/code\u003e on exit to a cancelled parent scope (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/790\"\u003e#790\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.6.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed regression caused by (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/807\"\u003e#807\u003c/a\u003e) that prevented the use of parametrized async fixtures\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.6.1\u003c/h2\u003e\n\u003cp\u003eThis release contains all the changes from both v4.5.1 and v4.6.0, plus:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed TaskGroup and CancelScope producing cyclic references in tracebacks when raising exceptions (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/806\"\u003e#806\u003c/a\u003e) (PR by \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.8 (as \u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/698\"\u003e#698\u003c/a\u003e cannot be resolved without cancel message support)\u003c/li\u003e\n\u003cli\u003eFixed 100% CPU use on asyncio while waiting for an exiting task group to finish while said task group is within a cancelled cancel scope (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/695\"\u003e#695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed cancel scopes on asyncio not propagating \u003ccode\u003eCancelledError\u003c/code\u003e on exit when the enclosing cancel scope has been effectively cancelled (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/698\"\u003e#698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed asyncio task groups not yielding control to the event loop at exit if there were no child tasks to wait on\u003c/li\u003e\n\u003cli\u003eFixed inconsistent task uncancellation with asyncio cancel scopes belonging to a task group when said task group has child tasks running\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.5.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/blob/master/docs/versionhistory.rst\"\u003eanyio's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion history\u003c/h1\u003e\n\u003cp\u003eThis library adheres to \u003ccode\u003eSemantic Versioning 2.0 \u0026lt;http://semver.org/\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eUNRELEASED\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a hierarchy of connectable stream classes for transparently connecting to\nvarious remote or local endpoints for exchanging bytes or objects\u003c/li\u003e\n\u003cli\u003eAdded context manager mix-in classes (\u003ccode\u003eanyio.ContextManagerMixin\u003c/code\u003e and\n\u003ccode\u003eanyio.AsyncContextManagerMixin\u003c/code\u003e) to help write classes that embed other context\nmanagers, particularly cancel scopes or task groups\n(\u003ccode\u003e[#905](https://github.com/agronholm/anyio/issues/905) \u0026lt;https://github.com/agronholm/anyio/pull/905\u0026gt;\u003c/code\u003e_; PR by by \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e and\n\u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the ability to specify the thread name in \u003ccode\u003estart_blocking_portal()\u003c/code\u003e\n(\u003ccode\u003e[#818](https://github.com/agronholm/anyio/issues/818) \u0026lt;https://github.com/agronholm/anyio/issues/818\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eanyio.notify_closing\u003c/code\u003e to allow waking \u003ccode\u003eanyio.wait_readable\u003c/code\u003e\nand \u003ccode\u003eanyio.wait_writable\u003c/code\u003e before closing a socket. Among other things,\nthis prevents an OSError on the \u003ccode\u003eProactorEventLoop\u003c/code\u003e.\n(\u003ccode\u003e[#896](https://github.com/agronholm/anyio/issues/896) \u0026lt;https://github.com/agronholm/anyio/pull/896\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.Path.copy()\u003c/code\u003e and \u003ccode\u003eanyio.Path.copy_into()\u003c/code\u003e failing on Python 3.14.0a7\u003c/li\u003e\n\u003cli\u003eFixed return annotation of \u003ccode\u003e__aexit__\u003c/code\u003e on async context managers. CMs which can\nsuppress exceptions should return \u003ccode\u003ebool\u003c/code\u003e, or \u003ccode\u003eNone\u003c/code\u003e otherwise.\n(\u003ccode\u003e[#913](https://github.com/agronholm/anyio/issues/913) \u0026lt;https://github.com/agronholm/anyio/pull/913\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/Enegg\"\u003e\u003ccode\u003e@​Enegg\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed rollover boundary check in \u003ccode\u003eSpooledTemporaryFile\u003c/code\u003e so that rollover\nonly occurs when the buffer size exceeds \u003ccode\u003emax_size\u003c/code\u003e\n(\u003ccode\u003e[#915](https://github.com/agronholm/anyio/issues/915) \u0026lt;https://github.com/agronholm/anyio/pull/915\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrated testing and documentation dependencies from extras to dependency groups\u003c/li\u003e\n\u003cli\u003eFixed compatibility of \u003ccode\u003eanyio.to_interpreter\u003c/code\u003e with Python 3.14.0b2\n(\u003ccode\u003e[#926](https://github.com/agronholm/anyio/issues/926) \u0026lt;https://github.com/agronholm/anyio/issues/926\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/hroncok\"\u003e\u003ccode\u003e@​hroncok\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e4.9.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded async support for temporary file handling\n(\u003ccode\u003e[#344](https://github.com/agronholm/anyio/issues/344) \u0026lt;https://github.com/agronholm/anyio/issues/344\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded 4 new fixtures for the AnyIO \u003ccode\u003epytest\u003c/code\u003e plugin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efree_tcp_port_factory\u003c/code\u003e: session scoped fixture returning a callable that\ngenerates unused TCP port numbers\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efree_udp_port_factory\u003c/code\u003e: session scoped fixture returning a callable that\ngenerates unused UDP port numbers\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efree_tcp_port\u003c/code\u003e: function scoped fixture that invokes the\n\u003ccode\u003efree_tcp_port_factory\u003c/code\u003e fixture to generate a free TCP port number\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efree_udp_port\u003c/code\u003e: function scoped fixture that invokes the\n\u003ccode\u003efree_udp_port_factory\u003c/code\u003e fixture to generate a free UDP port number\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003estdin\u003c/code\u003e argument to \u003ccode\u003eanyio.run_process()\u003c/code\u003e akin to what\n\u003ccode\u003eanyio.open_process()\u003c/code\u003e, \u003ccode\u003easyncio.create_subprocess_…()\u003c/code\u003e, \u003ccode\u003etrio.run_process()\u003c/code\u003e,\nand \u003ccode\u003esubprocess.run()\u003c/code\u003e already accept (PR by \u003ca href=\"https://github.com/jmehnle\"\u003e\u003ccode\u003e@​jmehnle\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003einfo\u003c/code\u003e property to \u003ccode\u003eanyio.Path\u003c/code\u003e on Python 3.14\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged \u003ccode\u003eanyio.getaddrinfo()\u003c/code\u003e to ignore (invalid) IPv6 name resolution results when\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/a6e9ebb75f0e1492ab5d0740b2ca76d0137f95e3\"\u003e\u003ccode\u003ea6e9ebb\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9b9520d9ab3b00c0438073278830eddb64ff7875\"\u003e\u003ccode\u003e9b9520d\u003c/code\u003e\u003c/a\u003e Fixed cyclic references in to_thread.run_sync() on asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/887\"\u003e#887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/1f04d6b1582f21bc199417ffcd46f78defbc0ec9\"\u003e\u003ccode\u003e1f04d6b\u003c/code\u003e\u003c/a\u003e Added a note about asyncio cancellation semantics\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/e14b17208982aaa90158038a66eb0696fe7bd548\"\u003e\u003ccode\u003ee14b172\u003c/code\u003e\u003c/a\u003e Upgraded to a newer Sphinx version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/7e13c49b34e908980a1198e9b05f43677dab833a\"\u003e\u003ccode\u003e7e13c49\u003c/code\u003e\u003c/a\u003e Avoid refcycles in tracebacks from happy eyeballs exceptions (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/809\"\u003e#809\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/d134da712b884efc19894966421894da4dab1c86\"\u003e\u003ccode\u003ed134da7\u003c/code\u003e\u003c/a\u003e Raise EndOfStream from None in MemoryObjectReceiveStream.receive() (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/2840e06384d22f35935874043a753d04b0fad70c\"\u003e\u003ccode\u003e2840e06\u003c/code\u003e\u003c/a\u003e Added cheaper implementation for no_other_refs() on Python 3.14 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/886\"\u003e#886\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/31ce0a5d7532b9148570194c2a934741bbed2cad\"\u003e\u003ccode\u003e31ce0a5\u003c/code\u003e\u003c/a\u003e Added fixtures for generating bindable TCP/UDP ports (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/856\"\u003e#856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/cd85e47338a32e6eb813998c4b1c8dbf0b9f722b\"\u003e\u003ccode\u003ecd85e47\u003c/code\u003e\u003c/a\u003e Test on PyPy 3.11 on CI (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/876\"\u003e#876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/d228020e6ea3f3b0bb8eab3a75eb1df31389eddf\"\u003e\u003ccode\u003ed228020\u003c/code\u003e\u003c/a\u003e Detect blocking calls in coroutines using BlockBuster (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/875\"\u003e#875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/3.7.1...4.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2024.7.4 to 2025.4.26\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/275c9eb55733a464589c15fb4566fddd4598e5b2\"\u003e\u003ccode\u003e275c9eb\u003c/code\u003e\u003c/a\u003e 2025.04.26 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/37883310b51e56570919cdc2d44becc1c6940559\"\u003e\u003ccode\u003e3788331\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.4.0 to 5.5.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/9d1f1b782000baedf57026de5b79e193bcb7ef7b\"\u003e\u003ccode\u003e9d1f1b7\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.1.9 to 4.2.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/344\"\u003e#344\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/96b97a5afe26bc1adef98cb0bfe68e34948a73b6\"\u003e\u003ccode\u003e96b97a5\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.1 to 4.6.2 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/343\"\u003e#343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c054ed3ac3d3505efc929b71cfd87a257bbdb6b3\"\u003e\u003ccode\u003ec054ed3\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.7 to 7.0.8 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/342\"\u003e#342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/44547fc77121b12bb276b44b3b2b49cfcbeac06f\"\u003e\u003ccode\u003e44547fc\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.1.8 to 4.1.9 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/5ea51247afecf1bf4ebfa8f2db3082e89a8bfaed\"\u003e\u003ccode\u003e5ea5124\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.0 to 4.6.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/340\"\u003e#340\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2f142b7ae0b2d13fee4ba4b9fbd73a9cd5069060\"\u003e\u003ccode\u003e2f142b7\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.6 to 7.0.7 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/339\"\u003e#339\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/80d2ebdc77d2d005f408f789fe2fb1fe5f4e0265\"\u003e\u003ccode\u003e80d2ebd\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.3.0 to 5.4.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/337\"\u003e#337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/088f93122ea7c91cfdaeea7fa76ab2f850b8064d\"\u003e\u003ccode\u003e088f931\u003c/code\u003e\u003c/a\u003e 2025.01.31 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/336\"\u003e#336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2024.07.04...2025.04.26\"\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.3.2 to 3.4.2\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.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.1\u003c/h2\u003e\n\u003ch2\u003e🚀 We're still raising awareness around HTTP/2, and HTTP/3!\u003c/h2\u003e\n\u003cp\u003eDid you know that Internet Explorer 11 shipped with an optional HTTP/2 support back in 2013? also libcurl did ship it in 2014[...]\nUsing Requests today is the rough equivalent of using EOL Windows 8!  We promptly invite Python developers to look at the first drop-in replacement for Requests, \u003ca href=\"https://github.com/jawah/niquests\"\u003enamely Niquests\u003c/a\u003e. Ship with native WebSocket, SSE, Happy Eyeballs, DNS over HTTPS, and so on[...] All of this while remaining compatible with all Requests prior plug-ins / add-ons.\u003c/p\u003e\n\u003cp\u003eIt leverages charset-normalizer in a better way! Check it out, you will gain up to being 3X faster and get a real/respectable support with it.\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebuild-requirements.txt\u003c/code\u003e as per using \u003ccode\u003epyproject.toml\u003c/code\u003e native build configuration.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ebin/integration.py\u003c/code\u003e and \u003ccode\u003ebin/serve.py\u003c/code\u003e in favor of downstream integration test (see noxfile).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esetup.cfg\u003c/code\u003e in favor of \u003ccode\u003epyproject.toml\u003c/code\u003e metadata configuration.\u003c/li\u003e\n\u003cli\u003eUnused \u003ccode\u003eutils.range_scan\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConverting content to Unicode bytes may insert \u003ccode\u003eutf_8\u003c/code\u003e instead of preferred \u003ccode\u003eutf-8\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/572\"\u003e#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning \u0026quot;'count' is passed as positional argument\u0026quot; when converting to Unicode bytes on Python 3.13+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.0\u003c/h2\u003e\n\u003ch2\u003e🚀 charset-normalizer is raising awareness around HTTP/2, and HTTP/3!\u003c/h2\u003e\n\u003cp\u003eDid you know that Internet Explorer 11 shipped with an optional HTTP/2 support back in 2013? also libcurl did ship it in 2014[...]\nAll of this while our community is still struggling to make a firm advancement in HTTP clients. Now, many of you use Requests\nas the defacto http client, now, and for many years now, Requests has been frozen. Being left in a vegetative state and not evolving,\nthis blocked millions of developers from using more advanced features.\u003c/p\u003e\n\u003cp\u003eWe promptly invite Python developers to look at the drop-in replacement for Requests, \u003ca href=\"https://github.com/jawah/niquests\"\u003enamely Niquests\u003c/a\u003e.\nIt leverage charset-normalizer in a better way! Check it out, you will be positively surprised! Don't wait another decade.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/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.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebuild-requirements.txt\u003c/code\u003e as per using \u003ccode\u003epyproject.toml\u003c/code\u003e native build configuration.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ebin/integration.py\u003c/code\u003e and \u003ccode\u003ebin/serve.py\u003c/code\u003e in favor of downstream integration test (see noxfile).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esetup.cfg\u003c/code\u003e in favor of \u003ccode\u003epyproject.toml\u003c/code\u003e metadata configuration.\u003c/li\u003e\n\u003cli\u003eUnused \u003ccode\u003eutils.range_scan\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConverting content to Unicode bytes may insert \u003ccode\u003eutf_8\u003c/code\u003e instead of preferred \u003ccode\u003eutf-8\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/572\"\u003e#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning \u0026quot;'count' is passed as positional argument\u0026quot; when converting to Unicode bytes on Python 3.13+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.3.2...3.4.0\"\u003e3.4.0\u003c/a\u003e (2024-10-08)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eArgument \u003ccode\u003e--no-preemptive\u003c/code\u003e in the CLI to prevent the detector to search for hints.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRelax the TypeError exception thrown when trying to compare a CharsetMatch with anything else than a CharsetMatch.\u003c/li\u003e\n\u003cli\u003eImproved the general reliability of the detector based on user feedbacks. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/520\"\u003e#520\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/509\"\u003e#509\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/498\"\u003e#498\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/407\"\u003e#407\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/537\"\u003e#537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeclared charset in content (preemptive detection) not changed when converting to utf-8 bytes. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/381\"\u003e#381\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/6422af1d50f1f46624deab585424e1ac4d08ba94\"\u003e\u003ccode\u003e6422af1\u003c/code\u003e\u003c/a\u003e ...\n\n_Description has been truncated_","html_url":"https://github.com/AstarVienna/ScopeSim/pull/679","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AstarVienna%2FScopeSim/issues/679","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/679/packages"},{"uuid":"1970072801","node_id":"PR_kwDOGJylKs51bOzh","number":3,"state":"closed","title":"Bump the pip group across 1 directory with 7 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-08-31T03:44:47.000Z","author_association":"NONE","state_reason":null,"created_at":"2024-07-15T19:22:41.000Z","updated_at":"2025-08-31T03:44:47.000Z","time_to_close":35540526,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":7,"packages":[{"name":"tqdm","old_version":"4.66.1","new_version":"4.66.3","repository_url":"https://github.com/tqdm/tqdm"},{"name":"certifi","old_version":"2023.11.17","new_version":"2024.7.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"requests","old_version":"2.31.0","new_version":"2.32.2","repository_url":"https://github.com/psf/requests"},{"name":"setuptools","old_version":"69.0.3","new_version":"70.0.0","repository_url":"https://github.com/pypa/setuptools"},{"name":"tornado","old_version":"6.4","new_version":"6.4.1","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"urllib3","old_version":"2.1.0","new_version":"2.2.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"zipp","old_version":"3.17.0","new_version":"3.19.1","repository_url":"https://github.com/jaraco/zipp"}],"path":null,"ecosystem":"conda"},"body":"Bumps the pip group with 7 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.66.1` | `4.66.3` |\n| [certifi](https://github.com/certifi/python-certifi) | `2023.11.17` | `2024.7.4` |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.32.2` |\n| [setuptools](https://github.com/pypa/setuptools) | `69.0.3` | `70.0.0` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.4` | `6.4.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.1.0` | `2.2.2` |\n| [zipp](https://github.com/jaraco/zipp) | `3.17.0` | `3.19.1` |\n\n\nUpdates `tqdm` from 4.66.1 to 4.66.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.66.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecli\u003c/code\u003e: \u003ccode\u003eeval\u003c/code\u003e safety (fixes CVE-2024-34062, GHSA-g7vv-2v7x-gj9p)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.66.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epandas\u003c/code\u003e: add \u003ccode\u003eDataFrame.progress_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enotebook\u003c/code\u003e: fix HTML padding (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1506\"\u003e#1506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ekeras\u003c/code\u003e: fix resuming training when \u003ccode\u003everbose\u0026gt;=2\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1508\"\u003e#1508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003eformat_num\u003c/code\u003e negative fractions missing leading zero (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1548\"\u003e#1548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix Python 3.12 \u003ccode\u003eDeprecationWarning\u003c/code\u003e on \u003ccode\u003eimport\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1519\"\u003e#1519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elinting: use f-strings (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate tests (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003efix \u003ccode\u003epandas\u003c/code\u003e warnings\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003easv\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/airspeed-velocity/asv/issues/1323\"\u003eairspeed-velocity/asv#1323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix macos \u003ccode\u003enotebook\u003c/code\u003e docstring indentation\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eCI: bump actions (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\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/tqdm/tqdm/commit/4e613f84ed2ae029559f539464df83fa91feb316\"\u003e\u003ccode\u003e4e613f8\u003c/code\u003e\u003c/a\u003e Merge pull request from GHSA-g7vv-2v7x-gj9p\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b53348c73080b4edeb30b4823d1fa0d8d2c06721\"\u003e\u003ccode\u003eb53348c\u003c/code\u003e\u003c/a\u003e cli: eval safety\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/cc372d09dcd5a5eabdc6ed4cf365bdb0be004d44\"\u003e\u003ccode\u003ecc372d0\u003c/code\u003e\u003c/a\u003e bump version, merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\u003c/a\u003e from tqdm/devel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/e9f0c05097dc167031575391d83240d37556f098\"\u003e\u003ccode\u003ee9f0c05\u003c/code\u003e\u003c/a\u003e use PyPI trusted publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/7323d5bcc9b032d525f9d6468a9713f5be9c4174\"\u003e\u003ccode\u003e7323d5b\u003c/code\u003e\u003c/a\u003e slight makefile clean\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/5306125133d76e0f9326d747d29781fefe273c77\"\u003e\u003ccode\u003e5306125\u003c/code\u003e\u003c/a\u003e tests: bump pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4a6fd4f690a4add231f4bef601521ed9bee513fb\"\u003e\u003ccode\u003e4a6fd4f\u003c/code\u003e\u003c/a\u003e fix datetime.utcfromtimestamp py3.12 warning (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1519\"\u003e#1519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/6f13759f4a0e1047a09732e72f6d07e44d3e6855\"\u003e\u003ccode\u003e6f13759\u003c/code\u003e\u003c/a\u003e tests: fix macos notebook indentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/3abcd2ac90ecb01ac7f64071af600f803eab6a21\"\u003e\u003ccode\u003e3abcd2a\u003c/code\u003e\u003c/a\u003e tests: fix asv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/a4d15c8e2f6c7322c1a1cd1d845927f037281da1\"\u003e\u003ccode\u003ea4d15c8\u003c/code\u003e\u003c/a\u003e tests: fix pandas warnings\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.66.1...v4.66.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2023.11.17 to 2024.7.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/bd8153872e9c6fc98f4023df9c2deaffea2fa463\"\u003e\u003ccode\u003ebd81538\u003c/code\u003e\u003c/a\u003e 2024.07.04 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/295\"\u003e#295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/06a2cbf21f345563dde6c28b60e29d57e9b210b3\"\u003e\u003ccode\u003e06a2cbf\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 6.0.5 to 6.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/294\"\u003e#294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/13bba02b72bac97c432c277158bc04b4d2a6bc23\"\u003e\u003ccode\u003e13bba02\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.1.6 to 4.1.7 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/293\"\u003e#293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/e8abcd0e62b334c164b95d49fcabdc9ecbca0554\"\u003e\u003ccode\u003ee8abcd0\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.8.14 to 1.9.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/292\"\u003e#292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/124f4adf171e15cd9a91a8b6e0325ecc97be8fe1\"\u003e\u003ccode\u003e124f4ad\u003c/code\u003e\u003c/a\u003e 2024.06.02 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/291\"\u003e#291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c2196ce5d6ee675b27755a19948480a7823e2c6a\"\u003e\u003ccode\u003ec2196ce\u003c/code\u003e\u003c/a\u003e --- (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/290\"\u003e#290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/fefdeec7588ff1c05214b85a552afcad5fdb51b2\"\u003e\u003ccode\u003efefdeec\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.1.4 to 4.1.5 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/3c5fb1560b826a7f83f1f9750173ff766492c9cf\"\u003e\u003ccode\u003e3c5fb15\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.1.6 to 4.1.7 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/4a9569a3eb58db8548536fc16c5c5c7af946a5b1\"\u003e\u003ccode\u003e4a9569a\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.1.2 to 4.1.4 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/1fc808626a895a916b1e4c2b63abae6c5eafdbe3\"\u003e\u003ccode\u003e1fc8086\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 6.0.4 to 6.0.5 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2023.11.17...2024.07.04\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.31.0 to 2.32.2\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.32.2\u003c/h2\u003e\n\u003ch2\u003e2.32.2 (2024-05-21)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eTo provide a more stable migration for custom HTTPAdapters impacted\nby the CVE changes in 2.32.0, we've renamed \u003ccode\u003e_get_connection\u003c/code\u003e to\na new public API, \u003ccode\u003eget_connection_with_tls_context\u003c/code\u003e. Existing custom\nHTTPAdapters will need to migrate their code to use this new API.\n\u003ccode\u003eget_connection\u003c/code\u003e is considered deprecated in all versions of Requests\u0026gt;=2.32.0.\u003c/p\u003e\n\u003cp\u003eA minimal (2-line) example has been provided in the linked PR to ease\nmigration, but we strongly urge users to evaluate if their custom adapter\nis subject to the same issue described in CVE-2024-35195. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6710\"\u003e#6710\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.1\u003c/h2\u003e\n\u003ch2\u003e2.32.1 (2024-05-20)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing test certs to the sdist distributed on PyPI.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.0\u003c/h2\u003e\n\u003ch2\u003e2.32.0 (2024-05-20)\u003c/h2\u003e\n\u003ch2\u003e🐍 PYCON US 2024 EDITION 🐍\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where setting \u003ccode\u003everify=False\u003c/code\u003e on the first request from a\nSession will cause subsequent requests to the \u003cem\u003esame origin\u003c/em\u003e to also ignore\ncert verification, regardless of the value of \u003ccode\u003everify\u003c/code\u003e.\n(\u003ca href=\"https://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56\"\u003ehttps://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003everify=True\u003c/code\u003e now reuses a global SSLContext which should improve\nrequest time variance between first and subsequent requests. It should\nalso minimize certificate load time on Windows systems when using a Python\nversion built with OpenSSL 3.x. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6667\"\u003e#6667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests now supports optional use of character detection\n(\u003ccode\u003echardet\u003c/code\u003e or \u003ccode\u003echarset_normalizer\u003c/code\u003e) when repackaged or vendored.\nThis enables \u003ccode\u003epip\u003c/code\u003e and other projects to minimize their vendoring\nsurface area. The \u003ccode\u003eResponse.text()\u003c/code\u003e and \u003ccode\u003eapparent_encoding\u003c/code\u003e APIs\nwill default to \u003ccode\u003eutf-8\u003c/code\u003e if neither library is present. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6702\"\u003e#6702\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 bug in length detection where emoji length was incorrectly\ncalculated in the request content-length. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6589\"\u003e#6589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed deserialization bug in JSONDecodeError. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6629\"\u003e#6629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug where an extra leading \u003ccode\u003e/\u003c/code\u003e (path separator) could lead\nurllib3 to unnecessarily reparse the request URI. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6644\"\u003e#6644\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.2 (2024-05-21)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eTo provide a more stable migration for custom HTTPAdapters impacted\nby the CVE changes in 2.32.0, we've renamed \u003ccode\u003e_get_connection\u003c/code\u003e to\na new public API, \u003ccode\u003eget_connection_with_tls_context\u003c/code\u003e. Existing custom\nHTTPAdapters will need to migrate their code to use this new API.\n\u003ccode\u003eget_connection\u003c/code\u003e is considered deprecated in all versions of Requests\u0026gt;=2.32.0.\u003c/p\u003e\n\u003cp\u003eA minimal (2-line) example has been provided in the linked PR to ease\nmigration, but we strongly urge users to evaluate if their custom adapter\nis subject to the same issue described in CVE-2024-35195. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6710\"\u003e#6710\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.1 (2024-05-20)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing test certs to the sdist distributed on PyPI.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.0 (2024-05-20)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where setting \u003ccode\u003everify=False\u003c/code\u003e on the first request from a\nSession will cause subsequent requests to the \u003cem\u003esame origin\u003c/em\u003e to also ignore\ncert verification, regardless of the value of \u003ccode\u003everify\u003c/code\u003e.\n(\u003ca href=\"https://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56\"\u003ehttps://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003everify=True\u003c/code\u003e now reuses a global SSLContext which should improve\nrequest time variance between first and subsequent requests. It should\nalso minimize certificate load time on Windows systems when using a Python\nversion built with OpenSSL 3.x. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6667\"\u003e#6667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests now supports optional use of character detection\n(\u003ccode\u003echardet\u003c/code\u003e or \u003ccode\u003echarset_normalizer\u003c/code\u003e) when repackaged or vendored.\nThis enables \u003ccode\u003epip\u003c/code\u003e and other projects to minimize their vendoring\nsurface area. The \u003ccode\u003eResponse.text()\u003c/code\u003e and \u003ccode\u003eapparent_encoding\u003c/code\u003e APIs\nwill default to \u003ccode\u003eutf-8\u003c/code\u003e if neither library is present. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6702\"\u003e#6702\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 bug in length detection where emoji length was incorrectly\ncalculated in the request content-length. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6589\"\u003e#6589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed deserialization bug in JSONDecodeError. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6629\"\u003e#6629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug where an extra leading \u003ccode\u003e/\u003c/code\u003e (path separator) could lead\nurllib3 to unnecessarily reparse the request URI. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6644\"\u003e#6644\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\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/psf/requests/commit/88dce9d854797c05d0ff296b70e0430535ef8aaf\"\u003e\u003ccode\u003e88dce9d\u003c/code\u003e\u003c/a\u003e v2.32.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/c98e4d133ef29c46a9b68cd783087218a8075e05\"\u003e\u003ccode\u003ec98e4d1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6710\"\u003e#6710\u003c/a\u003e from nateprewitt/api_rename\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/92075b330a30b9883f466a43d3f7566ab849f91b\"\u003e\u003ccode\u003e92075b3\u003c/code\u003e\u003c/a\u003e Add deprecation warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/aa1461b68aa73e2f6ec0e78c8853b635c76fd099\"\u003e\u003ccode\u003eaa1461b\u003c/code\u003e\u003c/a\u003e Move _get_connection to get_connection_with_tls_context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/970e8cec988421bd43da57350723b05c8ce8dc7e\"\u003e\u003ccode\u003e970e8ce\u003c/code\u003e\u003c/a\u003e v2.32.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d6ebc4a2f1f68b7e355fb7e4dd5ffc0845547f9f\"\u003e\u003ccode\u003ed6ebc4a\u003c/code\u003e\u003c/a\u003e v2.32.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9a40d1277807f0a4f26c9a37eea8ec90faa8aadc\"\u003e\u003ccode\u003e9a40d12\u003c/code\u003e\u003c/a\u003e Avoid reloading root certificates to improve concurrent performance (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6667\"\u003e#6667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0c030f78d24f29a459dbf39b28b4cc765e2153d7\"\u003e\u003ccode\u003e0c030f7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6702\"\u003e#6702\u003c/a\u003e from nateprewitt/no_char_detection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/555b870eb19d497ddb67042645420083ec8efb02\"\u003e\u003ccode\u003e555b870\u003c/code\u003e\u003c/a\u003e Allow character detection dependencies to be optional in post-packaging steps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d6dded3f00afcf56a7e866cb0732799045301eb0\"\u003e\u003ccode\u003ed6dded3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6700\"\u003e#6700\u003c/a\u003e from franekmagiera/update-redirect-to-invalid-uri-test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.31.0...v2.32.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `setuptools` from 69.0.3 to 70.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/setuptools/blob/main/NEWS.rst\"\u003esetuptools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev70.0.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEmit a warning when \u003ccode\u003e[tools.setuptools]\u003c/code\u003e is present in \u003ccode\u003epyproject.toml\u003c/code\u003e and will be ignored. -- by :user:\u003ccode\u003eSnoopJ\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4150\"\u003e#4150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved \u003ccode\u003eAttributeError\u003c/code\u003e error message if \u003ccode\u003epkg_resources.EntryPoint.require\u003c/code\u003e is called without extras or distribution\nGracefully \u0026quot;do nothing\u0026quot; when trying to activate a \u003ccode\u003epkg_resources.Distribution\u003c/code\u003e with a \u003ccode\u003eNone\u003c/code\u003e location, rather than raising a \u003ccode\u003eTypeError\u003c/code\u003e\n-- by :user:\u003ccode\u003eAvasam\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4262\"\u003e#4262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTyped the dynamically defined variables from \u003ccode\u003epkg_resources\u003c/code\u003e -- by :user:\u003ccode\u003eAvasam\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4267\"\u003e#4267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eModernized and refactored VCS handling in package_index. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4332\"\u003e#4332\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIn install command, use super to call the superclass methods. Avoids race conditions when monkeypatching from _distutils_system_mod occurs late. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4136\"\u003e#4136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix finder template for lenient editable installs of implicit nested namespaces\nconstructed by using \u003ccode\u003epackage_dir\u003c/code\u003e to reorganise directory structure. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4278\"\u003e#4278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix an error with \u003ccode\u003eUnicodeDecodeError\u003c/code\u003e handling in \u003ccode\u003epkg_resources\u003c/code\u003e when trying to read files in UTF-8 with a fallback -- by :user:\u003ccode\u003eAvasam\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4348\"\u003e#4348\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUses RST substitution to put badges in 1 line. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4312\"\u003e#4312\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFurther adoption of UTF-8 in \u003ccode\u003esetuptools\u003c/code\u003e.\nThis change regards mostly files produced and consumed during the build process\n(e.g. metadata files, script wrappers, automatically updated config files, etc..)\nAlthough precautions were taken to minimize disruptions, some edge cases might\nbe subject to backwards incompatibility.\u003c/p\u003e\n\u003cp\u003eSupport for \u003ccode\u003e\u0026quot;locale\u0026quot;\u003c/code\u003e encoding is now \u003cstrong\u003edeprecated\u003c/strong\u003e. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4309\"\u003e#4309\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove \u003ccode\u003esetuptools.convert_path\u003c/code\u003e after long deprecation period.\nThis function was never defined by \u003ccode\u003esetuptools\u003c/code\u003e itself, but rather a\nside-effect of an import for internal usage. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4322\"\u003e#4322\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove fallback for customisations of \u003ccode\u003edistutils\u003c/code\u003e' \u003ccode\u003ebuild.sub_command\u003c/code\u003e after long\ndeprecated period.\nUsers are advised to import \u003ccode\u003ebuild\u003c/code\u003e directly from \u003ccode\u003esetuptools.command.build\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4322\"\u003e#4322\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003etyping_extensions\u003c/code\u003e from vendored dependencies -- by :user:\u003ccode\u003eAvasam\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4324\"\u003e#4324\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003esetuptools.dep_util\u003c/code\u003e.\nThe provided alternative is \u003ccode\u003esetuptools.modified\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4360\"\u003e#4360\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/5cbf12a9b63fd37985a4525617b46576b8ac3a7b\"\u003e\u003ccode\u003e5cbf12a\u003c/code\u003e\u003c/a\u003e Workaround for release error in v70\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/9c1bcc3417bd12668123f7e731e241d9e57bfc57\"\u003e\u003ccode\u003e9c1bcc3\u003c/code\u003e\u003c/a\u003e Bump version: 69.5.1 → 70.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/4dc0c31644b458ac43ce6148f6a9dc729a7e78b5\"\u003e\u003ccode\u003e4dc0c31\u003c/code\u003e\u003c/a\u003e Remove deprecated \u003ccode\u003esetuptools.dep_util\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4360\"\u003e#4360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/6c1ef5748dbd70c8c5423e12680345766ee101d9\"\u003e\u003ccode\u003e6c1ef57\u003c/code\u003e\u003c/a\u003e Remove xfail now that test passes. Ref \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4371\"\u003e#4371\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/d14fa0162c95450898c11534caf26a0f03553176\"\u003e\u003ccode\u003ed14fa01\u003c/code\u003e\u003c/a\u003e Add all site-packages dirs when creating simulated environment for test_edita...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/6b7f7a18afc90007544092c446dc0cd856d86b17\"\u003e\u003ccode\u003e6b7f7a1\u003c/code\u003e\u003c/a\u003e Prevent \u003ccode\u003ebin\u003c/code\u003e folders to be taken as extern packages when vendoring (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4370\"\u003e#4370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/69141f69f8bf38da34cbea552d6fdaa9c8619c53\"\u003e\u003ccode\u003e69141f6\u003c/code\u003e\u003c/a\u003e Add doctest for vendorised bin folder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/2a53cc1200ec4b14e08e84be3c042f8983dfb7d7\"\u003e\u003ccode\u003e2a53cc1\u003c/code\u003e\u003c/a\u003e Prevent 'bin' folders to be taken as extern packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/720862807dea012f3a0e7061880691025f736f11\"\u003e\u003ccode\u003e7208628\u003c/code\u003e\u003c/a\u003e Replace call to deprecated \u003ccode\u003evalidate_pyproject\u003c/code\u003e command (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4363\"\u003e#4363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/96d681aa405460f724c62c00ca125ae722ad810a\"\u003e\u003ccode\u003e96d681a\u003c/code\u003e\u003c/a\u003e Remove call to deprecated validate_pyproject command\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/setuptools/compare/v69.0.3...v70.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tornado` from 6.4 to 6.4.1\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.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\nreleases/v3.1.0\nreleases/v3.0.2\nreleases/v3.0.1\nreleases/v3.0.0\nreleases/v2.4.1\nreleases/v2.4.0\nreleases/v2.3.0\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/2a0e1d13b5222dca4388c0ec8a4bb74ea6fa4af2\"\u003e\u003ccode\u003e2a0e1d1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3388\"\u003e#3388\u003c/a\u003e from bdarnell/release-641\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/b7af4e8f5ee578b78e1be5ade43fdb1103659a0e\"\u003e\u003ccode\u003eb7af4e8\u003c/code\u003e\u003c/a\u003e Release notes and version bump for version 6.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/d65f6e71a77f53a1ff0a0dc55704be13f04eb572\"\u003e\u003ccode\u003ed65f6e7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3387\"\u003e#3387\u003c/a\u003e from bdarnell/chunked-parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/8d721a877dd5c2bc0693d9c4d3954eb11fbd404b\"\u003e\u003ccode\u003e8d721a8\u003c/code\u003e\u003c/a\u003e httputil: Only strip tabs and spaces from header values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/7786f09f84c9f3f2012c4cf3878417cb9f053669\"\u003e\u003ccode\u003e7786f09\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3386\"\u003e#3386\u003c/a\u003e from bdarnell/curl-crlf\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/fb119c767e9c43e71ea823311b0d53f566d86b73\"\u003e\u003ccode\u003efb119c7\u003c/code\u003e\u003c/a\u003e http1connection: Stricter handling of transfer-encoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/b0ffc58e02f33f6aa480f008b74495601d988ce1\"\u003e\u003ccode\u003eb0ffc58\u003c/code\u003e\u003c/a\u003e curl_httpclient,http1connection: Prohibit CR and LF in headers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/0efa9a42b4c94ee98549d86992c68227f83efd4e\"\u003e\u003ccode\u003e0efa9a4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3385\"\u003e#3385\u003c/a\u003e from bdarnell/update-black\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/2757c6e4874968dd2f74a4d08b450da795de5b6c\"\u003e\u003ccode\u003e2757c6e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3384\"\u003e#3384\u003c/a\u003e from tornadoweb/dependabot/pip/requests-2.32.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/291d1b661be273b86792e965ac65f9bced8d4ebe\"\u003e\u003ccode\u003e291d1b6\u003c/code\u003e\u003c/a\u003e *: Update black\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tornadoweb/tornado/compare/v6.4.0...v6.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.1.0 to 2.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003eProxy-Authorization\u003c/code\u003e header to the list of headers to strip from requests when redirecting to a different host. As before, different headers can be set via \u003ccode\u003eRetry.remove_headers_on_redirect\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAllowed passing negative integers as \u003ccode\u003eamt\u003c/code\u003e to read methods of \u003ccode\u003ehttp.client.HTTPResponse\u003c/code\u003e as an alternative to \u003ccode\u003eNone\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3122\"\u003e#3122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed return types representing copying actions to use \u003ccode\u003etyping.Self\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3363\"\u003e#3363\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.2.1...2.2.2\"\u003ehttps://github.com/urllib3/urllib3/compare/2.2.1...2.2.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.2.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed issue where \u003ccode\u003eInsecureRequestWarning\u003c/code\u003e was emitted for HTTPS connections when using Emscripten. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3331\"\u003e#3331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPConnectionPool.urlopen\u003c/code\u003e to stop automatically casting non-proxy headers to \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e. This change was premature as it did not apply to proxy headers and \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e does not handle byte header values correctly yet. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3343\"\u003e#3343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eProtocolError\u003c/code\u003e to \u003ccode\u003eInvalidChunkLength\u003c/code\u003e when response terminates before the chunk length is sent. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/2860\"\u003e#2860\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eProtocolError\u003c/code\u003e to be more verbose on incomplete reads with excess content. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3261\"\u003e#3261\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003ch2\u003e🖥️ urllib3 now works in the browser\u003c/h2\u003e\n\u003cp\u003e:tada: \u003cstrong\u003eThis release adds experimental support for \u003ca href=\"https://urllib3.readthedocs.io/en/stable/reference/contrib/emscripten.html\"\u003eusing urllib3 in the browser with Pyodide\u003c/a\u003e!\u003c/strong\u003e :tada:\u003c/p\u003e\n\u003cp\u003eThanks to Joe Marshall (\u003ca href=\"https://github.com/joemarshall\"\u003e\u003ccode\u003e@​joemarshall\u003c/code\u003e\u003c/a\u003e) for contributing this feature. This change was possible thanks to work done in urllib3 v2.0 to detach our API from \u003ccode\u003ehttp.client\u003c/code\u003e. Please report all bugs to the \u003ca href=\"https://github.com/urllib3/urllib3/issues\"\u003eurllib3 issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://urllib3.readthedocs.io/en/latest/reference/contrib/emscripten.html\"\u003eEmscripten and Pyodide\u003c/a\u003e, including streaming support in cross-origin isolated browser environments where threading is enabled. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/2951\"\u003e#2951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eHTTPResponse.read1()\u003c/code\u003e method. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3186\"\u003e#3186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded rudimentary support for HTTP/2. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3284\"\u003e#3284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed issue where requests against urls with trailing dots were failing due to SSL errors\nwhen using proxy. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/2244\"\u003e#2244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPConnection.proxy_is_verified\u003c/code\u003e and \u003ccode\u003eHTTPSConnection.proxy_is_verified\u003c/code\u003e to be always set to a boolean after connecting to a proxy. It could be \u003ccode\u003eNone\u003c/code\u003e in some cases previously. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3130\"\u003e#3130\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/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.2.2 (2024-06-17)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003eProxy-Authorization\u003c/code\u003e header to the list of headers to strip from requests when redirecting to a different host. As before, different headers can be set via \u003ccode\u003eRetry.remove_headers_on_redirect\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAllowed passing negative integers as \u003ccode\u003eamt\u003c/code\u003e to read methods of \u003ccode\u003ehttp.client.HTTPResponse\u003c/code\u003e as an alternative to \u003ccode\u003eNone\u003c/code\u003e. (\u003ccode\u003e[#3122](https://github.com/urllib3/urllib3/issues/3122) \u0026lt;https://github.com/urllib3/urllib3/issues/3122\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed return types representing copying actions to use \u003ccode\u003etyping.Self\u003c/code\u003e. (\u003ccode\u003e[#3363](https://github.com/urllib3/urllib3/issues/3363) \u0026lt;https://github.com/urllib3/urllib3/issues/3363\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.2.1 (2024-02-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed issue where \u003ccode\u003eInsecureRequestWarning\u003c/code\u003e was emitted for HTTPS connections when using Emscripten. (\u003ccode\u003e[#3331](https://github.com/urllib3/urllib3/issues/3331) \u0026lt;https://github.com/urllib3/urllib3/issues/3331\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPConnectionPool.urlopen\u003c/code\u003e to stop automatically casting non-proxy headers to \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e. This change was premature as it did not apply to proxy headers and \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e does not handle byte header values correctly yet. (\u003ccode\u003e[#3343](https://github.com/urllib3/urllib3/issues/3343) \u0026lt;https://github.com/urllib3/urllib3/issues/3343\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eInvalidChunkLength\u003c/code\u003e to \u003ccode\u003eProtocolError\u003c/code\u003e when response terminates before the chunk length is sent. (\u003ccode\u003e[#2860](https://github.com/urllib3/urllib3/issues/2860) \u0026lt;https://github.com/urllib3/urllib3/issues/2860\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eProtocolError\u003c/code\u003e to be more verbose on incomplete reads with excess content. (\u003ccode\u003e[#3261](https://github.com/urllib3/urllib3/issues/3261) \u0026lt;https://github.com/urllib3/urllib3/issues/3261\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.2.0 (2024-01-30)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eEmscripten and Pyodide \u0026lt;https://urllib3.readthedocs.io/en/latest/reference/contrib/emscripten.html\u0026gt;\u003c/code\u003e\u003cstrong\u003e, including streaming support in cross-origin isolated browser environments where threading is enabled. (\u003ccode\u003e[#2951](https://github.com/urllib3/urllib3/issues/2951) \u0026lt;https://github.com/urllib3/urllib3/issues/2951\u0026gt;\u003c/code\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eHTTPResponse.read1()\u003c/code\u003e method. (\u003ccode\u003e[#3186](https://github.com/urllib3/urllib3/issues/3186) \u0026lt;https://github.com/urllib3/urllib3/issues/3186\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded rudimentary support for HTTP/2. (\u003ccode\u003e[#3284](https://github.com/urllib3/urllib3/issues/3284) \u0026lt;https://github.com/urllib3/urllib3/issues/3284\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed issue where requests against urls with trailing dots were failing due to SSL errors\nwhen using proxy. (\u003ccode\u003e[#2244](https://github.com/urllib3/urllib3/issues/2244) \u0026lt;https://github.com/urllib3/urllib3/issues/2244\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPConnection.proxy_is_verified\u003c/code\u003e and \u003ccode\u003eHTTPSConnection.proxy_is_verified\u003c/code\u003e\nto be always set to a boolean after connecting to a proxy. It could be\n\u003ccode\u003eNone\u003c/code\u003e in some cases previously. (\u003ccode\u003e[#3130](https://github.com/urllib3/urllib3/issues/3130) \u0026lt;https://github.com/urllib3/urllib3/issues/3130\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed an issue where \u003ccode\u003eheaders\u003c/code\u003e passed in a request with \u003ccode\u003ejson=\u003c/code\u003e would be mutated (\u003ccode\u003e[#3203](https://github.com/urllib3/urllib3/issues/3203) \u0026lt;https://github.com/urllib3/urllib3/issues/3203\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPSConnection.is_verified\u003c/code\u003e to be set to \u003ccode\u003eFalse\u003c/code\u003e when connecting\nfrom a HTTPS proxy to an HTTP target. It was set to \u003ccode\u003eTrue\u003c/code\u003e previously. (\u003ccode\u003e[#3267](https://github.com/urllib3/urllib3/issues/3267) \u0026lt;https://github.com/urllib3/urllib3/issues/3267\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed handling of new error message from OpenSSL 3.2.0 when configuring an HTTP proxy as HTTPS (\u003ccode\u003e[#3268](https://github.com/urllib3/urllib3/issues/3268) \u0026lt;https://github.com/urllib3/urllib3/issues/3268\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed TLS 1.3 post-handshake auth when the server certificate validation is disabled (\u003ccode\u003e[#3325](https://github.com/urllib3/urllib3/issues/3325) \u0026lt;https://github.com/urllib3/urllib3/issues/3325\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eNote for downstream distributors: To run integration tests, you now need to run the tests a second\ntime with the \u003ccode\u003e--integration\u003c/code\u003e pytest flag. (\u003ccode\u003e[#3181](https://github.com/urllib3/urllib3/issues/3181) \u0026lt;https://github.com/urllib3/urllib3/issues/3181\u0026gt;\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/urllib3/urllib3/commit/27e2a5c5a7ab6a517252cc8dcef3ffa6ffb8f61a\"\u003e\u003ccode\u003e27e2a5c\u003c/code\u003e\u003c/a\u003e Release 2.2.2 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3406\"\u003e#3406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/accff72ecc2f6cf5a76d9570198a93ac7c90270e\"\u003e\u003ccode\u003eaccff72\u003c/code\u003e\u003c/a\u003e Merge pull request from GHSA-34jh-p97f-mpxf\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/34be4a57e59eb7365bcc37d52e9f8271b5b8d0d3\"\u003e\u003ccode\u003e34be4a5\u003c/code\u003e\u003c/a\u003e Pin CFFI to a new release candidate instead of a Git commit (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3398\"\u003e#3398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/da410581b6b3df73da976b5ce5eb20a4bd030437\"\u003e\u003ccode\u003eda41058\u003c/code\u003e\u003c/a\u003e Bump browser-actions/setup-chrome from 1.6.0 to 1.7.1 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3399\"\u003e#3399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/b07a669bd970d69847801148286b726f0570b625\"\u003e\u003ccode\u003eb07a669\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 2.13.4 to 3.25.6 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3396\"\u003e#3396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/b8589ec9f8c4da91511e601b632ac06af7e7c10e\"\u003e\u003ccode\u003eb8589ec\u003c/code\u003e\u003c/a\u003e Measure coverage with v4 of artifact actions (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3394\"\u003e#3394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/f3bdc5585111429e22c81b5fb26c3ec164d98b81\"\u003e\u003ccode\u003ef3bdc55\u003c/code\u003e\u003c/a\u003e Allow triggering CI manually (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3391\"\u003e#3391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/52392654b30183129cf3ec06010306f517d9c146\"\u003e\u003ccode\u003e5239265\u003c/code\u003e\u003c/a\u003e Fix HTTP version in debug log (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3316\"\u003e#3316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/b34619f94ece0c40e691a5aaf1304953d88089de\"\u003e\u003ccode\u003eb34619f\u003c/code\u003e\u003c/a\u003e Bump actions/checkout to 4.1.4 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3387\"\u003e#3387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/9961d14de7c920091d42d42ed76d5d479b80064d\"\u003e\u003ccode\u003e9961d14\u003c/code\u003e\u003c/a\u003e Bump browser-actions/setup-chrome from 1.5.0 to 1.6.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3386\"\u003e#3386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.1.0...2.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `zipp` from 3.17.0 to 3.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jaraco/zipp/blob/main/NEWS.rst\"\u003ezipp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev3.19.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved handling of malformed zip files. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/119\"\u003e#119\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev3.19.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement is_symlink. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/117\"\u003e#117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev3.18.2\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch1\u003ev3.18.1\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch1\u003ev3.18.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBypass ZipFile.namelist in glob for better performance. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/106\"\u003e#106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored glob functionality to support a more generalized solution with support for platform-specific path separators. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/108\"\u003e#108\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd special accounting for pypy when computing the stack level for text encoding warnings. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/114\"\u003e#114\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/jaraco/zipp/commit/6d1cb72aa55e0536f35d2af128994b5a61ca4c1a\"\u003e\u003ccode\u003e6d1cb72\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/fd604bd34f0343472521a36da1fbd22e793e14fd\"\u003e\u003ccode\u003efd604bd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/120\"\u003e#120\u003c/a\u003e from jaraco/bugfix/119-malformed-paths\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/c18417ed2953e181728a7dac07bff88a2190abf7\"\u003e\u003ccode\u003ec18417e\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/58115d2be968644ce71ce6bcc9b79826c82a1806\"\u003e\u003ccode\u003e58115d2\u003c/code\u003e\u003c/a\u003e Employ SanitizedNames in CompleteDirs. Fixes broken test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/564fcc10cdbfdaecdb33688e149827465931c9e0\"\u003e\u003ccode\u003e564fcc1\u003c/code\u003e\u003c/a\u003e Add SanitizedNames mixin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/79a309fe54dc6b7934fb72e9f31bcb58f2e9f547\"\u003e\u003ccode\u003e79a309f\u003c/code\u003e\u003c/a\u003e Add some assertions about malformed paths.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/2d015c22348fab46ca765339f55f84fe9d6e8115\"\u003e\u003ccode\u003e2d015c2\u003c/code\u003e\u003c/a\u003e Merge \u003ca href=\"https://github.com/jaraco/skeleton\"\u003ehttps://github.com/jaraco/skeleton\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/a595a0fad054cd20b69d3e954c99174e3a548938\"\u003e\u003ccode\u003ea595a0f\u003c/code\u003e\u003c/a\u003e Rename extras to align with core metadata spec.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/608f90a6e74919501577a1312dc5c7d8e1d391d7\"\u003e\u003ccode\u003e608f90a\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/3a22d724acf874111b43f87f7110225122ec3de5\"\u003e\u003ccode\u003e3a22d72\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/118\"\u003e#118\u003c/a\u003e from jaraco/feature/is-symlink\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jaraco/zipp/compare/v3.17.0...v3.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nYou can trigger a rebase of this PR by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \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\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/ycechungAI/manim/network/alerts).\n\n\u003c/details\u003e\n\n\u003e **Note**\n\u003e Automatic rebases have been disabled on this pull request as it has been open for over 30 days.\n","html_url":"https://github.com/ycechungAI/manim/pull/3","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ycechungAI%2Fmanim/issues/3","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3/packages"},{"uuid":"1960775740","node_id":"PR_kwDOKJfJ0c503xA8","number":12,"state":"closed","title":"Bump the pip group across 1 directory with 7 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-06-01T05:59:43.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2024-07-09T18:45:20.000Z","updated_at":"2025-06-01T05:59:43.000Z","time_to_close":28206863,"merged_at":"2025-06-01T05:59:42.000Z","merged_by":"daeosqu","closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":7,"packages":[{"name":"tqdm","old_version":"4.66.1","new_version":"4.66.3","repository_url":"https://github.com/tqdm/tqdm"},{"name":"requests","old_version":"2.31.0","new_version":"2.32.2","repository_url":"https://github.com/psf/requests"},{"name":"certifi","old_version":"2023.7.22","new_version":"2024.7.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"idna","old_version":"3.4","new_version":"3.7","repository_url":"https://github.com/kjd/idna"},{"name":"tornado","old_version":"6.3.3","new_version":"6.4.1","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"urllib3","old_version":"2.0.7","new_version":"2.2.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"zipp","old_version":"3.16.2","new_version":"3.19.1","repository_url":"https://github.com/jaraco/zipp"}],"path":null,"ecosystem":"conda"},"body":"Bumps the pip group with 7 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.66.1` | `4.66.3` |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.32.2` |\n| [certifi](https://github.com/certifi/python-certifi) | `2023.7.22` | `2024.7.4` |\n| [idna](https://github.com/kjd/idna) | `3.4` | `3.7` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.3.3` | `6.4.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.0.7` | `2.2.2` |\n| [zipp](https://github.com/jaraco/zipp) | `3.16.2` | `3.19.1` |\n\n\nUpdates `tqdm` from 4.66.1 to 4.66.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.66.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecli\u003c/code\u003e: \u003ccode\u003eeval\u003c/code\u003e safety (fixes CVE-2024-34062, GHSA-g7vv-2v7x-gj9p)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.66.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epandas\u003c/code\u003e: add \u003ccode\u003eDataFrame.progress_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enotebook\u003c/code\u003e: fix HTML padding (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1506\"\u003e#1506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ekeras\u003c/code\u003e: fix resuming training when \u003ccode\u003everbose\u0026gt;=2\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1508\"\u003e#1508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003eformat_num\u003c/code\u003e negative fractions missing leading zero (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1548\"\u003e#1548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix Python 3.12 \u003ccode\u003eDeprecationWarning\u003c/code\u003e on \u003ccode\u003eimport\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1519\"\u003e#1519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elinting: use f-strings (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate tests (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003efix \u003ccode\u003epandas\u003c/code\u003e warnings\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003easv\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/airspeed-velocity/asv/issues/1323\"\u003eairspeed-velocity/asv#1323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix macos \u003ccode\u003enotebook\u003c/code\u003e docstring indentation\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eCI: bump actions (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\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/tqdm/tqdm/commit/4e613f84ed2ae029559f539464df83fa91feb316\"\u003e\u003ccode\u003e4e613f8\u003c/code\u003e\u003c/a\u003e Merge pull request from GHSA-g7vv-2v7x-gj9p\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b53348c73080b4edeb30b4823d1fa0d8d2c06721\"\u003e\u003ccode\u003eb53348c\u003c/code\u003e\u003c/a\u003e cli: eval safety\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/cc372d09dcd5a5eabdc6ed4cf365bdb0be004d44\"\u003e\u003ccode\u003ecc372d0\u003c/code\u003e\u003c/a\u003e bump version, merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\u003c/a\u003e from tqdm/devel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/e9f0c05097dc167031575391d83240d37556f098\"\u003e\u003ccode\u003ee9f0c05\u003c/code\u003e\u003c/a\u003e use PyPI trusted publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/7323d5bcc9b032d525f9d6468a9713f5be9c4174\"\u003e\u003ccode\u003e7323d5b\u003c/code\u003e\u003c/a\u003e slight makefile clean\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/5306125133d76e0f9326d747d29781fefe273c77\"\u003e\u003ccode\u003e5306125\u003c/code\u003e\u003c/a\u003e tests: bump pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4a6fd4f690a4add231f4bef601521ed9bee513fb\"\u003e\u003ccode\u003e4a6fd4f\u003c/code\u003e\u003c/a\u003e fix datetime.utcfromtimestamp py3.12 warning (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1519\"\u003e#1519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/6f13759f4a0e1047a09732e72f6d07e44d3e6855\"\u003e\u003ccode\u003e6f13759\u003c/code\u003e\u003c/a\u003e tests: fix macos notebook indentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/3abcd2ac90ecb01ac7f64071af600f803eab6a21\"\u003e\u003ccode\u003e3abcd2a\u003c/code\u003e\u003c/a\u003e tests: fix asv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/a4d15c8e2f6c7322c1a1cd1d845927f037281da1\"\u003e\u003ccode\u003ea4d15c8\u003c/code\u003e\u003c/a\u003e tests: fix pandas warnings\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.66.1...v4.66.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.31.0 to 2.32.2\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.32.2\u003c/h2\u003e\n\u003ch2\u003e2.32.2 (2024-05-21)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eTo provide a more stable migration for custom HTTPAdapters impacted\nby the CVE changes in 2.32.0, we've renamed \u003ccode\u003e_get_connection\u003c/code\u003e to\na new public API, \u003ccode\u003eget_connection_with_tls_context\u003c/code\u003e. Existing custom\nHTTPAdapters will need to migrate their code to use this new API.\n\u003ccode\u003eget_connection\u003c/code\u003e is considered deprecated in all versions of Requests\u0026gt;=2.32.0.\u003c/p\u003e\n\u003cp\u003eA minimal (2-line) example has been provided in the linked PR to ease\nmigration, but we strongly urge users to evaluate if their custom adapter\nis subject to the same issue described in CVE-2024-35195. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6710\"\u003e#6710\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.1\u003c/h2\u003e\n\u003ch2\u003e2.32.1 (2024-05-20)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing test certs to the sdist distributed on PyPI.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.0\u003c/h2\u003e\n\u003ch2\u003e2.32.0 (2024-05-20)\u003c/h2\u003e\n\u003ch2\u003e🐍 PYCON US 2024 EDITION 🐍\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where setting \u003ccode\u003everify=False\u003c/code\u003e on the first request from a\nSession will cause subsequent requests to the \u003cem\u003esame origin\u003c/em\u003e to also ignore\ncert verification, regardless of the value of \u003ccode\u003everify\u003c/code\u003e.\n(\u003ca href=\"https://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56\"\u003ehttps://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003everify=True\u003c/code\u003e now reuses a global SSLContext which should improve\nrequest time variance between first and subsequent requests. It should\nalso minimize certificate load time on Windows systems when using a Python\nversion built with OpenSSL 3.x. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6667\"\u003e#6667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests now supports optional use of character detection\n(\u003ccode\u003echardet\u003c/code\u003e or \u003ccode\u003echarset_normalizer\u003c/code\u003e) when repackaged or vendored.\nThis enables \u003ccode\u003epip\u003c/code\u003e and other projects to minimize their vendoring\nsurface area. The \u003ccode\u003eResponse.text()\u003c/code\u003e and \u003ccode\u003eapparent_encoding\u003c/code\u003e APIs\nwill default to \u003ccode\u003eutf-8\u003c/code\u003e if neither library is present. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6702\"\u003e#6702\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 bug in length detection where emoji length was incorrectly\ncalculated in the request content-length. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6589\"\u003e#6589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed deserialization bug in JSONDecodeError. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6629\"\u003e#6629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug where an extra leading \u003ccode\u003e/\u003c/code\u003e (path separator) could lead\nurllib3 to unnecessarily reparse the request URI. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6644\"\u003e#6644\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.2 (2024-05-21)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eTo provide a more stable migration for custom HTTPAdapters impacted\nby the CVE changes in 2.32.0, we've renamed \u003ccode\u003e_get_connection\u003c/code\u003e to\na new public API, \u003ccode\u003eget_connection_with_tls_context\u003c/code\u003e. Existing custom\nHTTPAdapters will need to migrate their code to use this new API.\n\u003ccode\u003eget_connection\u003c/code\u003e is considered deprecated in all versions of Requests\u0026gt;=2.32.0.\u003c/p\u003e\n\u003cp\u003eA minimal (2-line) example has been provided in the linked PR to ease\nmigration, but we strongly urge users to evaluate if their custom adapter\nis subject to the same issue described in CVE-2024-35195. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6710\"\u003e#6710\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.1 (2024-05-20)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing test certs to the sdist distributed on PyPI.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.0 (2024-05-20)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where setting \u003ccode\u003everify=False\u003c/code\u003e on the first request from a\nSession will cause subsequent requests to the \u003cem\u003esame origin\u003c/em\u003e to also ignore\ncert verification, regardless of the value of \u003ccode\u003everify\u003c/code\u003e.\n(\u003ca href=\"https://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56\"\u003ehttps://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003everify=True\u003c/code\u003e now reuses a global SSLContext which should improve\nrequest time variance between first and subsequent requests. It should\nalso minimize certificate load time on Windows systems when using a Python\nversion built with OpenSSL 3.x. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6667\"\u003e#6667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests now supports optional use of character detection\n(\u003ccode\u003echardet\u003c/code\u003e or \u003ccode\u003echarset_normalizer\u003c/code\u003e) when repackaged or vendored.\nThis enables \u003ccode\u003epip\u003c/code\u003e and other projects to minimize their vendoring\nsurface area. The \u003ccode\u003eResponse.text()\u003c/code\u003e and \u003ccode\u003eapparent_encoding\u003c/code\u003e APIs\nwill default to \u003ccode\u003eutf-8\u003c/code\u003e if neither library is present. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6702\"\u003e#6702\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 bug in length detection where emoji length was incorrectly\ncalculated in the request content-length. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6589\"\u003e#6589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed deserialization bug in JSONDecodeError. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6629\"\u003e#6629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug where an extra leading \u003ccode\u003e/\u003c/code\u003e (path separator) could lead\nurllib3 to unnecessarily reparse the request URI. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6644\"\u003e#6644\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\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/psf/requests/commit/88dce9d854797c05d0ff296b70e0430535ef8aaf\"\u003e\u003ccode\u003e88dce9d\u003c/code\u003e\u003c/a\u003e v2.32.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/c98e4d133ef29c46a9b68cd783087218a8075e05\"\u003e\u003ccode\u003ec98e4d1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6710\"\u003e#6710\u003c/a\u003e from nateprewitt/api_rename\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/92075b330a30b9883f466a43d3f7566ab849f91b\"\u003e\u003ccode\u003e92075b3\u003c/code\u003e\u003c/a\u003e Add deprecation warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/aa1461b68aa73e2f6ec0e78c8853b635c76fd099\"\u003e\u003ccode\u003eaa1461b\u003c/code\u003e\u003c/a\u003e Move _get_connection to get_connection_with_tls_context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/970e8cec988421bd43da57350723b05c8ce8dc7e\"\u003e\u003ccode\u003e970e8ce\u003c/code\u003e\u003c/a\u003e v2.32.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d6ebc4a2f1f68b7e355fb7e4dd5ffc0845547f9f\"\u003e\u003ccode\u003ed6ebc4a\u003c/code\u003e\u003c/a\u003e v2.32.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9a40d1277807f0a4f26c9a37eea8ec90faa8aadc\"\u003e\u003ccode\u003e9a40d12\u003c/code\u003e\u003c/a\u003e Avoid reloading root certificates to improve concurrent performance (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6667\"\u003e#6667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0c030f78d24f29a459dbf39b28b4cc765e2153d7\"\u003e\u003ccode\u003e0c030f7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6702\"\u003e#6702\u003c/a\u003e from nateprewitt/no_char_detection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/555b870eb19d497ddb67042645420083ec8efb02\"\u003e\u003ccode\u003e555b870\u003c/code\u003e\u003c/a\u003e Allow character detection dependencies to be optional in post-packaging steps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d6dded3f00afcf56a7e866cb0732799045301eb0\"\u003e\u003ccode\u003ed6dded3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6700\"\u003e#6700\u003c/a\u003e from franekmagiera/update-redirect-to-invalid-uri-test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.31.0...v2.32.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2023.7.22 to 2024.7.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/bd8153872e9c6fc98f4023df9c2deaffea2fa463\"\u003e\u003ccode\u003ebd81538\u003c/code\u003e\u003c/a\u003e 2024.07.04 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/295\"\u003e#295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/06a2cbf21f345563dde6c28b60e29d57e9b210b3\"\u003e\u003ccode\u003e06a2cbf\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 6.0.5 to 6.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/294\"\u003e#294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/13bba02b72bac97c432c277158bc04b4d2a6bc23\"\u003e\u003ccode\u003e13bba02\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.1.6 to 4.1.7 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/293\"\u003e#293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/e8abcd0e62b334c164b95d49fcabdc9ecbca0554\"\u003e\u003ccode\u003ee8abcd0\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.8.14 to 1.9.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/292\"\u003e#292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/124f4adf171e15cd9a91a8b6e0325ecc97be8fe1\"\u003e\u003ccode\u003e124f4ad\u003c/code\u003e\u003c/a\u003e 2024.06.02 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/291\"\u003e#291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c2196ce5d6ee675b27755a19948480a7823e2c6a\"\u003e\u003ccode\u003ec2196ce\u003c/code\u003e\u003c/a\u003e --- (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/290\"\u003e#290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/fefdeec7588ff1c05214b85a552afcad5fdb51b2\"\u003e\u003ccode\u003efefdeec\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.1.4 to 4.1.5 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/3c5fb1560b826a7f83f1f9750173ff766492c9cf\"\u003e\u003ccode\u003e3c5fb15\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.1.6 to 4.1.7 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/4a9569a3eb58db8548536fc16c5c5c7af946a5b1\"\u003e\u003ccode\u003e4a9569a\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.1.2 to 4.1.4 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/1fc808626a895a916b1e4c2b63abae6c5eafdbe3\"\u003e\u003ccode\u003e1fc8086\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 6.0.4 to 6.0.5 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2023.07.22...2024.07.04\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.4 to 3.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/releases\"\u003eidna's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.7\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix issue where specially crafted inputs to encode() could take exceptionally long amount of time to process. [CVE-2024-3651]\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Guido Vranken for reporting the issue.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kjd/idna/compare/v3.6...v3.7\"\u003ehttps://github.com/kjd/idna/compare/v3.6...v3.7\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/blob/master/HISTORY.rst\"\u003eidna's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.7 (2024-04-11)\n++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix issue where specially crafted inputs to encode() could\ntake exceptionally long amount of time to process. [CVE-2024-3651]\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Guido Vranken for reporting the issue.\u003c/p\u003e\n\u003cp\u003e3.6 (2023-11-25)\n++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression to include tests in source distribution.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.5 (2023-11-24)\n++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 15.1.0\u003c/li\u003e\n\u003cli\u003eString codec name is now \u0026quot;idna2008\u0026quot; as overriding the system codec\n\u0026quot;idna\u0026quot; was not working.\u003c/li\u003e\n\u003cli\u003eFix typing error for codec encoding\u003c/li\u003e\n\u003cli\u003e\u0026quot;setup.cfg\u0026quot; has been added for this release due to some downstream\nlack of adherence to PEP 517. Should be removed in a future release\nso please prepare accordingly.\u003c/li\u003e\n\u003cli\u003eRemoved reliance on a symlink for the \u0026quot;idna-data\u0026quot; tool to comport\nwith PEP 517 and the Python Packaging User Guide for sdist archives.\u003c/li\u003e\n\u003cli\u003eAdded security reporting protocol for project\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks Jon Ribbens, Diogo Teles Sant'Anna, Wu Tingfeng for contributions\nto this release.\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/kjd/idna/commit/1d365e17e10d72d0b7876316fc7b9ca0eebdd38d\"\u003e\u003ccode\u003e1d365e1\u003c/code\u003e\u003c/a\u003e Release v3.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/c1b3154939907fab67c5754346afaebe165ce8e6\"\u003e\u003ccode\u003ec1b3154\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/172\"\u003e#172\u003c/a\u003e from kjd/optimize-contextj\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/0394ec76ff022813e770ba1fd89658790ea35623\"\u003e\u003ccode\u003e0394ec7\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into optimize-contextj\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/cd58a23173d2b0a40b95ee680baf3e59e8d33966\"\u003e\u003ccode\u003ecd58a23\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/152\"\u003e#152\u003c/a\u003e from elliotwutingfeng/dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/5beb28b9dd77912c0dd656d8b0fdba3eb80222e7\"\u003e\u003ccode\u003e5beb28b\u003c/code\u003e\u003c/a\u003e More efficient resolution of joiner contexts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/1b121483ed04d9576a1291758f537e1318cddc8b\"\u003e\u003ccode\u003e1b12148\u003c/code\u003e\u003c/a\u003e Update ossf/scorecard-action to v2.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/d516b874c3388047934938a500c7488d52c4e067\"\u003e\u003ccode\u003ed516b87\u003c/code\u003e\u003c/a\u003e Update Github actions/checkout to v4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/c095c75943413c75ebf8ac74179757031b7f80b7\"\u003e\u003ccode\u003ec095c75\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/60a0a4cb61ec6834d74306bd8a1fa46daac94c98\"\u003e\u003ccode\u003e60a0a4c\u003c/code\u003e\u003c/a\u003e Fix typo in GitHub Actions workflow key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/5918a0ef8034379c2e409ae93ee11d24295bb201\"\u003e\u003ccode\u003e5918a0e\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into dev\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.4...v3.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tornado` from 6.3.3 to 6.4.1\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.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\nreleases/v3.1.0\nreleases/v3.0.2\nreleases/v3.0.1\nreleases/v3.0.0\nreleases/v2.4.1\nreleases/v2.4.0\nreleases/v2.3.0\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/2a0e1d13b5222dca4388c0ec8a4bb74ea6fa4af2\"\u003e\u003ccode\u003e2a0e1d1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3388\"\u003e#3388\u003c/a\u003e from bdarnell/release-641\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/b7af4e8f5ee578b78e1be5ade43fdb1103659a0e\"\u003e\u003ccode\u003eb7af4e8\u003c/code\u003e\u003c/a\u003e Release notes and version bump for version 6.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/d65f6e71a77f53a1ff0a0dc55704be13f04eb572\"\u003e\u003ccode\u003ed65f6e7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3387\"\u003e#3387\u003c/a\u003e from bdarnell/chunked-parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/8d721a877dd5c2bc0693d9c4d3954eb11fbd404b\"\u003e\u003ccode\u003e8d721a8\u003c/code\u003e\u003c/a\u003e httputil: Only strip tabs and spaces from header values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/7786f09f84c9f3f2012c4cf3878417cb9f053669\"\u003e\u003ccode\u003e7786f09\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3386\"\u003e#3386\u003c/a\u003e from bdarnell/curl-crlf\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/fb119c767e9c43e71ea823311b0d53f566d86b73\"\u003e\u003ccode\u003efb119c7\u003c/code\u003e\u003c/a\u003e http1connection: Stricter handling of transfer-encoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/b0ffc58e02f33f6aa480f008b74495601d988ce1\"\u003e\u003ccode\u003eb0ffc58\u003c/code\u003e\u003c/a\u003e curl_httpclient,http1connection: Prohibit CR and LF in headers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/0efa9a42b4c94ee98549d86992c68227f83efd4e\"\u003e\u003ccode\u003e0efa9a4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3385\"\u003e#3385\u003c/a\u003e from bdarnell/update-black\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/2757c6e4874968dd2f74a4d08b450da795de5b6c\"\u003e\u003ccode\u003e2757c6e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3384\"\u003e#3384\u003c/a\u003e from tornadoweb/dependabot/pip/requests-2.32.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/291d1b661be273b86792e965ac65f9bced8d4ebe\"\u003e\u003ccode\u003e291d1b6\u003c/code\u003e\u003c/a\u003e *: Update black\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tornadoweb/tornado/compare/v6.3.3...v6.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.0.7 to 2.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003eProxy-Authorization\u003c/code\u003e header to the list of headers to strip from requests when redirecting to a different host. As before, different headers can be set via \u003ccode\u003eRetry.remove_headers_on_redirect\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAllowed passing negative integers as \u003ccode\u003eamt\u003c/code\u003e to read methods of \u003ccode\u003ehttp.client.HTTPResponse\u003c/code\u003e as an alternative to \u003ccode\u003eNone\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3122\"\u003e#3122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed return types representing copying actions to use \u003ccode\u003etyping.Self\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3363\"\u003e#3363\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.2.1...2.2.2\"\u003ehttps://github.com/urllib3/urllib3/compare/2.2.1...2.2.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.2.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed issue where \u003ccode\u003eInsecureRequestWarning\u003c/code\u003e was emitted for HTTPS connections when using Emscripten. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3331\"\u003e#3331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPConnectionPool.urlopen\u003c/code\u003e to stop automatically casting non-proxy headers to \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e. This change was premature as it did not apply to proxy headers and \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e does not handle byte header values correctly yet. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3343\"\u003e#3343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eProtocolError\u003c/code\u003e to \u003ccode\u003eInvalidChunkLength\u003c/code\u003e when response terminates before the chunk length is sent. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/2860\"\u003e#2860\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eProtocolError\u003c/code\u003e to be more verbose on incomplete reads with excess content. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3261\"\u003e#3261\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003ch2\u003e🖥️ urllib3 now works in the browser\u003c/h2\u003e\n\u003cp\u003e:tada: \u003cstrong\u003eThis release adds experimental support for \u003ca href=\"https://urllib3.readthedocs.io/en/stable/reference/contrib/emscripten.html\"\u003eusing urllib3 in the browser with Pyodide\u003c/a\u003e!\u003c/strong\u003e :tada:\u003c/p\u003e\n\u003cp\u003eThanks to Joe Marshall (\u003ca href=\"https://github.com/joemarshall\"\u003e\u003ccode\u003e@​joemarshall\u003c/code\u003e\u003c/a\u003e) for contributing this feature. This change was possible thanks to work done in urllib3 v2.0 to detach our API from \u003ccode\u003ehttp.client\u003c/code\u003e. Please report all bugs to the \u003ca href=\"https://github.com/urllib3/urllib3/issues\"\u003eurllib3 issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://urllib3.readthedocs.io/en/latest/reference/contrib/emscripten.html\"\u003eEmscripten and Pyodide\u003c/a\u003e, including streaming support in cross-origin isolated browser environments where threading is enabled. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/2951\"\u003e#2951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eHTTPResponse.read1()\u003c/code\u003e method. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3186\"\u003e#3186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded rudimentary support for HTTP/2. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3284\"\u003e#3284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed issue where requests against urls with trailing dots were failing due to SSL errors\nwhen using proxy. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/2244\"\u003e#2244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPConnection.proxy_is_verified\u003c/code\u003e and \u003ccode\u003eHTTPSConnection.proxy_is_verified\u003c/code\u003e to be always set to a boolean after connecting to a proxy. It could be \u003ccode\u003eNone\u003c/code\u003e in some cases previously. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3130\"\u003e#3130\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/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.2.2 (2024-06-17)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003eProxy-Authorization\u003c/code\u003e header to the list of headers to strip from requests when redirecting to a different host. As before, different headers can be set via \u003ccode\u003eRetry.remove_headers_on_redirect\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAllowed passing negative integers as \u003ccode\u003eamt\u003c/code\u003e to read methods of \u003ccode\u003ehttp.client.HTTPResponse\u003c/code\u003e as an alternative to \u003ccode\u003eNone\u003c/code\u003e. (\u003ccode\u003e[#3122](https://github.com/urllib3/urllib3/issues/3122) \u0026lt;https://github.com/urllib3/urllib3/issues/3122\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed return types representing copying actions to use \u003ccode\u003etyping.Self\u003c/code\u003e. (\u003ccode\u003e[#3363](https://github.com/urllib3/urllib3/issues/3363) \u0026lt;https://github.com/urllib3/urllib3/issues/3363\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.2.1 (2024-02-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed issue where \u003ccode\u003eInsecureRequestWarning\u003c/code\u003e was emitted for HTTPS connections when using Emscripten. (\u003ccode\u003e[#3331](https://github.com/urllib3/urllib3/issues/3331) \u0026lt;https://github.com/urllib3/urllib3/issues/3331\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPConnectionPool.urlopen\u003c/code\u003e to stop automatically casting non-proxy headers to \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e. This change was premature as it did not apply to proxy headers and \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e does not handle byte header values correctly yet. (\u003ccode\u003e[#3343](https://github.com/urllib3/urllib3/issues/3343) \u0026lt;https://github.com/urllib3/urllib3/issues/3343\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eInvalidChunkLength\u003c/code\u003e to \u003ccode\u003eProtocolError\u003c/code\u003e when response terminates before the chunk length is sent. (\u003ccode\u003e[#2860](https://github.com/urllib3/urllib3/issues/2860) \u0026lt;https://github.com/urllib3/urllib3/issues/2860\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eProtocolError\u003c/code\u003e to be more verbose on incomplete reads with excess content. (\u003ccode\u003e[#3261](https://github.com/urllib3/urllib3/issues/3261) \u0026lt;https://github.com/urllib3/urllib3/issues/3261\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.2.0 (2024-01-30)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eEmscripten and Pyodide \u0026lt;https://urllib3.readthedocs.io/en/latest/reference/contrib/emscripten.html\u0026gt;\u003c/code\u003e\u003cstrong\u003e, including streaming support in cross-origin isolated browser environments where threading is enabled. (\u003ccode\u003e[#2951](https://github.com/urllib3/urllib3/issues/2951) \u0026lt;https://github.com/urllib3/urllib3/issues/2951\u0026gt;\u003c/code\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eHTTPResponse.read1()\u003c/code\u003e method. (\u003ccode\u003e[#3186](https://github.com/urllib3/urllib3/issues/3186) \u0026lt;https://github.com/urllib3/urllib3/issues/3186\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded rudimentary support for HTTP/2. (\u003ccode\u003e[#3284](https://github.com/urllib3/urllib3/issues/3284) \u0026lt;https://github.com/urllib3/urllib3/issues/3284\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed issue where requests against urls with trailing dots were failing due to SSL errors\nwhen using proxy. (\u003ccode\u003e[#2244](https://github.com/urllib3/urllib3/issues/2244) \u0026lt;https://github.com/urllib3/urllib3/issues/2244\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPConnection.proxy_is_verified\u003c/code\u003e and \u003ccode\u003eHTTPSConnection.proxy_is_verified\u003c/code\u003e\nto be always set to a boolean after connecting to a proxy. It could be\n\u003ccode\u003eNone\u003c/code\u003e in some cases previously. (\u003ccode\u003e[#3130](https://github.com/urllib3/urllib3/issues/3130) \u0026lt;https://github.com/urllib3/urllib3/issues/3130\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed an issue where \u003ccode\u003eheaders\u003c/code\u003e passed in a request with \u003ccode\u003ejson=\u003c/code\u003e would be mutated (\u003ccode\u003e[#3203](https://github.com/urllib3/urllib3/issues/3203) \u0026lt;https://github.com/urllib3/urllib3/issues/3203\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPSConnection.is_verified\u003c/code\u003e to be set to \u003ccode\u003eFalse\u003c/code\u003e when connecting\nfrom a HTTPS proxy to an HTTP target. It was set to \u003ccode\u003eTrue\u003c/code\u003e previously. (\u003ccode\u003e[#3267](https://github.com/urllib3/urllib3/issues/3267) \u0026lt;https://github.com/urllib3/urllib3/issues/3267\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed handling of new error message from OpenSSL 3.2.0 when configuring an HTTP proxy as HTTPS (\u003ccode\u003e[#3268](https://github.com/urllib3/urllib3/issues/3268) \u0026lt;https://github.com/urllib3/urllib3/issues/3268\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed TLS 1.3 post-handshake auth when the server certificate validation is disabled (\u003ccode\u003e[#3325](https://github.com/urllib3/urllib3/issues/3325) \u0026lt;https://github.com/urllib3/urllib3/issues/3325\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eNote for downstream distributors: To run integration tests, you now need to run the tests a second\ntime with the \u003ccode\u003e--integration\u003c/code\u003e pytest flag. (\u003ccode\u003e[#3181](https://github.com/urllib3/urllib3/issues/3181) \u0026lt;https://github.com/urllib3/urllib3/issues/3181\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.1.0 (2023-11-13)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for the deprecated urllib3[secure] extra. (\u003ccode\u003e[#2680](https://github.com/urllib3/urllib3/issues/2680) \u0026lt;https://github.com/urllib3/urllib3/issues/2680\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eRemoved support for the deprecated SecureTransport TLS implementation. (\u003ccode\u003e[#2681](https://github.com/urllib3/urllib3/issues/2681) \u0026lt;https://github.com/urllib3/urllib3/issues/2681\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eRemoved support for the end-of-life Python 3.7. (\u003ccode\u003e[#3143](https://github.com/urllib3/urllib3/issues/3143) \u0026lt;https://github.com/urllib3/urllib3/issues/3143\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAllowed loading CA certificates from memory for proxies. (\u003ccode\u003e[#3065](https://github.com/urllib3/urllib3/issues/3065) \u0026lt;https://github.com/urllib3/urllib3/issues/3065\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed decoding Gzip-encoded responses which specified \u003ccode\u003ex-gzip\u003c/code\u003e content-encoding. (\u003ccode\u003e[#3174](https://github.com/urllib3/urllib3/issues/3174) \u0026lt;https://github.com/urllib3/urllib3/issues/3174\u0026gt;\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/urllib3/urllib3/commit/27e2a5c5a7ab6a517252cc8dcef3ffa6ffb8f61a\"\u003e\u003ccode\u003e27e2a5c\u003c/code\u003e\u003c/a\u003e Release 2.2.2 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3406\"\u003e#3406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/accff72ecc2f6cf5a76d9570198a93ac7c90270e\"\u003e\u003ccode\u003eaccff72\u003c/code\u003e\u003c/a\u003e Merge pull request from GHSA-34jh-p97f-mpxf\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/34be4a57e59eb7365bcc37d52e9f8271b5b8d0d3\"\u003e\u003ccode\u003e34be4a5\u003c/code\u003e\u003c/a\u003e Pin CFFI to a new release candidate instead of a Git commit (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3398\"\u003e#3398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/da410581b6b3df73da976b5ce5eb20a4bd030437\"\u003e\u003ccode\u003eda41058\u003c/code\u003e\u003c/a\u003e Bump browser-actions/setup-chrome from 1.6.0 to 1.7.1 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3399\"\u003e#3399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/b07a669bd970d69847801148286b726f0570b625\"\u003e\u003ccode\u003eb07a669\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 2.13.4 to 3.25.6 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3396\"\u003e#3396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/b8589ec9f8c4da91511e601b632ac06af7e7c10e\"\u003e\u003ccode\u003eb8589ec\u003c/code\u003e\u003c/a\u003e Measure coverage with v4 of artifact actions (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3394\"\u003e#3394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/f3bdc5585111429e22c81b5fb26c3ec164d98b81\"\u003e\u003ccode\u003ef3bdc55\u003c/code\u003e\u003c/a\u003e Allow triggering CI manually (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3391\"\u003e#3391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/52392654b30183129cf3ec06010306f517d9c146\"\u003e\u003ccode\u003e5239265\u003c/code\u003e\u003c/a\u003e Fix HTTP version in debug log (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3316\"\u003e#3316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/b34619f94ece0c40e691a5aaf1304953d88089de\"\u003e\u003ccode\u003eb34619f\u003c/code\u003e\u003c/a\u003e Bump actions/checkout to 4.1.4 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3387\"\u003e#3387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/9961d14de7c920091d42d42ed76d5d479b80064d\"\u003e\u003ccode\u003e9961d14\u003c/code\u003e\u003c/a\u003e Bump browser-actions/setup-chrome from 1.5.0 to 1.6.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3386\"\u003e#3386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.0.7...2.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `zipp` from 3.16.2 to 3.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jaraco/zipp/blob/main/NEWS.rst\"\u003ezipp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev3.19.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved handling of malformed zip files. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/119\"\u003e#119\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev3.19.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement is_symlink. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/117\"\u003e#117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev3.18.2\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch1\u003ev3.18.1\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch1\u003ev3.18.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBypass ZipFile.namelist in glob for better performance. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/106\"\u003e#106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored glob functionality to support a more generalized solution with support for platform-specific path separators. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/108\"\u003e#108\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd special accounting for pypy when computing the stack level for text encoding warnings. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/114\"\u003e#114\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev3.17.0\u003c/h1\u003e\n\u003cp\u003eFeatures\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/jaraco/zipp/commit/6d1cb72aa55e0536f35d2af128994b5a61ca4c1a\"\u003e\u003ccode\u003e6d1cb72\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/fd604bd34f0343472521a36da1fbd22e793e14fd\"\u003e\u003ccode\u003efd604bd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/120\"\u003e#120\u003c/a\u003e from jaraco/bugfix/119-malformed-paths\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/c18417ed2953e181728a7dac07bff88a2190abf7\"\u003e\u003ccode\u003ec18417e\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/58115d2be968644ce71ce6bcc9b79826c82a1806\"\u003e\u003ccode\u003e58115d2\u003c/code\u003e\u003c/a\u003e Employ SanitizedNames in CompleteDirs. Fixes broken test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/564fcc10cdbfdaecdb33688e149827465931c9e0\"\u003e\u003ccode\u003e564fcc1\u003c/code\u003e\u003c/a\u003e Add SanitizedNames mixin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/79a309fe54dc6b7934fb72e9f31bcb58f2e9f547\"\u003e\u003ccode\u003e79a309f\u003c/code\u003e\u003c/a\u003e Add some assertions about malformed paths.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/2d015c22348fab46ca765339f55f84fe9d6e8115\"\u003e\u003ccode\u003e2d015c2\u003c/code\u003e\u003c/a\u003e Merge \u003ca href=\"https://github.com/jaraco/skeleton\"\u003ehttps://github.com/jaraco/skeleton\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/a595a0fad054cd20b69d3e954c99174e3a548938\"\u003e\u003ccode\u003ea595a0f\u003c/code\u003e\u003c/a\u003e Rename extras to align with core metadata spec.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/608f90a6e74919501577a1312dc5c7d8e1d391d7\"\u003e\u003ccode\u003e608f90a\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/3a22d724acf874111b43f87f7110225122ec3de5\"\u003e\u003ccode\u003e3a22d72\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/118\"\u003e#118\u003c/a\u003e from jaraco/feature/is-symlink\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jaraco/zipp/compare/v3.16.2...v3.19.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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/fb8works/bl-notebook/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/fb8works/bl-notebook/pull/12","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/fb8works%2Fbl-notebook/issues/12","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12/packages"}],"issue_packages":[{"old_version":"2.5.0","new_version":"2.7.0","update_type":"minor","path":null,"pr_created_at":"2026-05-13T12:43:09.000Z","version_change":"2.5.0 → 2.7.0","issue":{"uuid":"4437947118","node_id":"PR_kwDOOFC0s87bHlb4","number":1,"state":"open","title":"Bump the uv group across 3 directories with 10 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-13T12:43:09.000Z","updated_at":"2026-05-13T12:43:36.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"uv","update_count":10,"packages":[{"name":"starlette","old_version":"0.47.3","new_version":"0.49.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"python-multipart","old_version":"0.0.20","new_version":"0.0.27","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"python-dotenv","old_version":"1.1.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"},{"name":"pytest","old_version":"8.4.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"black","old_version":"25.1.0","new_version":"26.3.1","repository_url":"https://github.com/psf/black"},{"name":"pillow","old_version":"11.3.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"}],"path":null,"ecosystem":"conda"},"body":"Bumps the uv group with 8 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [starlette](https://github.com/Kludex/starlette) | `0.47.3` | `0.49.1` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.20` | `0.0.27` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.1.1` | `1.2.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.3` |\n| [black](https://github.com/psf/black) | `25.1.0` | `26.3.1` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.3.0` | `12.2.0` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.5.0` | `2.7.0` |\n\nBumps the uv group with 7 updates in the /examples/clients/simple-chatbot directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [starlette](https://github.com/Kludex/starlette) | `0.45.2` | `0.49.1` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.0.1` | `1.2.2` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.4` | `9.0.3` |\n| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `1.2.0` | `1.23.0` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.33.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.3.0` | `2.7.0` |\n\nBumps the uv group with 4 updates in the /examples/clients/simple-auth-client directory: [starlette](https://github.com/Kludex/starlette), [python-multipart](https://github.com/Kludex/python-multipart), [python-dotenv](https://github.com/theskumar/python-dotenv) and [pytest](https://github.com/pytest-dev/pytest).\n\nUpdates `starlette` from 0.47.3 to 0.49.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.49.1\u003c/h2\u003e\n\u003cp\u003eThis release fixes a security vulnerability in the parsing logic of the \u003ccode\u003eRange\u003c/code\u003e header in \u003ccode\u003eFileResponse\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eYou can view the full security advisory: \u003ca href=\"https://github.com/Kludex/starlette/security/advisories/GHSA-7f5h-v6xp-fcq8\"\u003eGHSA-7f5h-v6xp-fcq8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize the HTTP ranges parsing logic \u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e4ea6e22b489ec388d6004cfbca52dd5b147127c5\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.0...0.49.1\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.0...0.49.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.49.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eencoding\u003c/code\u003e parameter to \u003ccode\u003eConfig\u003c/code\u003e class \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003e#2996\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport multiple cookie headers in \u003ccode\u003eRequest.cookies\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3029\"\u003e#3029\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLiteral\u003c/code\u003e type for \u003ccode\u003eWebSocketEndpoint\u003c/code\u003e encoding values \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003e#3027\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDo not pollute exception context in \u003ccode\u003eMiddleware\u003c/code\u003e when using \u003ccode\u003eBaseHTTPMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003e#2976\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TheWesDias\"\u003e\u003ccode\u003e@​TheWesDias\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3017\"\u003eKludex/starlette#3017\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gmos2104\"\u003e\u003ccode\u003e@​gmos2104\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003eKludex/starlette#3027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/secrett2633\"\u003e\u003ccode\u003e@​secrett2633\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003eKludex/starlette#2996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adam-sikora\"\u003e\u003ccode\u003e@​adam-sikora\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003eKludex/starlette#2976\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.48.0...0.49.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.48.0...0.49.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.48.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd official Python 3.14 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3013\"\u003e#3013\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ca href=\"https://www.rfc-editor.org/rfc/rfc9110\"\u003eRFC9110\u003c/a\u003e http status names \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003e#2939\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yakimka\"\u003e\u003ccode\u003e@​yakimka\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2943\"\u003eKludex/starlette#2943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mbeijen\"\u003e\u003ccode\u003e@​mbeijen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003eKludex/starlette#2939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.47.3...0.48.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.47.3...0.48.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.49.1 (October 28, 2025)\u003c/h2\u003e\n\u003cp\u003eThis release fixes a security vulnerability in the parsing logic of the \u003ccode\u003eRange\u003c/code\u003e header in \u003ccode\u003eFileResponse\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eYou can view the full security advisory: \u003ca href=\"https://github.com/Kludex/starlette/security/advisories/GHSA-7f5h-v6xp-fcq8\"\u003eGHSA-7f5h-v6xp-fcq8\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize the HTTP ranges parsing logic \u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e4ea6e22b489ec388d6004cfbca52dd5b147127c5\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.49.0 (October 28, 2025)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eencoding\u003c/code\u003e parameter to \u003ccode\u003eConfig\u003c/code\u003e class \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003e#2996\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport multiple cookie headers in \u003ccode\u003eRequest.cookies\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3029\"\u003e#3029\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLiteral\u003c/code\u003e type for \u003ccode\u003eWebSocketEndpoint\u003c/code\u003e encoding values \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003e#3027\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDo not pollute exception context in \u003ccode\u003eMiddleware\u003c/code\u003e when using \u003ccode\u003eBaseHTTPMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003e#2976\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.48.0 (September 13, 2025)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd official Python 3.14 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3013\"\u003e#3013\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ca href=\"https://www.rfc-editor.org/rfc/rfc9110\"\u003eRFC9110\u003c/a\u003e http status names \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003e#2939\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/7e4b7428f273dbdc875dcd036d20804bcfc7b2ee\"\u003e\u003ccode\u003e7e4b742\u003c/code\u003e\u003c/a\u003e Version 0.49.1 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3047\"\u003e#3047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e\u003ccode\u003e4ea6e22\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/7d88ea6f8ec8aa99cdb5fc7a10b88db5aadfdfee\"\u003e\u003ccode\u003e7d88ea6\u003c/code\u003e\u003c/a\u003e Version 0.49.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3046\"\u003e#3046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/26d66bbfb05c7bbecbbb57106c65f33682f8174e\"\u003e\u003ccode\u003e26d66bb\u003c/code\u003e\u003c/a\u003e Do not pollute exception context in Middleware (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/a59397db889e3a96c4f34b1406957a3b92e1e8b5\"\u003e\u003ccode\u003ea59397d\u003c/code\u003e\u003c/a\u003e Set encodings when reading config files (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3b7f0cbf598be305528a498a35089ce723060372\"\u003e\u003ccode\u003e3b7f0cb\u003c/code\u003e\u003c/a\u003e test: add test for unknown status (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3035\"\u003e#3035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/b09ce1a99d352ee6f5b896597f03a1a57507afcd\"\u003e\u003ccode\u003eb09ce1a\u003c/code\u003e\u003c/a\u003e docs: fix legibility issues on sponsorship page (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3039\"\u003e#3039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/0f0edcf8007412d9536bf8714c5815ce8f5dba4b\"\u003e\u003ccode\u003e0f0edcf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Add Marcelo Trylesinski to the license (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3025\"\u003e#3025\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3044\"\u003e#3044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3912d6313730cc6004dfb4436e37dbc1a81db7c8\"\u003e\u003ccode\u003e3912d63\u003c/code\u003e\u003c/a\u003e docs: add social icons (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3038\"\u003e#3038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4915a9309fcad58ac08b9fa550563d3287b531ad\"\u003e\u003ccode\u003e4915a93\u003c/code\u003e\u003c/a\u003e Add discord to README/docs (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3034\"\u003e#3034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.47.3...0.49.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.20 to 0.0.27\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.27\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePass parse offsets via constructors by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/268\"\u003eKludex/python-multipart#268\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd multipart header limits by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/267\"\u003eKludex/python-multipart#267\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.26...0.0.27\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.26\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before first multipart boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003eKludex/python-multipart#262\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing boundary by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003eKludex/python-multipart#259\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.25...0.0.26\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.25\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eApply Apache-2.0 properly by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003eKludex/python-multipart#247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003eKludex/python-multipart#252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003eKludex/python-multipart#230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003eKludex/python-multipart#254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove custom FormParser classes by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003eKludex/python-multipart#257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003eKludex/python-multipart#258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd MIME content type info to File by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003eKludex/python-multipart#143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.24...0.0.25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003eKludex/python-multipart#244\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003eKludex/python-multipart#196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e by \u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.22\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/blob/main/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.27 (2026-04-27)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd multipart header limits \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/267\"\u003e#267\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePass parse offsets via constructors \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/268\"\u003e#268\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.26 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSkip preamble before the first multipart boundary more efficiently \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/262\"\u003e#262\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSilently discard epilogue data after the closing multipart boundary \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/259\"\u003e#259\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.25 (2026-04-10)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd MIME content type info to \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/143\"\u003e#143\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle CTE values case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/258\"\u003e#258\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eRemove custom \u003ccode\u003eFormParser\u003c/code\u003e classes \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/257\"\u003e#257\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eUPLOAD_DELETE_TMP\u003c/code\u003e to \u003ccode\u003eFormParser\u003c/code\u003e config \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/254\"\u003e#254\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eEmit \u003ccode\u003efield_end\u003c/code\u003e for trailing bare field names on finalize \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/230\"\u003e#230\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eHandle multipart headers case-insensitively \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/252\"\u003e#252\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eApply Apache-2.0 properly \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/247\"\u003e#247\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.24 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003e#244\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.23 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003e#196\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003e#229\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003e#227\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.22 (2026-01-25)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop directory path from filename in \u003ccode\u003eFile\u003c/code\u003e \u003ca href=\"https://github.com/Kludex/python-multipart/commit/9433f4bbc9652bdde82bbe380984e32f8cfc89c4\"\u003e9433f4b\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.21 (2025-12-17)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14 and drop EOL 3.8 and 3.9 \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/216\"\u003e#216\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6d1d6892a6b01b25da6f3e7b097e8e06c57fb250\"\u003e\u003ccode\u003e6d1d689\u003c/code\u003e\u003c/a\u003e Version 0.0.27 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/272\"\u003e#272\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/0b10220b1555af068a2bc8b198022b1ae238200f\"\u003e\u003ccode\u003e0b10220\u003c/code\u003e\u003c/a\u003e Run CI on main branch pull requests (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/271\"\u003e#271\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/3e64f5f8caba0e5d391b0c1ad0f1c2edf9e8f911\"\u003e\u003ccode\u003e3e64f5f\u003c/code\u003e\u003c/a\u003e Add multipart header limits (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/267\"\u003e#267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/eb109cc4eb8174f2a7efc1ba894b1bf6425c0b14\"\u003e\u003ccode\u003eeb109cc\u003c/code\u003e\u003c/a\u003e Pass parse offsets via constructors (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/268\"\u003e#268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/78e29abb9a339598975beee093a770ec3033f76d\"\u003e\u003ccode\u003e78e29ab\u003c/code\u003e\u003c/a\u003e Bump pytest from 9.0.2 to 9.0.3 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/266\"\u003e#266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/b2ddd0982bdf0fe852e4f3baa12122d2827af46c\"\u003e\u003ccode\u003eb2ddd09\u003c/code\u003e\u003c/a\u003e fuzz: Enhance fuzzing capabilities with new chunked and boundary tests (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/264\"\u003e#264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/28f47859b4a40c2e11e02dc514b2e9743ceedd2e\"\u003e\u003ccode\u003e28f4785\u003c/code\u003e\u003c/a\u003e Version 0.0.26 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/263\"\u003e#263\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/d4452a78bbde94995dd3c0d1b4aff3610a5c472f\"\u003e\u003ccode\u003ed4452a7\u003c/code\u003e\u003c/a\u003e Silently discard epilogue data after the closing boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/259\"\u003e#259\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/6a7b76dd2653d99d8e5981d7ff09a4a047750b37\"\u003e\u003ccode\u003e6a7b76d\u003c/code\u003e\u003c/a\u003e Skip preamble before first multipart boundary (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/262\"\u003e#262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/4addb60350fc843f77a1502f14247db91930b3bf\"\u003e\u003ccode\u003e4addb60\u003c/code\u003e\u003c/a\u003e Version 0.0.25 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/261\"\u003e#261\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.20...0.0.27\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.1.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (#)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/607\"\u003etheskumar/python-dotenv#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e#790c5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by \u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eskip 000 permission tests for root user by \u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/593\"\u003etheskumar/python-dotenv#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Windows testing to CI by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/604\"\u003etheskumar/python-dotenv#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove workflow efficiency with best practices by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/609\"\u003etheskumar/python-dotenv#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the use of \u003ccode\u003esh\u003c/code\u003e in tests by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/612\"\u003etheskumar/python-dotenv#612\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/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpackham-atlnz\"\u003e\u003ccode\u003e@​cpackham-atlnz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/597\"\u003etheskumar/python-dotenv#597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.2.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.2] - 2026-03-01\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eDropped Support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in [790c5c0]\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by [\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/590\"\u003e#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.1] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove more config to \u003ccode\u003epyproject.toml\u003c/code\u003e, removed \u003ccode\u003esetup.cfg\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for reading \u003ccode\u003e.env\u003c/code\u003e from FIFOs (Unix) by [\u003ca href=\"https://github.com/sidharth-sudhir\"\u003e\u003ccode\u003e@​sidharth-sudhir\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/586\"\u003e#586\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[1.2.0] - 2025-10-26\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpgrade build system to use PEP 517 \u0026amp; PEP 518 to use \u003ccode\u003ebuild\u003c/code\u003e and \u003ccode\u003epyproject.toml\u003c/code\u003e by [\u003ca href=\"https://github.com/EpicWink\"\u003e\u003ccode\u003e@​EpicWink\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/583\"\u003e#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for Python 3.14 by [\u003ca href=\"https://github.com/23f3001135\"\u003e\u003ccode\u003e@​23f3001135\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/579\"\u003e#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for disabling of \u003ccode\u003eload_dotenv()\u003c/code\u003e using \u003ccode\u003ePYTHON_DOTENV_DISABLED\u003c/code\u003e env var. by [\u003ca href=\"https://github.com/matthewfranglen\"\u003e\u003ccode\u003e@​matthewfranglen\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/569\"\u003e#569\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/36004e0e34be7665ff2b11a8a4005144f76f176d\"\u003e\u003ccode\u003e36004e0\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.1 → 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/eb202520e5933c9daf42501e1e42fdb0144002c8\"\u003e\u003ccode\u003eeb20252\u003c/code\u003e\u003c/a\u003e docs: update changelog for v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e\u003ccode\u003e790c5c0\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/43340da220fb4ca4f95357bbe21a3c7f8f1278b1\"\u003e\u003ccode\u003e43340da\u003c/code\u003e\u003c/a\u003e Remove the use of \u003ccode\u003esh\u003c/code\u003e in tests (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/09d7cee32459e7abdcb5c9d8122a552589c06a9c\"\u003e\u003ccode\u003e09d7cee\u003c/code\u003e\u003c/a\u003e docs: clarify override behavior and document FIFO support (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/610\"\u003e#610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/c8de2887c00198c22842c5ae5e92d1747467363c\"\u003e\u003ccode\u003ec8de288\u003c/code\u003e\u003c/a\u003e ci: improve workflow efficiency with best practices (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/7bd9e3dbfedc0983ad7d56d5570013035242bdf4\"\u003e\u003ccode\u003e7bd9e3d\u003c/code\u003e\u003c/a\u003e Add Windows testing to CI (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1baaf04f336072e0ee324d5df9563ec767f14f81\"\u003e\u003ccode\u003e1baaf04\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support and update to PyPy 3.11 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a22cf8993804aeede0c20b75bb1a29d3a99e9dc\"\u003e\u003ccode\u003e4a22cf8\u003c/code\u003e\u003c/a\u003e ci: enable testing on Python 3.14t (free-threaded) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e2e8e776b42e382ae38b44d3982dd649e7507dd4\"\u003e\u003ccode\u003ee2e8e77\u003c/code\u003e\u003c/a\u003e Fix license specifier (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.1.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.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\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.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 `black` from 25.1.0 to 26.3.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/black/releases\"\u003eblack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.3.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent Jupyter notebook magic masking collisions from corrupting cells by using\nexact-length placeholders for short magics and aborting if a placeholder can no longer\nbe unmasked safely (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways hash cache filename components derived from \u003ccode\u003e--python-cell-magics\u003c/code\u003e so custom\nmagic names cannot affect cache paths (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable browser-originated requests by default, add configurable origin allowlisting\nand request body limits, and bound executor submissions to improve backpressure\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e26.3.0\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't double-decode input, causing non-UTF-8 files to be corrupted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4964\"\u003e#4964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on standalone comment in lambda default arguments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4993\"\u003e#4993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve parentheses when \u003ccode\u003e# type: ignore\u003c/code\u003e comments would be merged with other\ncomments on the same line, preventing AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4888\"\u003e#4888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where \u003ccode\u003eif\u003c/code\u003e guards in \u003ccode\u003ecase\u003c/code\u003e blocks were incorrectly split when the pattern had\na trailing comma (\u003ca href=\"https://redirect.github.com/psf/black/issues/4884\"\u003e#4884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003estring_processing\u003c/code\u003e crashing on unassigned long string literals with trailing\ncommas (one-item tuples) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4929\"\u003e#4929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify implementation of the power operator \u0026quot;hugging\u0026quot; logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4918\"\u003e#4918\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in\nfrozen environments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4930\"\u003e#4930\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce winloop for windows as an alternative to uvloop (\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated function \u003ccode\u003euvloop.install()\u003c/code\u003e in favor of \u003ccode\u003euvloop.new_event_loop()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003emaybe_install_uvloop\u003c/code\u003e function to \u003ccode\u003emaybe_use_uvloop\u003c/code\u003e to simplify loop\ninstallation and creation of either a uvloop/winloop evenloop or default eventloop\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOutput\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/psf/black/blob/main/CHANGES.md\"\u003eblack's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 26.3.1\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent Jupyter notebook magic masking collisions from corrupting cells by using\nexact-length placeholders for short magics and aborting if a placeholder can no longer\nbe unmasked safely (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eConfiguration\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAlways hash cache filename components derived from \u003ccode\u003e--python-cell-magics\u003c/code\u003e so custom\nmagic names cannot affect cache paths (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003cem\u003eBlackd\u003c/em\u003e\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDisable browser-originated requests by default, add configurable origin allowlisting\nand request body limits, and bound executor submissions to improve backpressure\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 26.3.0\u003c/h2\u003e\n\u003ch3\u003eStable style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't double-decode input, causing non-UTF-8 files to be corrupted (\u003ca href=\"https://redirect.github.com/psf/black/issues/4964\"\u003e#4964\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on standalone comment in lambda default arguments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4993\"\u003e#4993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve parentheses when \u003ccode\u003e# type: ignore\u003c/code\u003e comments would be merged with other\ncomments on the same line, preventing AST equivalence failures (\u003ca href=\"https://redirect.github.com/psf/black/issues/4888\"\u003e#4888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePreview style\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug where \u003ccode\u003eif\u003c/code\u003e guards in \u003ccode\u003ecase\u003c/code\u003e blocks were incorrectly split when the pattern had\na trailing comma (\u003ca href=\"https://redirect.github.com/psf/black/issues/4884\"\u003e#4884\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003estring_processing\u003c/code\u003e crashing on unassigned long string literals with trailing\ncommas (one-item tuples) (\u003ca href=\"https://redirect.github.com/psf/black/issues/4929\"\u003e#4929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSimplify implementation of the power operator \u0026quot;hugging\u0026quot; logic (\u003ca href=\"https://redirect.github.com/psf/black/issues/4918\"\u003e#4918\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix shutdown errors in PyInstaller builds on macOS by disabling multiprocessing in\nfrozen environments (\u003ca href=\"https://redirect.github.com/psf/black/issues/4930\"\u003e#4930\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce winloop for windows as an alternative to uvloop (\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove deprecated function \u003ccode\u003euvloop.install()\u003c/code\u003e in favor of \u003ccode\u003euvloop.new_event_loop()\u003c/code\u003e\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRename \u003ccode\u003emaybe_install_uvloop\u003c/code\u003e function to \u003ccode\u003emaybe_use_uvloop\u003c/code\u003e to simplify loop\ninstallation and creation of either a uvloop/winloop eventloop or default eventloop\n(\u003ca href=\"https://redirect.github.com/psf/black/issues/4996\"\u003e#4996\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/psf/black/commit/c6755bb741b6481d6b3d3bb563c83fa060db96c9\"\u003e\u003ccode\u003ec6755bb\u003c/code\u003e\u003c/a\u003e Prepare release 26.3.1 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5046\"\u003e#5046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/69973fd6950985fbeb1090d96da717dc4d8380b0\"\u003e\u003ccode\u003e69973fd\u003c/code\u003e\u003c/a\u003e Harden blackd browser-facing request handling (\u003ca href=\"https://redirect.github.com/psf/black/issues/5039\"\u003e#5039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/4937fe6cf241139ddbfc16b0bdbb5b422798909d\"\u003e\u003ccode\u003e4937fe6\u003c/code\u003e\u003c/a\u003e Fix some shenanigans with the cache file and IPython (\u003ca href=\"https://redirect.github.com/psf/black/issues/5038\"\u003e#5038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/2e641d174469c505d5ae905e75d4c769597e681f\"\u003e\u003ccode\u003e2e641d1\u003c/code\u003e\u003c/a\u003e docs: remove outdated Black Playground references (\u003ca href=\"https://redirect.github.com/psf/black/issues/5044\"\u003e#5044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c014b22a2d5e0632587b47b81151658bddfa0b88\"\u003e\u003ccode\u003ec014b22\u003c/code\u003e\u003c/a\u003e Remove unused internal code (\u003ca href=\"https://redirect.github.com/psf/black/issues/5041\"\u003e#5041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/0dae20b2d009f2f03de8696d06b0c947d3abafc9\"\u003e\u003ccode\u003e0dae20b\u003c/code\u003e\u003c/a\u003e Add new changelog (\u003ca href=\"https://redirect.github.com/psf/black/issues/5036\"\u003e#5036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/c5c1cbddd92cecb554ac2a77a24139dd76831030\"\u003e\u003ccode\u003ec5c1cbd\u003c/code\u003e\u003c/a\u003e Minor release patches (\u003ca href=\"https://redirect.github.com/psf/black/issues/5035\"\u003e#5035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/7e5a828c37d71b6a6666e28eed444816def6a8f4\"\u003e\u003ccode\u003e7e5a828\u003c/code\u003e\u003c/a\u003e docs: clarify relationship between Black style and PEP 8 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5025\"\u003e#5025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/69705deb8776e7c5e585668da106d1abe2cb8d77\"\u003e\u003ccode\u003e69705de\u003c/code\u003e\u003c/a\u003e docs: add clearer pyproject configuration guidance (\u003ca href=\"https://redirect.github.com/psf/black/issues/5026\"\u003e#5026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/black/commit/35ea67920b7f6ac8e09be1c47278752b1e827f76\"\u003e\u003ccode\u003e35ea679\u003c/code\u003e\u003c/a\u003e Prepare release 26.3.0 (\u003ca href=\"https://redirect.github.com/psf/black/issues/5032\"\u003e#5032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/black/compare/25.1.0...26.3.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 11.3.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/3c41c095064200a02672d89cc5ff629eaf4b0d4f\"\u003e\u003ccode\u003e3c41c09\u003c/code\u003e\u003c/a\u003e 12.2.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cdaa29eb520291c4f1fb50fb71ae46502d41e460\"\u003e\u003ccode\u003ecdaa29e\u003c/code\u003e\u003c/a\u003e Check calloc return value (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/585b2f5a780722c8a5bfffb3a40f7f42e8a205be\"\u003e\u003ccode\u003e585b2f5\u003c/code\u003e\u003c/a\u003e Check calloc return value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ecf011ea15991d4cebacd946e58270cc30b0f2c1\"\u003e\u003ccode\u003eecf011e\u003c/code\u003e\u003c/a\u003e Check all allocs in the Arrow tree (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cf6de8ca9b23e714aa5310e1c791eda66fc0b670\"\u003e\u003ccode\u003ecf6de8c\u003c/code\u003e\u003c/a\u003e Reject non-numeric elements inside list coords (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ffdcede6516b28d9667c92929854023d17048b64\"\u003e\u003ccode\u003effdcede\u003c/code\u003e\u003c/a\u003e Update 12.2.0 release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/7929d7760fe5a307ba5ae6eabdf70ae4486b147c\"\u003e\u003ccode\u003e7929d77\u003c/code\u003e\u003c/a\u003e Added security release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c4f7aa5dfb4dbd1242978ac235e01b9934ec6d3c\"\u003e\u003ccode\u003ec4f7aa5\u003c/code\u003e\u003c/a\u003e Added security release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/22cdb5f2e4b15250c06563b1124ac1667342712f\"\u003e\u003ccode\u003e22cdb5f\u003c/code\u003e\u003c/a\u003e Move variable declaration inside define (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/fc15b3b01899408ec989d7804c5283e13802d057\"\u003e\u003ccode\u003efc15b3b\u003c/code\u003e\u003c/a\u003e Resize tall images vertically first (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9524\"\u003e#9524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/11.3.0...12.2.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.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 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/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\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\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.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.5.0 to 2.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.7.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cp\u003eAddressed high-severity security issues. Impact was limited to specific use cases detailed in the accompanying advisories; overall user exposure was estimated to be ma...\n\n_Description has been truncated_","html_url":"https://github.com/HarleyCoops/python-sdk/pull/1","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/HarleyCoops%2Fpython-sdk/issues/1","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1/packages"}},{"old_version":"2.4.0","new_version":"2.6.3","update_type":"minor","path":null,"pr_created_at":"2026-03-26T05:27:31.000Z","version_change":"2.4.0 → 2.6.3","issue":{"uuid":"4140756996","node_id":"PR_kwDORAFpoM7Nlb-8","number":25,"state":"closed","title":"chore(deps): bump the uv group across 2 directories with 7 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-03-29T23:51:41.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-26T05:27:31.000Z","updated_at":"2026-03-29T23:51:43.000Z","time_to_close":325450,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"uv","update_count":7,"packages":[{"name":"starlette","old_version":"0.46.2","new_version":"0.49.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"cryptography","old_version":"45.0.3","new_version":"46.0.5","repository_url":"https://github.com/pyca/cryptography"},{"name":"protobuf","old_version":"5.29.5","new_version":"5.29.6","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"pyasn1","old_version":"0.6.1","new_version":"0.6.3","repository_url":"https://github.com/pyasn1/pyasn1"},{"name":"requests","old_version":"2.32.3","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"urllib3","old_version":"2.4.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"}],"path":null,"ecosystem":"conda"},"body":"Bumps the uv group with 3 updates in the / directory: [pyasn1](https://github.com/pyasn1/pyasn1), [requests](https://github.com/psf/requests) and [werkzeug](https://github.com/pallets/werkzeug).\nBumps the uv group with 6 updates in the /src/a2a_servers directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [starlette](https://github.com/Kludex/starlette) | `0.46.2` | `0.49.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.3` | `46.0.5` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `5.29.5` | `5.29.6` |\n| [pyasn1](https://github.com/pyasn1/pyasn1) | `0.6.1` | `0.6.3` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.33.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.4.0` | `2.6.3` |\n\n\nUpdates `pyasn1` from 0.6.2 to 0.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyasn1/pyasn1/releases\"\u003epyasn1's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 0.6.3\u003c/h2\u003e\n\u003cp\u003eIt's a minor release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded nesting depth limit to ASN.1 decoder to prevent stack overflow from deeply nested structures (CVE-2026-30922).\u003c/li\u003e\n\u003cli\u003eFixed OverflowError from oversized BER length field.\u003c/li\u003e\n\u003cli\u003eFixed DeprecationWarning stacklevel for deprecated attributes.\u003c/li\u003e\n\u003cli\u003eFixed asDateTime incorrect fractional seconds parsing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAll changes are noted in the \u003ca href=\"https://github.com/pyasn1/pyasn1/blob/master/CHANGES.rst\"\u003eCHANGELOG\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/pyasn1/pyasn1/blob/main/CHANGES.rst\"\u003epyasn1's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRevision 0.6.3, released 16-03-2026\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-30922 (GHSA-jr27-m4p2-rc6r): Added nesting depth\nlimit to ASN.1 decoder to prevent stack overflow from deeply\nnested structures (thanks for reporting, romanticpragmatism)\u003c/li\u003e\n\u003cli\u003eFixed OverflowError from oversized BER length field\n[issue \u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/54\"\u003e#54\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/54\"\u003epyasn1/pyasn1#54\u003c/a\u003e)\n[pr \u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/100\"\u003e#100\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/pull/100\"\u003epyasn1/pyasn1#100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed DeprecationWarning stacklevel for deprecated attributes\n[issue \u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/86\"\u003e#86\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/86\"\u003epyasn1/pyasn1#86\u003c/a\u003e)\n[pr \u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/101\"\u003e#101\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/pull/101\"\u003epyasn1/pyasn1#101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed asDateTime incorrect fractional seconds parsing\n[issue \u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/81\"\u003e#81\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/81\"\u003epyasn1/pyasn1#81\u003c/a\u003e)\n[pr \u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/102\"\u003e#102\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/pull/102\"\u003epyasn1/pyasn1#102\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/pyasn1/pyasn1/commit/af65c3b92e9deeae50db4de390982dd970d87f98\"\u003e\u003ccode\u003eaf65c3b\u003c/code\u003e\u003c/a\u003e Prepare release 0.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyasn1/pyasn1/commit/5a49bd1fe93b5b866a1210f6bf0a3924f21572c8\"\u003e\u003ccode\u003e5a49bd1\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyasn1/pyasn1/commit/5494ba43f738e700ca9f7c7a69ec5c44908c9a9f\"\u003e\u003ccode\u003e5494ba4\u003c/code\u003e\u003c/a\u003e Fix asDateTime incorrect fractional seconds parsing (\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/102\"\u003e#102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyasn1/pyasn1/commit/71f486e6c32d0f270868aa1b2bb5ceb7d5fd5476\"\u003e\u003ccode\u003e71f486e\u003c/code\u003e\u003c/a\u003e Fix DeprecationWarning stacklevel for deprecated attributes (\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/101\"\u003e#101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyasn1/pyasn1/commit/d7cb42dcaa9a66e18f14c4609c2ed00c5b65f7e8\"\u003e\u003ccode\u003ed7cb42d\u003c/code\u003e\u003c/a\u003e Fix OverflowError from oversized BER length field (\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/100\"\u003e#100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyasn1/pyasn1/compare/v0.6.2...v0.6.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 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/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\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\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.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `werkzeug` from 3.1.5 to 3.1.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/werkzeug/releases\"\u003ewerkzeug's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.6\u003c/h2\u003e\n\u003cp\u003eThis is the Werkzeug 3.1.6 security fix release, which fixes a security issue 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/Werkzeug/3.1.6/\"\u003ehttps://pypi.org/project/Werkzeug/3.1.6/\u003c/a\u003e\nChanges: \u003ca href=\"https://werkzeug.palletsprojects.com/page/changes/#version-3-1-6\"\u003ehttps://werkzeug.palletsprojects.com/page/changes/#version-3-1-6\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esafe_join\u003c/code\u003e on Windows does not allow special devices names in multi-segment paths. \u003ca href=\"https://github.com/pallets/werkzeug/security/advisories/GHSA-29vq-49wr-vm6x\"\u003eGHSA-29vq-49wr-vm6x\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/werkzeug/blob/main/CHANGES.rst\"\u003ewerkzeug's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.6\u003c/h2\u003e\n\u003cp\u003eReleased 2026-02-19\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esafe_join\u003c/code\u003e on Windows does not allow special devices names in\nmulti-segment paths. :ghsa:\u003ccode\u003e29vq-49wr-vm6x\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.make_conditional\u003c/code\u003e sets the \u003ccode\u003eAccept-Ranges\u003c/code\u003e header even if it\nis not a satisfiable range request. :issue:\u003ccode\u003e3108\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/werkzeug/commit/04da1b5221b7a7b57e82246e4b5741d37a6b2e56\"\u003e\u003ccode\u003e04da1b5\u003c/code\u003e\u003c/a\u003e release version 3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/f407712fdc60a09c2b3f4fe7db557703e5d9338d\"\u003e\u003ccode\u003ef407712\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/f54fe98026253e70fbbcd35a6b52fb67cfff1c03\"\u003e\u003ccode\u003ef54fe98\u003c/code\u003e\u003c/a\u003e safe_join prevents Windows special device names in multi-segment paths\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/d005985ef69ffe3275eda8fb6fb25e074dbe871b\"\u003e\u003ccode\u003ed005985\u003c/code\u003e\u003c/a\u003e start version 3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/8565c2cbd6681ae8463e77d4fc0795324a7fdae7\"\u003e\u003ccode\u003e8565c2c\u003c/code\u003e\u003c/a\u003e document rule priority (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3102\"\u003e#3102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/3febc7e90072bffe04c27e6b7478dfc4f88930df\"\u003e\u003ccode\u003e3febc7e\u003c/code\u003e\u003c/a\u003e document rule priority\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/2525b827646c10ab7adb334664e6a4af1b769181\"\u003e\u003ccode\u003e2525b82\u003c/code\u003e\u003c/a\u003e remove state machine docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/4abfbd553cdeb6d4e6fa693340d52b13c884079f\"\u003e\u003ccode\u003e4abfbd5\u003c/code\u003e\u003c/a\u003e rewrite build docstring (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3097\"\u003e#3097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/161c18b2a8800ae6ef377fb3cbdb933a878fea67\"\u003e\u003ccode\u003e161c18b\u003c/code\u003e\u003c/a\u003e rewrite build docstring\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/86e11c29e44726dae524cd9db11549b3b1ad681d\"\u003e\u003ccode\u003e86e11c2\u003c/code\u003e\u003c/a\u003e release version 3.1.5 (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pallets/werkzeug/compare/3.1.5...3.1.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` from 0.46.2 to 0.49.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.49.1\u003c/h2\u003e\n\u003cp\u003eThis release fixes a security vulnerability in the parsing logic of the \u003ccode\u003eRange\u003c/code\u003e header in \u003ccode\u003eFileResponse\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eYou can view the full security advisory: \u003ca href=\"https://github.com/Kludex/starlette/security/advisories/GHSA-7f5h-v6xp-fcq8\"\u003eGHSA-7f5h-v6xp-fcq8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize the HTTP ranges parsing logic \u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e4ea6e22b489ec388d6004cfbca52dd5b147127c5\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.0...0.49.1\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.0...0.49.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.49.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eencoding\u003c/code\u003e parameter to \u003ccode\u003eConfig\u003c/code\u003e class \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003e#2996\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport multiple cookie headers in \u003ccode\u003eRequest.cookies\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3029\"\u003e#3029\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLiteral\u003c/code\u003e type for \u003ccode\u003eWebSocketEndpoint\u003c/code\u003e encoding values \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003e#3027\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDo not pollute exception context in \u003ccode\u003eMiddleware\u003c/code\u003e when using \u003ccode\u003eBaseHTTPMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003e#2976\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TheWesDias\"\u003e\u003ccode\u003e@​TheWesDias\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3017\"\u003eKludex/starlette#3017\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gmos2104\"\u003e\u003ccode\u003e@​gmos2104\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003eKludex/starlette#3027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/secrett2633\"\u003e\u003ccode\u003e@​secrett2633\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003eKludex/starlette#2996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adam-sikora\"\u003e\u003ccode\u003e@​adam-sikora\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003eKludex/starlette#2976\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.48.0...0.49.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.48.0...0.49.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.48.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd official Python 3.14 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3013\"\u003e#3013\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ca href=\"https://www.rfc-editor.org/rfc/rfc9110\"\u003eRFC9110\u003c/a\u003e http status names \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003e#2939\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yakimka\"\u003e\u003ccode\u003e@​yakimka\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2943\"\u003eKludex/starlette#2943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mbeijen\"\u003e\u003ccode\u003e@​mbeijen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003eKludex/starlette#2939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.47.3...0.48.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.47.3...0.48.0\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.49.1 (October 28, 2025)\u003c/h2\u003e\n\u003cp\u003eThis release fixes a security vulnerability in the parsing logic of the \u003ccode\u003eRange\u003c/code\u003e header in \u003ccode\u003eFileResponse\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eYou can view the full security advisory: \u003ca href=\"https://github.com/Kludex/starlette/security/advisories/GHSA-7f5h-v6xp-fcq8\"\u003eGHSA-7f5h-v6xp-fcq8\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize the HTTP ranges parsing logic \u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e4ea6e22b489ec388d6004cfbca52dd5b147127c5\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.49.0 (October 28, 2025)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eencoding\u003c/code\u003e parameter to \u003ccode\u003eConfig\u003c/code\u003e class \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003e#2996\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport multiple cookie headers in \u003ccode\u003eRequest.cookies\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3029\"\u003e#3029\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLiteral\u003c/code\u003e type for \u003ccode\u003eWebSocketEndpoint\u003c/code\u003e encoding values \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003e#3027\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDo not pollute exception context in \u003ccode\u003eMiddleware\u003c/code\u003e when using \u003ccode\u003eBaseHTTPMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003e#2976\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.48.0 (September 13, 2025)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd official Python 3.14 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3013\"\u003e#3013\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ca href=\"https://www.rfc-editor.org/rfc/rfc9110\"\u003eRFC9110\u003c/a\u003e http status names \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003e#2939\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.47.3 (August 24, 2025)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003easyncio.iscoroutinefunction\u003c/code\u003e for Python 3.12 and older \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2984\"\u003e#2984\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.47.2 (July 20, 2025)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003eUploadFile\u003c/code\u003e check for future rollover \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2962\"\u003e#2962\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.47.1 (June 21, 2025)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003eSelf\u003c/code\u003e in \u003ccode\u003eTestClient.__enter__\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2951\"\u003e#2951\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAllow async exception handlers to type-check \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2949\"\u003e#2949\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/7e4b7428f273dbdc875dcd036d20804bcfc7b2ee\"\u003e\u003ccode\u003e7e4b742\u003c/code\u003e\u003c/a\u003e Version 0.49.1 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3047\"\u003e#3047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e\u003ccode\u003e4ea6e22\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/7d88ea6f8ec8aa99cdb5fc7a10b88db5aadfdfee\"\u003e\u003ccode\u003e7d88ea6\u003c/code\u003e\u003c/a\u003e Version 0.49.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3046\"\u003e#3046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/26d66bbfb05c7bbecbbb57106c65f33682f8174e\"\u003e\u003ccode\u003e26d66bb\u003c/code\u003e\u003c/a\u003e Do not pollute exception context in Middleware (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/a59397db889e3a96c4f34b1406957a3b92e1e8b5\"\u003e\u003ccode\u003ea59397d\u003c/code\u003e\u003c/a\u003e Set encodings when reading config files (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3b7f0cbf598be305528a498a35089ce723060372\"\u003e\u003ccode\u003e3b7f0cb\u003c/code\u003e\u003c/a\u003e test: add test for unknown status (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3035\"\u003e#3035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/b09ce1a99d352ee6f5b896597f03a1a57507afcd\"\u003e\u003ccode\u003eb09ce1a\u003c/code\u003e\u003c/a\u003e docs: fix legibility issues on sponsorship page (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3039\"\u003e#3039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/0f0edcf8007412d9536bf8714c5815ce8f5dba4b\"\u003e\u003ccode\u003e0f0edcf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Add Marcelo Trylesinski to the license (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3025\"\u003e#3025\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3044\"\u003e#3044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3912d6313730cc6004dfb4436e37dbc1a81db7c8\"\u003e\u003ccode\u003e3912d63\u003c/code\u003e\u003c/a\u003e docs: add social icons (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3038\"\u003e#3038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4915a9309fcad58ac08b9fa550563d3287b531ad\"\u003e\u003ccode\u003e4915a93\u003c/code\u003e\u003c/a\u003e Add discord to README/docs (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3034\"\u003e#3034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.46.2...0.49.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 45.0.3 to 46.0.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e46.0.5 - 2026-02-10\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* An attacker could create a malicious public key that reveals portions of your\n  private key when using certain uncommon elliptic curves (binary curves).\n  This version now includes additional security checks to prevent this attack.\n  This issue only affects binary elliptic curves, which are rarely used in\n  real-world applications. Credit to **XlabAI Team of Tencent Xuanwu Lab and\n  Atuin Automated Vulnerability Discovery Engine** for reporting the issue.\n  **CVE-2026-26007**\n* Support for ``SECT*`` binary elliptic curves is deprecated and will be\n  removed in the next release.\n\u003cp\u003e.. v46-0-4:\u003c/p\u003e\n\u003cp\u003e46.0.4 - 2026-01-27\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eDropped support for win_arm64 wheels\u003c/code\u003e_.\u003c/li\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.5.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-3:\u003c/p\u003e\n\u003cp\u003e46.0.3 - 2025-10-15\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Fixed compilation when using LibreSSL 4.2.0.\n\u003cp\u003e.. _v46-0-2:\u003c/p\u003e\n\u003cp\u003e46.0.2 - 2025-09-30\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.4.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-1:\u003c/p\u003e\n\u003cp\u003e46.0.1 - 2025-09-16\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Fixed an issue where users installing via ``pip`` on Python 3.14 development\n  versions would not properly install a dependency.\n* Fixed an issue building the free-threaded macOS 3.14 wheels.\n\u003cp\u003e.. _v46-0-0:\u003c/p\u003e\n\u003cp\u003e46.0.0 - 2025-09-16\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eBACKWARDS INCOMPATIBLE:\u003c/strong\u003e Support for Python 3.7 has been removed.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/06e120e682cb200e3f7050c02f0bcdac90c4c6ad\"\u003e\u003ccode\u003e06e120e\u003c/code\u003e\u003c/a\u003e bump version for 46.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14289\"\u003e#14289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/0eebb9dbb6343d9bc1d91e5a2482ed4e054a6d8c\"\u003e\u003ccode\u003e0eebb9d\u003c/code\u003e\u003c/a\u003e EC check key on cofactor \u0026gt; 1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14287\"\u003e#14287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/bedf6e186b814f69a3f54f51252c23a71d44ed2e\"\u003e\u003ccode\u003ebedf6e1\u003c/code\u003e\u003c/a\u003e fix openssl version on 46 branch (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14220\"\u003e#14220\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/e6f44fc8e6391f05d719fb9d369692325b87a471\"\u003e\u003ccode\u003ee6f44fc\u003c/code\u003e\u003c/a\u003e bump for 46.0.4 and drop win arm64 due to CI issues (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14217\"\u003e#14217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/c0af4dd7b75921bbe9f1d41a03dbd4b64a9e3403\"\u003e\u003ccode\u003ec0af4dd\u003c/code\u003e\u003c/a\u003e release 46.0.3 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13681\"\u003e#13681\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/99efe5ad150a56efadafacaffd0e3ee319373904\"\u003e\u003ccode\u003e99efe5a\u003c/code\u003e\u003c/a\u003e bump version for 46.0.2 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13531\"\u003e#13531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/e735cfc27502320101c130335c556394a125ba52\"\u003e\u003ccode\u003ee735cfc\u003c/code\u003e\u003c/a\u003e release 46.0.1 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13450\"\u003e#13450\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/4e457ffba43a6d87efc63c33041e2081438dd8a4\"\u003e\u003ccode\u003e4e457ff\u003c/code\u003e\u003c/a\u003e Explicitly specify python in mac uv build invocation (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13447\"\u003e#13447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/2726efdb6d67f1c90cf9c6062d9fe051965586f8\"\u003e\u003ccode\u003e2726efd\u003c/code\u003e\u003c/a\u003e Depend on CFFI 2.0.0 or newer on Python \u0026gt; 3.8 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13448\"\u003e#13448\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/62230623d183706632c0eb7822c96ac95e3710a8\"\u003e\u003ccode\u003e6223062\u003c/code\u003e\u003c/a\u003e release 46.0.0 (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13446\"\u003e#13446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/cryptography/compare/45.0.3...46.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `protobuf` from 5.29.5 to 5.29.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/protocolbuffers/protobuf/releases\"\u003eprotobuf's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eProtocol Buffers v34.0-rc1\u003c/h2\u003e\n\u003ch1\u003eAnnouncements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eThis version includes breaking changes to: C++, Objective-C, PHP, Python.\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003e[Bazel] Remove deprecated ProtoInfo.transitive_imports. Use equivalent transitive_sources instead (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/0a5c2f6b633c1e5259f566cb42d30fe347b8aadb\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/0a5c2f6b633c1e5259f566cb42d30fe347b8aadb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Make generator headers private (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/3a2af3510f0d454dbe3e4dc281674b61c4d20b9e\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/3a2af3510f0d454dbe3e4dc281674b61c4d20b9e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Add a debug check that the target of CopyFrom is not a descendant of the source. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/7a7589823d2cfaaf7994b050e98d5d553bc9b1c1\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/7a7589823d2cfaaf7994b050e98d5d553bc9b1c1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Add [[nodiscard]] to many APIs. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/a70115f33f9af2c4b2202c800b84837e7fe0d738\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/a70115f33f9af2c4b2202c800b84837e7fe0d738\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Make the arena-enabled constructors of \u003ccode\u003eRepeatedField\u003c/code\u003e, \u003ccode\u003eRepeatedPtrField\u003c/code\u003e, and \u003ccode\u003eMap\u003c/code\u003e private. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/ef890c3d0c79398c70e047fe5dd893f460ba2336\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/ef890c3d0c79398c70e047fe5dd893f460ba2336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove deprecated FieldDescriptor::label() in OSS. Use is_repeated() or is_required() instead (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/b76faa921fdd244f374c7be0bddd4050fc42c292\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/b76faa921fdd244f374c7be0bddd4050fc42c292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Removes proto2::util::MessageDifferencer::AddIgnoreCriteria that takes a raw pointer as an argument in favor of the overload that takes a unique_ptr. Remove macro PROTOBUF_FUTURE_REMOVE_ADD_IGNORE_CRITERIA (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/b115358c64127896fed88b8b5ef5d91d86d8cbae\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/b115358c64127896fed88b8b5ef5d91d86d8cbae\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove deprecated FieldDescriptor::has_optional_keyword() in OSS. Use is_repeated() or has_presence() instead (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/68346ec9348e932664e58c3ecdcd1478f95233a8\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/68346ec9348e932664e58c3ecdcd1478f95233a8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove AddUnusedImportTrackFile() and ClearUnusedImportTrackFiles(). Remove PROTOBUF_FUTURE_RENAME_ADD_UNUSED_IMPORT (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/837a2cd1d6c75402b2503ffe7cd8aeaf25868536\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/837a2cd1d6c75402b2503ffe7cd8aeaf25868536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove deprecated FieldDescriptor::is_optional() in OSS. Use (!is_required() \u0026amp;\u0026amp; !is_repeated()) instead (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/9dbc5d479a8e453921485d8d3de47fb3c005f1af\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/9dbc5d479a8e453921485d8d3de47fb3c005f1af\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] Remove deprecated UseDeprecatedLegacyJsonFieldConflicts() (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/c301c2ca286327a21c50c0c4cd877afc9c655b00\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/c301c2ca286327a21c50c0c4cd877afc9c655b00\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[C++] All entity names have length limit (2afb0dc)\u003c/li\u003e\n\u003cli\u003e[ObjC] Remove \u003ccode\u003egenerate_minimal_imports\u003c/code\u003e generation option warning (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/45b1297fdaad5a9436d0e207422168c38dc45ac4\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/45b1297fdaad5a9436d0e207422168c38dc45ac4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[ObjC] Fix nullability annotations on some \u003ccode\u003eGPB*Dictionary\u003c/code\u003e types. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/ea67d6d26a48478a567c404679e3bb99cf230d50\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/ea67d6d26a48478a567c404679e3bb99cf230d50\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[ObjC] Remove \u003ccode\u003e-[GPBFieldDescriptor optional]\u003c/code\u003e (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/3414dc151eb4dcbdb2ca952e2589993bf7af75c4\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/3414dc151eb4dcbdb2ca952e2589993bf7af75c4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Other] Remove deprecated flag for enabling MSVC support (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/97c979be6e0907e1051bee62584dac4594e73fa7\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/97c979be6e0907e1051bee62584dac4594e73fa7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PHP] Remove deprecated PHP APIs (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/9c45014099a4f7004fab6dd1278de2f4f2a393c5\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/9c45014099a4f7004fab6dd1278de2f4f2a393c5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PHP] Remove deprecated PHP APIs FieldDescriptor getLabel, use IsRepeated or isRequired instead. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345\u003c/a\u003e, \u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/cd76e675b14d00dda5623b30835d2bc7105fccc6\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/cd76e675b14d00dda5623b30835d2bc7105fccc6\u003c/a\u003e, \u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/42081219920c6fad17ba6ddd1e28d111bcfb3345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PHP]  Add PHP typehints for setters and remove redundant GPBUtil checks (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/pull/25296\"\u003eprotocolbuffers/protobuf#25296\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/aee03b78929c02461a5f9d8e136a2a016359b0cd\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/aee03b78929c02461a5f9d8e136a2a016359b0cd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[PHP]  support default values for editions/proto2 (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/pull/25161\"\u003eprotocolbuffers/protobuf#25161\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/b01099d56350551bae3da88b97bf3027274c9f17\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/b01099d56350551bae3da88b97bf3027274c9f17\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Raise errors in OSS when assign bool to int/enum field in Python Proto. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/5b116fe2f14f49dd0cc3b76089983717f211025c\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/5b116fe2f14f49dd0cc3b76089983717f211025c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Remove float_format/double_format from python proto text_format (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/e4854a186e0bfa867d5bfa5cd850608a948fd488\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/e4854a186e0bfa867d5bfa5cd850608a948fd488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Raise TypeError when convert non-timedelta to Duration, or convert non-datetime to Timestamp in python proto. (Original code may raise ArributeError) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/00aaca1b4d98954bc2933d7c8a5379ba6088124c\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/00aaca1b4d98954bc2933d7c8a5379ba6088124c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Remove float_precision from python proto json_format (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/f027f1fcd52b9d080b7ee79f4024f53cf54e0dc5\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/f027f1fcd52b9d080b7ee79f4024f53cf54e0dc5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Remove deprecated FieldDescriptor::label() in OSS. Use is_repeated() or is_required() instead (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/b76faa921fdd244f374c7be0bddd4050fc42c292\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/b76faa921fdd244f374c7be0bddd4050fc42c292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Remove deprecated FieldDescriptor.label (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/0a8ff55518ea5874478ad5b26515b31d186045a9\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/0a8ff55518ea5874478ad5b26515b31d186045a9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Python] Remove deprecated UseDeprecatedLegacyJsonFieldConflicts() (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/c301c2ca286327a21c50c0c4cd877afc9c655b00\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/c301c2ca286327a21c50c0c4cd877afc9c655b00\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://protobuf.dev/news/\"\u003eProtobuf News\u003c/a\u003e may include additional announcements or pre-announcements for upcoming changes.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://protobuf.dev/support/migration/\"\u003eMigration Guide\u003c/a\u003e may include additional guidance for breaking changes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBazel\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix: cc_toolchain should prefer protoc when prebuilt flag is flipped. (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/25168\"\u003e#25168\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/8c857c3a1c6a106b0a096f1c9fa504bfaca035a9\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/8c857c3a1c6a106b0a096f1c9fa504bfaca035a9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBreaking change: Remove deprecated ProtoInfo.transitive_imports. Use equivalent transitive_sources instead (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/0a5c2f6b633c1e5259f566cb42d30fe347b8aadb\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/0a5c2f6b633c1e5259f566cb42d30fe347b8aadb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFeat(bazel): wire up prebuilt protoc toolchain (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/24115\"\u003e#24115\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/cc23698b486e690ea2eb873cc7596a87c74a3ba6\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/cc23698b486e690ea2eb873cc7596a87c74a3ba6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate \u003ccode\u003eproto_descriptor_set\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/23369\"\u003e#23369\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/8d4dfdd39a7a242a9ed631a6ab2192c57dd9b9c8\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/8d4dfdd39a7a242a9ed631a6ab2192c57dd9b9c8\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eCompiler\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRuby codegen: support generation of rbs files (\u003ca href=\"https://redirect.github.com/protocolbuffers/protobuf/issues/15633\"\u003e#15633\u003c/a\u003e) (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/6ebdf851ba78728f0aa145d38454ed9a316fb08d\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/6ebdf851ba78728f0aa145d38454ed9a316fb08d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid collision name problems between a message named \u003ccode\u003eXyz\u003c/code\u003e and a direct sibling enum named \u003ccode\u003eXyzView\u003c/code\u003e (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/eba53e8f172b273d679759a72ce4250131ee3df1\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/eba53e8f172b273d679759a72ce4250131ee3df1\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGeneralizing and implementing ValidateFeatureSupport for both Options and Features during proto parsing (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/ed3c57114d8e2b47cca7697ddaa50c1b3762a6b0\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/ed3c57114d8e2b47cca7697ddaa50c1b3762a6b0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug with custom features outside of the \u003ccode\u003epb\u003c/code\u003e package. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/872d3ce7a4da00d7dcec33ced20cfe45235935e8\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/872d3ce7a4da00d7dcec33ced20cfe45235935e8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix import option handling when include_imports isn't set. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/9ef9e80afd9bc8379d578fe67e5ab0738728c04e\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/9ef9e80afd9bc8379d578fe67e5ab0738728c04e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug in STRICT check of namespaced enums to properly check for 'reserved 1 to max' (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/1229d4adba24c0952ab85ce96bc7b7f8a1fe6d0f\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/1229d4adba24c0952ab85ce96bc7b7f8a1fe6d0f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent accidental stripping of \u003ccode\u003edebug_redact\u003c/code\u003e options via import option. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/f58b098bffa7ca4045ef7773b09151a6af5d0c28\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/f58b098bffa7ca4045ef7773b09151a6af5d0c28\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eC++\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd EnumerateEnumValues function. (\u003ca href=\"https://github.com/protocolbuffers/protobuf/commit/397d5d99db274b379d1384814074bf7df39d32f7\"\u003ehttps://github.com/protocolbuffers/protobuf/commit/397d5d99db274b379d1384814074bf7df39d32f7\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/protocolbuffers/protobuf/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyasn1` from 0.6.1 to 0.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyasn1/pyasn1/releases\"\u003epyasn1's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 0.6.3\u003c/h2\u003e\n\u003cp\u003eIt's a minor release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded nesting depth limit to ASN.1 decoder to prevent stack overflow from deeply nested structures (CVE-2026-30922).\u003c/li\u003e\n\u003cli\u003eFixed OverflowError from oversized BER length field.\u003c/li\u003e\n\u003cli\u003eFixed DeprecationWarning stacklevel for deprecated attributes.\u003c/li\u003e\n\u003cli\u003eFixed asDateTime incorrect fractional seconds parsing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAll changes are noted in the \u003ca href=\"https://github.com/pyasn1/pyasn1/blob/master/CHANGES.rst\"\u003eCHANGELOG\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/pyasn1/pyasn1/blob/main/CHANGES.rst\"\u003epyasn1's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRevision 0.6.3, released 16-03-2026\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-30922 (GHSA-jr27-m4p2-rc6r): Added nesting depth\nlimit to ASN.1 decoder to prevent stack overflow from deeply\nnested structures (thanks for reporting, romanticpragmatism)\u003c/li\u003e\n\u003cli\u003eFixed OverflowError from oversized BER length field\n[issue \u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/54\"\u003e#54\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/54\"\u003epyasn1/pyasn1#54\u003c/a\u003e)\n[pr \u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/100\"\u003e#100\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/pull/100\"\u003epyasn1/pyasn1#100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed DeprecationWarning stacklevel for deprecated attributes\n[issue \u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/86\"\u003e#86\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/86\"\u003epyasn1/pyasn1#86\u003c/a\u003e)\n[pr \u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/101\"\u003e#101\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/pull/101\"\u003epyasn1/pyasn1#101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed asDateTime incorrect fractional seconds parsing\n[issue \u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/81\"\u003e#81\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/81\"\u003epyasn1/pyasn1#81\u003c/a\u003e)\n[pr \u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/102\"\u003e#102\u003c/a\u003e](\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/pull/102\"\u003epyasn1/pyasn1#102\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/pyasn1/pyasn1/commit/af65c3b92e9deeae50db4de390982dd970d87f98\"\u003e\u003ccode\u003eaf65c3b\u003c/code\u003e\u003c/a\u003e Prepare release 0.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyasn1/pyasn1/commit/5a49bd1fe93b5b866a1210f6bf0a3924f21572c8\"\u003e\u003ccode\u003e5a49bd1\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyasn1/pyasn1/commit/5494ba43f738e700ca9f7c7a69ec5c44908c9a9f\"\u003e\u003ccode\u003e5494ba4\u003c/code\u003e\u003c/a\u003e Fix asDateTime incorrect fractional seconds parsing (\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/102\"\u003e#102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyasn1/pyasn1/commit/71f486e6c32d0f270868aa1b2bb5ceb7d5fd5476\"\u003e\u003ccode\u003e71f486e\u003c/code\u003e\u003c/a\u003e Fix DeprecationWarning stacklevel for deprecated attributes (\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/101\"\u003e#101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyasn1/pyasn1/commit/d7cb42dcaa9a66e18f14c4609c2ed00c5b65f7e8\"\u003e\u003ccode\u003ed7cb42d\u003c/code\u003e\u003c/a\u003e Fix OverflowError from oversized BER length field (\u003ca href=\"https://redirect.github.com/pyasn1/pyasn1/issues/100\"\u003e#100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyasn1/pyasn1/compare/v0.6.2...v0.6.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.3 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 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/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\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\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.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.4.0 to 2.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6.3\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where decompression-bomb safeguards of the streaming API were bypassed when HTTP redirects were followed. (CVE-2026-21441 reported by \u003ca href=\"https://github.com/D47A\"\u003e\u003ccode\u003e@​D47A\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-38jv-5279-wg99)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by default. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003eurllib3/urllib3#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003eurllib3/urllib3#3752\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in the decoder's buffer when reading compressed chunked responses. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3734\"\u003eurllib3/urllib3#3734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and \u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3731\"\u003e#3731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly compressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource consumption even when a small amount of data was requested. Reading small chunks of compressed data is safer and much more efficient now. (CVE-2025-66471 reported by \u003ca href=\"https://github.com/Cycloctane\"\u003e\u003ccode\u003e@​Cycloctane\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-2xpw-w6gg-jr37)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with virtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially leading to a denial of service (DoS) attack by exhausting system resources during decoding. The number of allowed chained encodings is now limited to 5. (CVE-2025-66418 reported by \u003ca href=\"https://github.com/illia-v\"\u003e\u003ccode\u003e@​illia-v\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-gm62-xv2j-4w53)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but your environment contains a Brotli/brotlicffi/brotlipy package anyway, make sure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to  benefit from the security fixes and avoid warnings. Prefer using  \u003ccode\u003eurllib3[brotli]\u003c/code\u003e to install a compatible Brotli package automatically.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c!-- 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/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.6.3 (2026-01-07)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a high-severity security issue where decompression-bomb safeguards of\nthe streaming API were bypassed when HTTP redirects were followed.\n(\u003ccode\u003eGHSA-38jv-5279-wg99 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-38jv-5279-wg99\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by\ndefault. (\u003ccode\u003e[#3743](https://github.com/urllib3/urllib3/issues/3743) \u0026lt;https://github.com/urllib3/urllib3/issues/3743\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten.\n(\u003ccode\u003e[#3752](https://github.com/urllib3/urllib3/issues/3752) \u0026lt;https://github.com/urllib3/urllib3/issues/3752\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.2 (2025-12-11)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in\nthe decoder's buffer when reading compressed chunked responses.\n(\u003ccode\u003e[#3734](https://github.com/urllib3/urllib3/issues/3734) \u0026lt;https://github.com/urllib3/urllib3/issues/3734\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.1 (2025-12-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and\n\u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods.\n(\u003ccode\u003e[#3731](https://github.com/urllib3/urllib3/issues/3731) \u0026lt;https://github.com/urllib3/urllib3/issues/3731\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.0 (2025-12-05)\u003c/h1\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly\ncompressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource\nconsumption even when a small amount of data was requested. Reading small\nchunks of compressed data is safer and much more efficient now.\n(\u003ccode\u003eGHSA-2xpw-w6gg-jr37 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-2xpw-w6gg-jr37\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with\nvirtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially\nleading to a denial of service (DoS) attack by exhausting system resources\nduring decoding. The number of allowed chained encodings is now limited to 5.\n(\u003ccode\u003eGHSA-gm62-xv2j-4w53 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-gm62-xv2j-4w53\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. caution::\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but\nyour environment contains a Brotli/brotlicffi/brotlipy package anyway, make\nsure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to\nbenefit from the security fixes and avoid warnings. Prefer using\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/urllib3/urllib3/commit/0248277dd7ac0239204889ca991353ad3e3a1ddc\"\u003e\u003ccode\u003e0248277\u003c/code\u003e\u003c/a\u003e Release 2.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8864ac407bba8607950025e0979c4c69bc7abc7b\"\u003e\u003ccode\u003e8864ac4\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/70cecb27ca99d56aaaeb63ac27ee270ef2b24c5c\"\u003e\u003ccode\u003e70cecb2\u003c/code\u003e\u003c/a\u003e Fix Scorecard issues related to vulnerable dev dependencies (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3755\"\u003e#3755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/41f249abe1ef3e20768588969c4035aba060a359\"\u003e\u003ccode\u003e41f249a\u003c/code\u003e\u003c/a\u003e Move \u0026quot;v2.0 Migration Guide\u0026quot; to the end of the table of contents (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3747\"\u003e#3747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/fd4dffd2fc544166b76151a2fa3d7b7c0eab540c\"\u003e\u003ccode\u003efd4dffd\u003c/code\u003e\u003c/a\u003e Patch \u003ccode\u003eVerifiedHTTPSConnection\u003c/code\u003e for Emscripten (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003e#3752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/13f0bfd55e4468fe1ea9c6f809d3a87b0f93ebab\"\u003e\u003ccode\u003e13f0bfd\u003c/code\u003e\u003c/a\u003e Handle massive values in Retry-After when calculating time to sleep for (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003e#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8c480bf87bcefd321b3a1ae47f04e908b6b2ed7b\"\u003e\u003ccode\u003e8c480bf\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3748\"\u003e#3748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/4b40616e959c0a2c466e8075f2a785a9f99bb0c1\"\u003e\u003ccode\u003e4b40616\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.3.0 to 5.0.1 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3750\"\u003e#3750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/82b8479663d037d220c883f1584dd01a43bb273b\"\u003e\u003ccode\u003e82b8479\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3749\"\u003e#3749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/34284cb01700bb7d4fdd472f909e22393e9174e2\"\u003e\u003ccode\u003e34284cb\u003c/code\u003e\u003c/a\u003e Mention experimental features in the security policy (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3746\"\u003e#3746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.4.0...2.6.3\"\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\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/judacas/LLM-Automated-Inventory-Management/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/judacas/LLM-Automated-Inventory-Management/pull/25","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/judacas%2FLLM-Automated-Inventory-Management/issues/25","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/25/packages"}},{"old_version":"2.5.0","new_version":"2.6.3","update_type":"minor","path":null,"pr_created_at":"2026-01-16T06:06:15.000Z","version_change":"2.5.0 → 2.6.3","issue":{"uuid":"3820550558","node_id":"PR_kwDOMZY_aM69iots","number":6,"state":"closed","title":"chore(deps): bump the uv group across 3 directories with 3 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-01-26T05:47:05.000Z","author_association":null,"state_reason":null,"created_at":"2026-01-16T06:06:15.000Z","updated_at":"2026-01-26T05:47:06.000Z","time_to_close":862850,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"uv","update_count":3,"packages":[{"name":"starlette","old_version":"0.47.3","new_version":"0.49.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"starlette","old_version":"0.48.0","new_version":"0.49.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"langchain-core","old_version":"0.3.76","new_version":"0.3.81","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"starlette","old_version":"0.47.1","new_version":"0.49.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"langchain-core","old_version":"0.3.68","new_version":"0.3.81","repository_url":"https://github.com/langchain-ai/langchain"},{"name":"urllib3","old_version":"2.5.0","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"}],"path":null,"ecosystem":"conda"},"body":"Bumps the uv group with 1 update in the /python/assistant-transport-backend directory: [starlette](https://github.com/Kludex/starlette).\nBumps the uv group with 3 updates in the /python/assistant-transport-backend-langgraph directory: [starlette](https://github.com/Kludex/starlette), [langchain-core](https://github.com/langchain-ai/langchain) and [urllib3](https://github.com/urllib3/urllib3).\nBumps the uv group with 3 updates in the /python/assistant-stream directory: [starlette](https://github.com/Kludex/starlette), [langchain-core](https://github.com/langchain-ai/langchain) and [urllib3](https://github.com/urllib3/urllib3).\n\nUpdates `starlette` from 0.47.3 to 0.49.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.49.1\u003c/h2\u003e\n\u003cp\u003eThis release fixes a security vulnerability in the parsing logic of the \u003ccode\u003eRange\u003c/code\u003e header in \u003ccode\u003eFileResponse\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eYou can view the full security advisory: \u003ca href=\"https://github.com/Kludex/starlette/security/advisories/GHSA-7f5h-v6xp-fcq8\"\u003eGHSA-7f5h-v6xp-fcq8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize the HTTP ranges parsing logic \u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e4ea6e22b489ec388d6004cfbca52dd5b147127c5\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.0...0.49.1\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.0...0.49.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.49.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eencoding\u003c/code\u003e parameter to \u003ccode\u003eConfig\u003c/code\u003e class \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003e#2996\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport multiple cookie headers in \u003ccode\u003eRequest.cookies\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3029\"\u003e#3029\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLiteral\u003c/code\u003e type for \u003ccode\u003eWebSocketEndpoint\u003c/code\u003e encoding values \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003e#3027\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDo not pollute exception context in \u003ccode\u003eMiddleware\u003c/code\u003e when using \u003ccode\u003eBaseHTTPMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003e#2976\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TheWesDias\"\u003e\u003ccode\u003e@​TheWesDias\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3017\"\u003eKludex/starlette#3017\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gmos2104\"\u003e\u003ccode\u003e@​gmos2104\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003eKludex/starlette#3027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/secrett2633\"\u003e\u003ccode\u003e@​secrett2633\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003eKludex/starlette#2996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adam-sikora\"\u003e\u003ccode\u003e@​adam-sikora\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003eKludex/starlette#2976\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.48.0...0.49.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.48.0...0.49.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.48.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd official Python 3.14 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3013\"\u003e#3013\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ca href=\"https://www.rfc-editor.org/rfc/rfc9110\"\u003eRFC9110\u003c/a\u003e http status names \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003e#2939\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yakimka\"\u003e\u003ccode\u003e@​yakimka\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2943\"\u003eKludex/starlette#2943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mbeijen\"\u003e\u003ccode\u003e@​mbeijen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003eKludex/starlette#2939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.47.3...0.48.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.47.3...0.48.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.49.1 (October 28, 2025)\u003c/h2\u003e\n\u003cp\u003eThis release fixes a security vulnerability in the parsing logic of the \u003ccode\u003eRange\u003c/code\u003e header in \u003ccode\u003eFileResponse\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eYou can view the full security advisory: \u003ca href=\"https://github.com/Kludex/starlette/security/advisories/GHSA-7f5h-v6xp-fcq8\"\u003eGHSA-7f5h-v6xp-fcq8\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize the HTTP ranges parsing logic \u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e4ea6e22b489ec388d6004cfbca52dd5b147127c5\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.49.0 (October 28, 2025)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eencoding\u003c/code\u003e parameter to \u003ccode\u003eConfig\u003c/code\u003e class \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003e#2996\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport multiple cookie headers in \u003ccode\u003eRequest.cookies\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3029\"\u003e#3029\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLiteral\u003c/code\u003e type for \u003ccode\u003eWebSocketEndpoint\u003c/code\u003e encoding values \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003e#3027\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDo not pollute exception context in \u003ccode\u003eMiddleware\u003c/code\u003e when using \u003ccode\u003eBaseHTTPMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003e#2976\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.48.0 (September 13, 2025)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd official Python 3.14 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3013\"\u003e#3013\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ca href=\"https://www.rfc-editor.org/rfc/rfc9110\"\u003eRFC9110\u003c/a\u003e http status names \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003e#2939\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/7e4b7428f273dbdc875dcd036d20804bcfc7b2ee\"\u003e\u003ccode\u003e7e4b742\u003c/code\u003e\u003c/a\u003e Version 0.49.1 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3047\"\u003e#3047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e\u003ccode\u003e4ea6e22\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/7d88ea6f8ec8aa99cdb5fc7a10b88db5aadfdfee\"\u003e\u003ccode\u003e7d88ea6\u003c/code\u003e\u003c/a\u003e Version 0.49.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3046\"\u003e#3046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/26d66bbfb05c7bbecbbb57106c65f33682f8174e\"\u003e\u003ccode\u003e26d66bb\u003c/code\u003e\u003c/a\u003e Do not pollute exception context in Middleware (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/a59397db889e3a96c4f34b1406957a3b92e1e8b5\"\u003e\u003ccode\u003ea59397d\u003c/code\u003e\u003c/a\u003e Set encodings when reading config files (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3b7f0cbf598be305528a498a35089ce723060372\"\u003e\u003ccode\u003e3b7f0cb\u003c/code\u003e\u003c/a\u003e test: add test for unknown status (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3035\"\u003e#3035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/b09ce1a99d352ee6f5b896597f03a1a57507afcd\"\u003e\u003ccode\u003eb09ce1a\u003c/code\u003e\u003c/a\u003e docs: fix legibility issues on sponsorship page (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3039\"\u003e#3039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/0f0edcf8007412d9536bf8714c5815ce8f5dba4b\"\u003e\u003ccode\u003e0f0edcf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Add Marcelo Trylesinski to the license (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3025\"\u003e#3025\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3044\"\u003e#3044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3912d6313730cc6004dfb4436e37dbc1a81db7c8\"\u003e\u003ccode\u003e3912d63\u003c/code\u003e\u003c/a\u003e docs: add social icons (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3038\"\u003e#3038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4915a9309fcad58ac08b9fa550563d3287b531ad\"\u003e\u003ccode\u003e4915a93\u003c/code\u003e\u003c/a\u003e Add discord to README/docs (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3034\"\u003e#3034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.47.3...0.49.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` from 0.48.0 to 0.49.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.49.1\u003c/h2\u003e\n\u003cp\u003eThis release fixes a security vulnerability in the parsing logic of the \u003ccode\u003eRange\u003c/code\u003e header in \u003ccode\u003eFileResponse\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eYou can view the full security advisory: \u003ca href=\"https://github.com/Kludex/starlette/security/advisories/GHSA-7f5h-v6xp-fcq8\"\u003eGHSA-7f5h-v6xp-fcq8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize the HTTP ranges parsing logic \u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e4ea6e22b489ec388d6004cfbca52dd5b147127c5\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.0...0.49.1\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.0...0.49.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.49.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eencoding\u003c/code\u003e parameter to \u003ccode\u003eConfig\u003c/code\u003e class \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003e#2996\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport multiple cookie headers in \u003ccode\u003eRequest.cookies\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3029\"\u003e#3029\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLiteral\u003c/code\u003e type for \u003ccode\u003eWebSocketEndpoint\u003c/code\u003e encoding values \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003e#3027\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDo not pollute exception context in \u003ccode\u003eMiddleware\u003c/code\u003e when using \u003ccode\u003eBaseHTTPMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003e#2976\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TheWesDias\"\u003e\u003ccode\u003e@​TheWesDias\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3017\"\u003eKludex/starlette#3017\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gmos2104\"\u003e\u003ccode\u003e@​gmos2104\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003eKludex/starlette#3027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/secrett2633\"\u003e\u003ccode\u003e@​secrett2633\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003eKludex/starlette#2996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adam-sikora\"\u003e\u003ccode\u003e@​adam-sikora\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003eKludex/starlette#2976\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.48.0...0.49.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.48.0...0.49.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.48.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd official Python 3.14 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3013\"\u003e#3013\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ca href=\"https://www.rfc-editor.org/rfc/rfc9110\"\u003eRFC9110\u003c/a\u003e http status names \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003e#2939\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yakimka\"\u003e\u003ccode\u003e@​yakimka\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2943\"\u003eKludex/starlette#2943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mbeijen\"\u003e\u003ccode\u003e@​mbeijen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003eKludex/starlette#2939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.47.3...0.48.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.47.3...0.48.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.49.1 (October 28, 2025)\u003c/h2\u003e\n\u003cp\u003eThis release fixes a security vulnerability in the parsing logic of the \u003ccode\u003eRange\u003c/code\u003e header in \u003ccode\u003eFileResponse\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eYou can view the full security advisory: \u003ca href=\"https://github.com/Kludex/starlette/security/advisories/GHSA-7f5h-v6xp-fcq8\"\u003eGHSA-7f5h-v6xp-fcq8\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize the HTTP ranges parsing logic \u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e4ea6e22b489ec388d6004cfbca52dd5b147127c5\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.49.0 (October 28, 2025)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eencoding\u003c/code\u003e parameter to \u003ccode\u003eConfig\u003c/code\u003e class \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003e#2996\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport multiple cookie headers in \u003ccode\u003eRequest.cookies\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3029\"\u003e#3029\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLiteral\u003c/code\u003e type for \u003ccode\u003eWebSocketEndpoint\u003c/code\u003e encoding values \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003e#3027\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDo not pollute exception context in \u003ccode\u003eMiddleware\u003c/code\u003e when using \u003ccode\u003eBaseHTTPMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003e#2976\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.48.0 (September 13, 2025)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd official Python 3.14 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3013\"\u003e#3013\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ca href=\"https://www.rfc-editor.org/rfc/rfc9110\"\u003eRFC9110\u003c/a\u003e http status names \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003e#2939\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/7e4b7428f273dbdc875dcd036d20804bcfc7b2ee\"\u003e\u003ccode\u003e7e4b742\u003c/code\u003e\u003c/a\u003e Version 0.49.1 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3047\"\u003e#3047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e\u003ccode\u003e4ea6e22\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/7d88ea6f8ec8aa99cdb5fc7a10b88db5aadfdfee\"\u003e\u003ccode\u003e7d88ea6\u003c/code\u003e\u003c/a\u003e Version 0.49.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3046\"\u003e#3046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/26d66bbfb05c7bbecbbb57106c65f33682f8174e\"\u003e\u003ccode\u003e26d66bb\u003c/code\u003e\u003c/a\u003e Do not pollute exception context in Middleware (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/a59397db889e3a96c4f34b1406957a3b92e1e8b5\"\u003e\u003ccode\u003ea59397d\u003c/code\u003e\u003c/a\u003e Set encodings when reading config files (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3b7f0cbf598be305528a498a35089ce723060372\"\u003e\u003ccode\u003e3b7f0cb\u003c/code\u003e\u003c/a\u003e test: add test for unknown status (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3035\"\u003e#3035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/b09ce1a99d352ee6f5b896597f03a1a57507afcd\"\u003e\u003ccode\u003eb09ce1a\u003c/code\u003e\u003c/a\u003e docs: fix legibility issues on sponsorship page (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3039\"\u003e#3039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/0f0edcf8007412d9536bf8714c5815ce8f5dba4b\"\u003e\u003ccode\u003e0f0edcf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Add Marcelo Trylesinski to the license (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3025\"\u003e#3025\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3044\"\u003e#3044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3912d6313730cc6004dfb4436e37dbc1a81db7c8\"\u003e\u003ccode\u003e3912d63\u003c/code\u003e\u003c/a\u003e docs: add social icons (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3038\"\u003e#3038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4915a9309fcad58ac08b9fa550563d3287b531ad\"\u003e\u003ccode\u003e4915a93\u003c/code\u003e\u003c/a\u003e Add discord to README/docs (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3034\"\u003e#3034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.47.3...0.49.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `langchain-core` from 0.3.76 to 0.3.81\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langchain/releases\"\u003elangchain-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elangchain-core==0.3.81\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==0.3.80\u003c/p\u003e\n\u003cp\u003erelease(core): 0.3.81 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34459\"\u003e#34459\u003c/a\u003e)\nfix(core): serialization patch (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34458\"\u003e#34458\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-core==0.3.80\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==0.3.79\u003c/p\u003e\n\u003cp\u003erelease(core): 0.3.80 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34039\"\u003e#34039\u003c/a\u003e)\nfix(core): fix validation for input variables in f-string templates, restrict functionality supported by jinja2, mustache templates  (GHSA-6qv9-48xg-fc7f) (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34038\"\u003e#34038\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/langchain-ai/langchain/commit/6dc06da1bb2f3781844895c259a67e40bc598f19\"\u003e\u003ccode\u003e6dc06da\u003c/code\u003e\u003c/a\u003e release(core): 0.3.81 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34459\"\u003e#34459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/d9ec4c5cc78960abd37da79b0250f5642e6f0ce6\"\u003e\u003ccode\u003ed9ec4c5\u003c/code\u003e\u003c/a\u003e fix(core): serialization patch (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34458\"\u003e#34458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/640d85c60f9fa6ba9c2fddeccca76d03dfb53b29\"\u003e\u003ccode\u003e640d85c\u003c/code\u003e\u003c/a\u003e release(core): 0.3.80 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34039\"\u003e#34039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/fa7789d6c21222b85211755d822ef698d3b34e00\"\u003e\u003ccode\u003efa7789d\u003c/code\u003e\u003c/a\u003e fix(core): fix validation for input variables in f-string templates, restrict...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/b93d2f7f3a0a42c455c25d346e907c6765016649\"\u003e\u003ccode\u003eb93d2f7\u003c/code\u003e\u003c/a\u003e release(core): 0.3.79 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/33401\"\u003e#33401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/a763ebe86cbf63ca1f378286c1dd76e16d88e503\"\u003e\u003ccode\u003ea763ebe\u003c/code\u003e\u003c/a\u003e release(anthropic): 0.3.22 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/33394\"\u003e#33394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/5fa1094451c9612ab27f89338c549e1b54ae8fbf\"\u003e\u003ccode\u003e5fa1094\u003c/code\u003e\u003c/a\u003e fix(anthropic,standard-tests): carry over updates to v0.3 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/33393\"\u003e#33393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/dd4de696b838b0d4f2d4769eb4bc3b1fba58afb4\"\u003e\u003ccode\u003edd4de69\u003c/code\u003e\u003c/a\u003e fix(core): handle parent/child mustache vars (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/33346\"\u003e#33346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/5459ff1ee35a0e4de699cefa5056122701796b89\"\u003e\u003ccode\u003e5459ff1\u003c/code\u003e\u003c/a\u003e chore: cap lib upper bounds, run sync (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/33320\"\u003e#33320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/f95669aa0aee8df05b55765a5d5ea3000fd61dfe\"\u003e\u003ccode\u003ef95669a\u003c/code\u003e\u003c/a\u003e release(openai): 0.3.35 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/33299\"\u003e#33299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langchain/compare/langchain-core==0.3.76...langchain-core==0.3.81\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.5.0 to 2.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6.3\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where decompression-bomb safeguards of the streaming API were bypassed when HTTP redirects were followed. (CVE-2026-21441 reported by \u003ca href=\"https://github.com/D47A\"\u003e\u003ccode\u003e@​D47A\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-38jv-5279-wg99)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by default. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003eurllib3/urllib3#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003eurllib3/urllib3#3752\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in the decoder's buffer when reading compressed chunked responses. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3734\"\u003eurllib3/urllib3#3734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and \u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3731\"\u003e#3731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly compressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource consumption even when a small amount of data was requested. Reading small chunks of compressed data is safer and much more efficient now. (CVE-2025-66471 reported by \u003ca href=\"https://github.com/Cycloctane\"\u003e\u003ccode\u003e@​Cycloctane\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-2xpw-w6gg-jr37)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with virtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially leading to a denial of service (DoS) attack by exhausting system resources during decoding. The number of allowed chained encodings is now limited to 5. (CVE-2025-66418 reported by \u003ca href=\"https://github.com/illia-v\"\u003e\u003ccode\u003e@​illia-v\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-gm62-xv2j-4w53)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but your environment contains a Brotli/brotlicffi/brotlipy package anyway, make sure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to  benefit from the security fixes and avoid warnings. Prefer using  \u003ccode\u003eurllib3[brotli]\u003c/code\u003e to install a compatible Brotli package automatically.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c!-- 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/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.6.3 (2026-01-07)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a high-severity security issue where decompression-bomb safeguards of\nthe streaming API were bypassed when HTTP redirects were followed.\n(\u003ccode\u003eGHSA-38jv-5279-wg99 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-38jv-5279-wg99\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by\ndefault. (\u003ccode\u003e[#3743](https://github.com/urllib3/urllib3/issues/3743) \u0026lt;https://github.com/urllib3/urllib3/issues/3743\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten.\n(\u003ccode\u003e[#3752](https://github.com/urllib3/urllib3/issues/3752) \u0026lt;https://github.com/urllib3/urllib3/issues/3752\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.2 (2025-12-11)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in\nthe decoder's buffer when reading compressed chunked responses.\n(\u003ccode\u003e[#3734](https://github.com/urllib3/urllib3/issues/3734) \u0026lt;https://github.com/urllib3/urllib3/issues/3734\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.1 (2025-12-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and\n\u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods.\n(\u003ccode\u003e[#3731](https://github.com/urllib3/urllib3/issues/3731) \u0026lt;https://github.com/urllib3/urllib3/issues/3731\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.0 (2025-12-05)\u003c/h1\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly\ncompressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource\nconsumption even when a small amount of data was requested. Reading small\nchunks of compressed data is safer and much more efficient now.\n(\u003ccode\u003eGHSA-2xpw-w6gg-jr37 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-2xpw-w6gg-jr37\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with\nvirtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially\nleading to a denial of service (DoS) attack by exhausting system resources\nduring decoding. The number of allowed chained encodings is now limited to 5.\n(\u003ccode\u003eGHSA-gm62-xv2j-4w53 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-gm62-xv2j-4w53\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. caution::\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but\nyour environment contains a Brotli/brotlicffi/brotlipy package anyway, make\nsure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to\nbenefit from the security fixes and avoid warnings. Prefer using\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/urllib3/urllib3/commit/0248277dd7ac0239204889ca991353ad3e3a1ddc\"\u003e\u003ccode\u003e0248277\u003c/code\u003e\u003c/a\u003e Release 2.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8864ac407bba8607950025e0979c4c69bc7abc7b\"\u003e\u003ccode\u003e8864ac4\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/70cecb27ca99d56aaaeb63ac27ee270ef2b24c5c\"\u003e\u003ccode\u003e70cecb2\u003c/code\u003e\u003c/a\u003e Fix Scorecard issues related to vulnerable dev dependencies (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3755\"\u003e#3755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/41f249abe1ef3e20768588969c4035aba060a359\"\u003e\u003ccode\u003e41f249a\u003c/code\u003e\u003c/a\u003e Move \u0026quot;v2.0 Migration Guide\u0026quot; to the end of the table of contents (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3747\"\u003e#3747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/fd4dffd2fc544166b76151a2fa3d7b7c0eab540c\"\u003e\u003ccode\u003efd4dffd\u003c/code\u003e\u003c/a\u003e Patch \u003ccode\u003eVerifiedHTTPSConnection\u003c/code\u003e for Emscripten (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003e#3752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/13f0bfd55e4468fe1ea9c6f809d3a87b0f93ebab\"\u003e\u003ccode\u003e13f0bfd\u003c/code\u003e\u003c/a\u003e Handle massive values in Retry-After when calculating time to sleep for (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003e#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8c480bf87bcefd321b3a1ae47f04e908b6b2ed7b\"\u003e\u003ccode\u003e8c480bf\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3748\"\u003e#3748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/4b40616e959c0a2c466e8075f2a785a9f99bb0c1\"\u003e\u003ccode\u003e4b40616\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.3.0 to 5.0.1 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3750\"\u003e#3750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/82b8479663d037d220c883f1584dd01a43bb273b\"\u003e\u003ccode\u003e82b8479\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3749\"\u003e#3749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/34284cb01700bb7d4fdd472f909e22393e9174e2\"\u003e\u003ccode\u003e34284cb\u003c/code\u003e\u003c/a\u003e Mention experimental features in the security policy (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3746\"\u003e#3746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.5.0...2.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` from 0.47.1 to 0.49.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.49.1\u003c/h2\u003e\n\u003cp\u003eThis release fixes a security vulnerability in the parsing logic of the \u003ccode\u003eRange\u003c/code\u003e header in \u003ccode\u003eFileResponse\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eYou can view the full security advisory: \u003ca href=\"https://github.com/Kludex/starlette/security/advisories/GHSA-7f5h-v6xp-fcq8\"\u003eGHSA-7f5h-v6xp-fcq8\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize the HTTP ranges parsing logic \u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e4ea6e22b489ec388d6004cfbca52dd5b147127c5\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.49.0...0.49.1\"\u003ehttps://github.com/Kludex/starlette/compare/0.49.0...0.49.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.49.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eencoding\u003c/code\u003e parameter to \u003ccode\u003eConfig\u003c/code\u003e class \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003e#2996\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport multiple cookie headers in \u003ccode\u003eRequest.cookies\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3029\"\u003e#3029\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLiteral\u003c/code\u003e type for \u003ccode\u003eWebSocketEndpoint\u003c/code\u003e encoding values \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003e#3027\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDo not pollute exception context in \u003ccode\u003eMiddleware\u003c/code\u003e when using \u003ccode\u003eBaseHTTPMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003e#2976\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TheWesDias\"\u003e\u003ccode\u003e@​TheWesDias\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3017\"\u003eKludex/starlette#3017\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gmos2104\"\u003e\u003ccode\u003e@​gmos2104\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003eKludex/starlette#3027\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/secrett2633\"\u003e\u003ccode\u003e@​secrett2633\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003eKludex/starlette#2996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adam-sikora\"\u003e\u003ccode\u003e@​adam-sikora\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003eKludex/starlette#2976\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.48.0...0.49.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.48.0...0.49.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.48.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd official Python 3.14 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3013\"\u003e#3013\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ca href=\"https://www.rfc-editor.org/rfc/rfc9110\"\u003eRFC9110\u003c/a\u003e http status names \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003e#2939\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/yakimka\"\u003e\u003ccode\u003e@​yakimka\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2943\"\u003eKludex/starlette#2943\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mbeijen\"\u003e\u003ccode\u003e@​mbeijen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003eKludex/starlette#2939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.47.3...0.48.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.47.3...0.48.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.49.1 (October 28, 2025)\u003c/h2\u003e\n\u003cp\u003eThis release fixes a security vulnerability in the parsing logic of the \u003ccode\u003eRange\u003c/code\u003e header in \u003ccode\u003eFileResponse\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eYou can view the full security advisory: \u003ca href=\"https://github.com/Kludex/starlette/security/advisories/GHSA-7f5h-v6xp-fcq8\"\u003eGHSA-7f5h-v6xp-fcq8\u003c/a\u003e\u003c/p\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize the HTTP ranges parsing logic \u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e4ea6e22b489ec388d6004cfbca52dd5b147127c5\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.49.0 (October 28, 2025)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eencoding\u003c/code\u003e parameter to \u003ccode\u003eConfig\u003c/code\u003e class \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2996\"\u003e#2996\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSupport multiple cookie headers in \u003ccode\u003eRequest.cookies\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3029\"\u003e#3029\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLiteral\u003c/code\u003e type for \u003ccode\u003eWebSocketEndpoint\u003c/code\u003e encoding values \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3027\"\u003e#3027\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eDo not pollute exception context in \u003ccode\u003eMiddleware\u003c/code\u003e when using \u003ccode\u003eBaseHTTPMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2976\"\u003e#2976\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.48.0 (September 13, 2025)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd official Python 3.14 support \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3013\"\u003e#3013\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ca href=\"https://www.rfc-editor.org/rfc/rfc9110\"\u003eRFC9110\u003c/a\u003e http status names \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/2939\"\u003e#2939\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/7e4b7428f273dbdc875dcd036d20804bcfc7b2ee\"\u003e\u003ccode\u003e7e4b742\u003c/code\u003e\u003c/a\u003e Version 0.49.1 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3047\"\u003e#3047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4ea6e22b489ec388d6004cfbca52dd5b147127c5\"\u003e\u003ccode\u003e4ea6e22\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/7d88ea6f8ec8aa99cdb5fc7a10b88db5aadfdfee\"\u003e\u003ccode\u003e7d88ea6\u003c/code\u003e\u003c/a\u003e Version 0.49.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3046\"\u003e#3046\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/26d66bbfb05c7bbecbbb57106c65f33682f8174e\"\u003e\u003ccode\u003e26d66bb\u003c/code\u003e\u003c/a\u003e Do not pollute exception context in Middleware (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/2976\"\u003e#2976\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/a59397db889e3a96c4f34b1406957a3b92e1e8b5\"\u003e\u003ccode\u003ea59397d\u003c/code\u003e\u003c/a\u003e Set encodings when reading config files (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/2996\"\u003e#2996\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3b7f0cbf598be305528a498a35089ce723060372\"\u003e\u003ccode\u003e3b7f0cb\u003c/code\u003e\u003c/a\u003e test: add test for unknown status (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3035\"\u003e#3035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/b09ce1a99d352ee6f5b896597f03a1a57507afcd\"\u003e\u003ccode\u003eb09ce1a\u003c/code\u003e\u003c/a\u003e docs: fix legibility issues on sponsorship page (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3039\"\u003e#3039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/0f0edcf8007412d9536bf8714c5815ce8f5dba4b\"\u003e\u003ccode\u003e0f0edcf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Add Marcelo Trylesinski to the license (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3025\"\u003e#3025\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3044\"\u003e#3044\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/3912d6313730cc6004dfb4436e37dbc1a81db7c8\"\u003e\u003ccode\u003e3912d63\u003c/code\u003e\u003c/a\u003e docs: add social icons (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3038\"\u003e#3038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/4915a9309fcad58ac08b9fa550563d3287b531ad\"\u003e\u003ccode\u003e4915a93\u003c/code\u003e\u003c/a\u003e Add discord to README/docs (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3034\"\u003e#3034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.47.3...0.49.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `langchain-core` from 0.3.68 to 0.3.81\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/langchain-ai/langchain/releases\"\u003elangchain-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elangchain-core==0.3.81\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==0.3.80\u003c/p\u003e\n\u003cp\u003erelease(core): 0.3.81 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34459\"\u003e#34459\u003c/a\u003e)\nfix(core): serialization patch (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34458\"\u003e#34458\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003elangchain-core==0.3.80\u003c/h2\u003e\n\u003cp\u003eChanges since langchain-core==0.3.79\u003c/p\u003e\n\u003cp\u003erelease(core): 0.3.80 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34039\"\u003e#34039\u003c/a\u003e)\nfix(core): fix validation for input variables in f-string templates, restrict functionality supported by jinja2, mustache templates  (GHSA-6qv9-48xg-fc7f) (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34038\"\u003e#34038\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/langchain-ai/langchain/commit/6dc06da1bb2f3781844895c259a67e40bc598f19\"\u003e\u003ccode\u003e6dc06da\u003c/code\u003e\u003c/a\u003e release(core): 0.3.81 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34459\"\u003e#34459\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/d9ec4c5cc78960abd37da79b0250f5642e6f0ce6\"\u003e\u003ccode\u003ed9ec4c5\u003c/code\u003e\u003c/a\u003e fix(core): serialization patch (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34458\"\u003e#34458\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/640d85c60f9fa6ba9c2fddeccca76d03dfb53b29\"\u003e\u003ccode\u003e640d85c\u003c/code\u003e\u003c/a\u003e release(core): 0.3.80 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/34039\"\u003e#34039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/fa7789d6c21222b85211755d822ef698d3b34e00\"\u003e\u003ccode\u003efa7789d\u003c/code\u003e\u003c/a\u003e fix(core): fix validation for input variables in f-string templates, restrict...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/b93d2f7f3a0a42c455c25d346e907c6765016649\"\u003e\u003ccode\u003eb93d2f7\u003c/code\u003e\u003c/a\u003e release(core): 0.3.79 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/33401\"\u003e#33401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/a763ebe86cbf63ca1f378286c1dd76e16d88e503\"\u003e\u003ccode\u003ea763ebe\u003c/code\u003e\u003c/a\u003e release(anthropic): 0.3.22 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/33394\"\u003e#33394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/5fa1094451c9612ab27f89338c549e1b54ae8fbf\"\u003e\u003ccode\u003e5fa1094\u003c/code\u003e\u003c/a\u003e fix(anthropic,standard-tests): carry over updates to v0.3 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/33393\"\u003e#33393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/dd4de696b838b0d4f2d4769eb4bc3b1fba58afb4\"\u003e\u003ccode\u003edd4de69\u003c/code\u003e\u003c/a\u003e fix(core): handle parent/child mustache vars (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/33346\"\u003e#33346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/5459ff1ee35a0e4de699cefa5056122701796b89\"\u003e\u003ccode\u003e5459ff1\u003c/code\u003e\u003c/a\u003e chore: cap lib upper bounds, run sync (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/33320\"\u003e#33320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/langchain-ai/langchain/commit/f95669aa0aee8df05b55765a5d5ea3000fd61dfe\"\u003e\u003ccode\u003ef95669a\u003c/code\u003e\u003c/a\u003e release(openai): 0.3.35 (\u003ca href=\"https://redirect.github.com/langchain-ai/langchain/issues/33299\"\u003e#33299\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/langchain-ai/langchain/compare/langchain-core==0.3.76...langchain-core==0.3.81\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.5.0 to 2.6.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6.3\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where decompression-bomb safeguards of the streaming API were bypassed when HTTP redirects were followed. (CVE-2026-21441 reported by \u003ca href=\"https://github.com/D47A\"\u003e\u003ccode\u003e@​D47A\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-38jv-5279-wg99)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by default. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003eurllib3/urllib3#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003eurllib3/urllib3#3752\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in the decoder's buffer when reading compressed chunked responses. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3734\"\u003eurllib3/urllib3#3734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and \u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3731\"\u003e#3731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.6.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly compressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource consumption even when a small amount of data was requested. Reading small chunks of compressed data is safer and much more efficient now. (CVE-2025-66471 reported by \u003ca href=\"https://github.com/Cycloctane\"\u003e\u003ccode\u003e@​Cycloctane\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-2xpw-w6gg-jr37)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with virtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially leading to a denial of service (DoS) attack by exhausting system resources during decoding. The number of allowed chained encodings is now limited to 5. (CVE-2025-66418 reported by \u003ca href=\"https://github.com/illia-v\"\u003e\u003ccode\u003e@​illia-v\u003c/code\u003e\u003c/a\u003e, 8.9 High, GHSA-gm62-xv2j-4w53)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but your environment contains a Brotli/brotlicffi/brotlipy package anyway, make sure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to  benefit from the security fixes and avoid warnings. Prefer using  \u003ccode\u003eurllib3[brotli]\u003c/code\u003e to install a compatible Brotli package automatically.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c!-- 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/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.6.3 (2026-01-07)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a high-severity security issue where decompression-bomb safeguards of\nthe streaming API were bypassed when HTTP redirects were followed.\n(\u003ccode\u003eGHSA-38jv-5279-wg99 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-38jv-5279-wg99\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eStarted treating \u003ccode\u003eRetry-After\u003c/code\u003e times greater than 6 hours as 6 hours by\ndefault. (\u003ccode\u003e[#3743](https://github.com/urllib3/urllib3/issues/3743) \u0026lt;https://github.com/urllib3/urllib3/issues/3743\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eurllib3.connection.VerifiedHTTPSConnection\u003c/code\u003e on Emscripten.\n(\u003ccode\u003e[#3752](https://github.com/urllib3/urllib3/issues/3752) \u0026lt;https://github.com/urllib3/urllib3/issues/3752\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.2 (2025-12-11)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPResponse.read_chunked()\u003c/code\u003e to properly handle leftover data in\nthe decoder's buffer when reading compressed chunked responses.\n(\u003ccode\u003e[#3734](https://github.com/urllib3/urllib3/issues/3734) \u0026lt;https://github.com/urllib3/urllib3/issues/3734\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.1 (2025-12-08)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRestore previously removed \u003ccode\u003eHTTPResponse.getheaders()\u003c/code\u003e and\n\u003ccode\u003eHTTPResponse.getheader()\u003c/code\u003e methods.\n(\u003ccode\u003e[#3731](https://github.com/urllib3/urllib3/issues/3731) \u0026lt;https://github.com/urllib3/urllib3/issues/3731\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.6.0 (2025-12-05)\u003c/h1\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where streaming API could improperly handle highly\ncompressed HTTP content (\u0026quot;decompression bombs\u0026quot;) leading to excessive resource\nconsumption even when a small amount of data was requested. Reading small\nchunks of compressed data is safer and much more efficient now.\n(\u003ccode\u003eGHSA-2xpw-w6gg-jr37 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-2xpw-w6gg-jr37\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed a security issue where an attacker could compose an HTTP response with\nvirtually unlimited links in the \u003ccode\u003eContent-Encoding\u003c/code\u003e header, potentially\nleading to a denial of service (DoS) attack by exhausting system resources\nduring decoding. The number of allowed chained encodings is now limited to 5.\n(\u003ccode\u003eGHSA-gm62-xv2j-4w53 \u0026lt;https://github.com/urllib3/urllib3/security/advisories/GHSA-gm62-xv2j-4w53\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. caution::\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIf urllib3 is not installed with the optional \u003ccode\u003eurllib3[brotli]\u003c/code\u003e extra, but\nyour environment contains a Brotli/brotlicffi/brotlipy package anyway, make\nsure to upgrade it to at least Brotli 1.2.0 or brotlicffi 1.2.0.0 to\nbenefit from the security fixes and avoid warnings. Prefer using\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/urllib3/urllib3/commit/0248277dd7ac0239204889ca991353ad3e3a1ddc\"\u003e\u003ccode\u003e0248277\u003c/code\u003e\u003c/a\u003e Release 2.6.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8864ac407bba8607950025e0979c4c69bc7abc7b\"\u003e\u003ccode\u003e8864ac4\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/70cecb27ca99d56aaaeb63ac27ee270ef2b24c5c\"\u003e\u003ccode\u003e70cecb2\u003c/code\u003e\u003c/a\u003e Fix Scorecard issues related to vulnerable dev dependencies (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3755\"\u003e#3755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/41f249abe1ef3e20768588969c4035aba060a359\"\u003e\u003ccode\u003e41f249a\u003c/code\u003e\u003c/a\u003e Move \u0026quot;v2.0 Migration Guide\u0026quot; to the end of the table of contents (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3747\"\u003e#3747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/fd4dffd2fc544166b76151a2fa3d7b7c0eab540c\"\u003e\u003ccode\u003efd4dffd\u003c/code\u003e\u003c/a\u003e Patch \u003ccode\u003eVerifiedHTTPSConnection\u003c/code\u003e for Emscripten (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3752\"\u003e#3752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/13f0bfd55e4468fe1ea9c6f809d3a87b0f93ebab\"\u003e\u003ccode\u003e13f0bfd\u003c/code\u003e\u003c/a\u003e Handle massive values in Retry-After when calculating time to sleep for (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3743\"\u003e#3743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8c480bf87bcefd321b3a1ae47f04e908b6b2ed7b\"\u003e\u003ccode\u003e8c480bf\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 5.0.0 to 6.0.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3748\"\u003e#3748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/4b40616e959c0a2c466e8075f2a785a9f99bb0c1\"\u003e\u003ccode\u003e4b40616\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4.3.0 to 5.0.1 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3750\"\u003e#3750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/82b8479663d037d220c883f1584dd01a43bb273b\"\u003e\u003ccode\u003e82b8479\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3749\"\u003e#3749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/34284cb01700bb7d4fdd472f909e22393e9174e2\"\u003e\u003ccode\u003e34284cb\u003c/code\u003e\u003c/a\u003e Mention experimental features in the security policy (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3746\"\u003e#3746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.5.0...2.6.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/okisdev/assistant-ui/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/okisdev/assistant-ui/pull/6","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/okisdev%2Fassistant-ui/issues/6","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/6/packages"}},{"old_version":"2.4.0","new_version":"2.5.0","update_type":"minor","path":null,"pr_created_at":"2025-09-07T22:14:26.000Z","version_change":"2.4.0 → 2.5.0","issue":{"uuid":"2806383654","node_id":"PR_kwDOEkpJIs6nRgQm","number":191,"state":"closed","title":"Bump the dependencies group across 1 directory with 36 updates","user":"dependabot[bot]","labels":["skip-changelog","dependabot-deps-updates"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2025-09-14T22:11:52.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-09-07T22:14:26.000Z","updated_at":"2025-09-14T22:11:52.000Z","time_to_close":604646,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":36,"packages":[{"name":"mkdocstrings","old_version":"0.29.1","new_version":"0.30.0","repository_url":"https://github.com/mkdocstrings/mkdocstrings"},{"name":"argparse-manpage","old_version":"4.6","new_version":"4.7","repository_url":"https://github.com/praiskup/argparse-manpage"},{"name":"backrefs","old_version":"5.8","new_version":"6.0.1","repository_url":"https://github.com/facelessuser/backrefs"},{"name":"bracex","old_version":"2.5.post1","new_version":"2.6","repository_url":"https://github.com/facelessuser/bracex"},{"name":"cachetools","old_version":"6.0.0","new_version":"6.2.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"coverage","old_version":"7.9.1","new_version":"7.10.6","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"cryptography","old_version":"45.0.4","new_version":"45.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"executing","old_version":"2.2.0","new_version":"2.2.1","repository_url":"https://github.com/alexmojaki/executing"},{"name":"filelock","old_version":"3.18.0","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"gitpython","old_version":"3.1.44","new_version":"3.1.45","repository_url":"https://github.com/gitpython-developers/GitPython"},{"name":"griffe","old_version":"1.7.3","new_version":"1.14.0","repository_url":"https://github.com/mkdocstrings/griffe"},{"name":"importlib-resources","old_version":"5.0.7","new_version":"6.5.2","repository_url":"https://github.com/python/importlib_resources"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.1","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"markdown","old_version":"3.8","new_version":"3.9","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"mkdocs-autorefs","old_version":"1.4.2","new_version":"1.4.3","repository_url":"https://github.com/mkdocstrings/autorefs"},{"name":"mkdocs-material","old_version":"9.6.14","new_version":"9.6.19","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"mkdocstrings-python","old_version":"1.16.12","new_version":"1.18.2","repository_url":"https://github.com/mkdocstrings/python"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"pbr","old_version":"6.1.1","new_version":"7.0.1"},{"name":"pillow","old_version":"11.2.1","new_version":"11.3.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pymdown-extensions","old_version":"10.15","new_version":"10.16.1","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"pytest","old_version":"8.4.0","new_version":"8.4.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-sugar","old_version":"1.0.0","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-xdist","old_version":"3.7.0","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rich","old_version":"14.0.0","new_version":"14.1.0","repository_url":"https://github.com/Textualize/rich"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.27.1","repository_url":"https://github.com/crate-py/rpds"},{"name":"setproctitle","old_version":"1.3.6","new_version":"1.3.7","repository_url":"https://github.com/dvarrazzo/py-setproctitle"},{"name":"urllib3","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"wcmatch","old_version":"10.0","new_version":"10.1","repository_url":"https://github.com/facelessuser/wcmatch"}],"path":null,"ecosystem":"conda"},"body":"Bumps the dependencies group with 36 updates in the /.config directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings) | `0.29.1` | `0.30.0` |\n| [argparse-manpage](https://github.com/praiskup/argparse-manpage) | `4.6` | `4.7` |\n| [backrefs](https://github.com/facelessuser/backrefs) | `5.8` | `6.0.1` |\n| [bracex](https://github.com/facelessuser/bracex) | `2.5.post1` | `2.6` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.0.0` | `6.2.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.8.3` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.3` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.9.1` | `7.10.6` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.4` | `45.0.7` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [executing](https://github.com/alexmojaki/executing) | `2.2.0` | `2.2.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.19.1` |\n| [gitpython](https://github.com/gitpython-developers/GitPython) | `3.1.44` | `3.1.45` |\n| [griffe](https://github.com/mkdocstrings/griffe) | `1.7.3` | `1.14.0` |\n| [importlib-resources](https://github.com/python/importlib_resources) | `5.0.7` | `6.5.2` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.8` | `3.9` |\n| [mkdocs-autorefs](https://github.com/mkdocstrings/autorefs) | `1.4.2` | `1.4.3` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.6.14` | `9.6.19` |\n| [mkdocstrings-python](https://github.com/mkdocstrings/python) | `1.16.12` | `1.18.2` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [pbr](https://docs.openstack.org/pbr/latest/) | `6.1.1` | `7.0.1` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `11.3.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.4.0` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.15` | `10.16.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.0` | `8.4.2` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `1.0.0` | `1.1.1` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.7.0` | `3.8.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rich](https://github.com/Textualize/rich) | `14.0.0` | `14.1.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.27.1` |\n| [setproctitle](https://github.com/dvarrazzo/py-setproctitle) | `1.3.6` | `1.3.7` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.4.0` | `2.5.0` |\n| [wcmatch](https://github.com/facelessuser/wcmatch) | `10.0` | `10.1` |\n\n\nUpdates `mkdocstrings` from 0.29.1 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases\"\u003emkdocstrings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.30.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\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/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md\"\u003emkdocstrings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\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/mkdocstrings/mkdocstrings/commit/2be445f054c1191d308af7ee0cc881e359f5a4c7\"\u003e\u003ccode\u003e2be445f\u003c/code\u003e\u003c/a\u003e chore: Prepare release 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003e\u003ccode\u003ef856160\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip regist...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e\u003ccode\u003e2b4ed54\u003c/code\u003e\u003c/a\u003e feat: Add I18N support (translations)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/51f217f38af9475415f758866697158d9010967d\"\u003e\u003ccode\u003e51f217f\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/b1da3d02c4f432f603cbb0004bb35099327706db\"\u003e\u003ccode\u003eb1da3d0\u003c/code\u003e\u003c/a\u003e ci: Ignore Ruff warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d5bf4e1ed0370853f968b210ad77913faf106eed\"\u003e\u003ccode\u003ed5bf4e1\u003c/code\u003e\u003c/a\u003e docs: Update link to YAML idiosyncrasies\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argparse-manpage` from 4.6 to 4.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/praiskup/argparse-manpage/releases\"\u003eargparse-manpage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eargparse-manpage v4.7\u003c/h2\u003e\n\u003cp\u003eNews in v4.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esys.stdout used instead of /dev/stdout\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed build compatibility with newer setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed deprecation warnings for datetime and setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003enew compat method for handling SOURCE_DATE_EPOCH\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/praiskup/argparse-manpage/blob/main/NEWS\"\u003eargparse-manpage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cpre\u003e\u003ccode\u003e\nWARNING: The 'build_manpage' setup.py command will be removed v5\nWARNING: We'll drop the Python 2.7 support in v5\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esys.stdout used instead of /dev/stdout\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed build compatibility with newer setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed deprecation warnings for datetime and setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003enew compat method for handling SOURCE_DATE_EPOCH\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre\u003e\u003ccode\u003e\nNews in v4.6\n\u003cul\u003e\n\u003cli\u003eFix the build against Python 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.5\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWe newly provide \u003ccode\u003ebuild_manpages.build_py\u003c/code\u003e and \u003ccode\u003ebuild_manpages.install\u003c/code\u003e\ncommand classes that are re-usable from \u003ccode\u003epyproject.toml\u003c/code\u003e.  No need to\nprovide \u003ccode\u003esetup.py\u003c/code\u003e because of \u003ccode\u003eargparse-manpage\u003c/code\u003e.  Solved issue#85.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre\u003e\u003ccode\u003e\nNews in v4.4\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eprog=\u003c/code\u003e specifier (in setup.py/setup.cfg/pyproject.toml) is now\u003cbr /\u003e\nbetter handled so it doesn't conflict with ArgumentParser(prog=..).\u003cbr /\u003e\nFixes \u003ca href=\"https://redirect.github.com/praiskup/argparse-manpage/issues/79\"\u003epraiskup/argparse-manpage#79\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNews in v4.3\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe pyproject.toml parsing feature now depends on the python3-tomli library\u003cbr /\u003e\ninstead of python-toml for \u0026quot;python_environment \u0026gt;3, \u0026lt;=3.10\u0026quot;.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.2\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for pyproject.toml specification of manpages added.\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/praiskup/argparse-manpage/commit/7883becca340aa3ea124143e032848a7b2bdf84b\"\u003e\u003ccode\u003e7883bec\u003c/code\u003e\u003c/a\u003e Release v4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/765389ed4ee835c09451823d7fbfe22b0dc1674a\"\u003e\u003ccode\u003e765389e\u003c/code\u003e\u003c/a\u003e Move the SOURCE_DATE_EPOCH hack on one place\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/a06ed9c1f03360f8089819c8e845cd670687eb64\"\u003e\u003ccode\u003ea06ed9c\u003c/code\u003e\u003c/a\u003e ci: fix RPM build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/c985432ee15824c43c75548c7ec1bd6f105a7f22\"\u003e\u003ccode\u003ec985432\u003c/code\u003e\u003c/a\u003e Fix deprecation warnings for datetime and setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/306658941368ff0c2dfe2e4fa29b889fb5bbeb2b\"\u003e\u003ccode\u003e3066589\u003c/code\u003e\u003c/a\u003e ci: fedora-tox update list of environments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/b3a2c50e2abc47bd822d848864a80e35251a3147\"\u003e\u003ccode\u003eb3a2c50\u003c/code\u003e\u003c/a\u003e ci: enable ruff \u0026amp; bump deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/6dc54a5272e70b081af728958fd7554a6b0372f3\"\u003e\u003ccode\u003e6dc54a5\u003c/code\u003e\u003c/a\u003e Fix compatibility with newer setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/29f89bba536cf28f6ed66721367ff2ee3f6209b7\"\u003e\u003ccode\u003e29f89bb\u003c/code\u003e\u003c/a\u003e Fix some comments about sys.argv alteration for usage message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/ade76cc8ef49ec804955c6b4027dbae52d482034\"\u003e\u003ccode\u003eade76cc\u003c/code\u003e\u003c/a\u003e Use sys.stdout instead of /dev/stdout\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/praiskup/argparse-manpage/compare/v4.6...v4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `backrefs` from 5.8 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/backrefs/releases\"\u003ebackrefs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix a regression that created an ASCII binary property that would override the ASCII block property.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: POSIX character classes will now always use POSIX compatibility rules instead of Unicode standard rules,\nif any are specified in the Unicode specification. The affected character classes are: \u003ccode\u003e[[:alnum:]]\u003c/code\u003e, \u003ccode\u003e[[:digit:]]\u003c/code\u003e,\n\u003ccode\u003e[[:xdigit:]]\u003c/code\u003e, and  \u003ccode\u003e[[:punct:]]\u003c/code\u003e. To explicitly use standard Unicode rules for these compatibility properties, use\nthe Unicode property form instead: \u003ccode\u003e[\\p{Alnum}]\u003c/code\u003e, \u003ccode\u003e[\\p{Digit}]\u003c/code\u003e, \u003ccode\u003e[\\p{Punct}]\u003c/code\u003e, or \u003ccode\u003e[\\p{XDigit}]\u003c/code\u003e. This has changed\nto ensure no confusion for users expecting compatible POSIX style character class properties.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Scoped ASCII/Unicode flags (\u003ccode\u003e(?a:pattern)\u003c/code\u003e/\u003ccode\u003e(?u:pattern)\u003c/code\u003e) should be respected for Unicode properties in\n\u003ccode\u003ebre\u003c/code\u003e and will ensure ASCII or Unicode range if used.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix issues related to detecting disabled scoped flags.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eENHANCE\u003c/strong\u003e: Switch to deploying with PyPI's \u0026quot;Trusted Publisher\u0026quot;.\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/facelessuser/backrefs/commit/63f8a4b14750828b7c1e385844fd36f6f89859e4\"\u003e\u003ccode\u003e63f8a4b\u003c/code\u003e\u003c/a\u003e Fix grammar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7f4bf611e6e7fcc2aa4e0eba2872b5f51b7fc908\"\u003e\u003ccode\u003e7f4bf61\u003c/code\u003e\u003c/a\u003e Rework POSIX alias\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/956df5f387f1958110e5a7cf2a98d42a8309d9b6\"\u003e\u003ccode\u003e956df5f\u003c/code\u003e\u003c/a\u003e Fix ASCII block regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7a948f083c3c87114a8dd87c95dff1893f3af82a\"\u003e\u003ccode\u003e7a948f0\u003c/code\u003e\u003c/a\u003e Clean up code and add more comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/9b2e406be36c1e0fc72651adbc7d2d63c4151483\"\u003e\u003ccode\u003e9b2e406\u003c/code\u003e\u003c/a\u003e Add more flag tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/47d62b1270ca7f1717e7acdb56e8e6ed3e9e8f10\"\u003e\u003ccode\u003e47d62b1\u003c/code\u003e\u003c/a\u003e Handle enable/disable properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/8e7596700b913e13f478da57e0ba0965f2d9ed3b\"\u003e\u003ccode\u003e8e75967\u003c/code\u003e\u003c/a\u003e Fix issues with scoped flags (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/0df8e7746d3ea31824af97ea4ed713a3facded5b\"\u003e\u003ccode\u003e0df8e77\u003c/code\u003e\u003c/a\u003e POSIX character classes should use POSIX compatibility rules by default (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/191\"\u003e#191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/31fd8c5c0338eefe41452d52f99012c0fecfdd82\"\u003e\u003ccode\u003e31fd8c5\u003c/code\u003e\u003c/a\u003e Call mkdocs directly on deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/8b3a24bfc1cacde6fc9ab4edfaed0f5a9206c554\"\u003e\u003ccode\u003e8b3a24b\u003c/code\u003e\u003c/a\u003e Fix deploy logic\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facelessuser/backrefs/compare/5.8...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bracex` from 2.5.post1 to 2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/bracex/releases\"\u003ebracex's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/6d109c55372f0d5086adb7cf84a951cc06391a69\"\u003e\u003ccode\u003e6d109c5\u003c/code\u003e\u003c/a\u003e Add trusted publishing and support for Python 3.14 (\u003ca href=\"https://redirect.github.com/facelessuser/bracex/issues/44\"\u003e#44\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/c14d46fb495a8fdcd0ec51d4dd42aa587807407d\"\u003e\u003ccode\u003ec14d46f\u003c/code\u003e\u003c/a\u003e Add security policy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/14645af4bf4de0e1abe4fd6c29bf98871f549273\"\u003e\u003ccode\u003e14645af\u003c/code\u003e\u003c/a\u003e Typos: remove duplicate words\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/bracex/compare/2.5.post1...2.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 6.0.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.2.0 (2025-08-25)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove general \u003ccode\u003eRRCache\u003c/code\u003e performance by storing cache keys in an\nadditional sequence container.  Note that this will increase memory\nconsumption.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more unit tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\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/tkem/cachetools/commit/4a238adc490e81db58d843b011afdbe3dd9097a5\"\u003e\u003ccode\u003e4a238ad\u003c/code\u003e\u003c/a\u003e Release v6.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/9d511b769f8fb58981fb77fece846984aaaf49e6\"\u003e\u003ccode\u003e9d511b7\u003c/code\u003e\u003c/a\u003e Improve unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/79aa8c7c0eacd5d75e154bc23687ecdaf9ad1d75\"\u003e\u003ccode\u003e79aa8c7\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/356\"\u003e#356\u003c/a\u003e: Improve RRCache performance.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/bb6d71a745785429b14aae30b7752f4765dc35c3\"\u003e\u003ccode\u003ebb6d71a\u003c/code\u003e\u003c/a\u003e Release v6.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/77a9c59e3324496a79e6c4d5a7b5bfdb9a7f7f42\"\u003e\u003ccode\u003e77a9c59\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/260\"\u003e#260\u003c/a\u003e: Use LFUCache implementation based on Blake Reid's \u0026quot;cacheing\u0026quot; library.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b1d4eb2972ca8f0ab49e22eae3bb47c1eb8b552c\"\u003e\u003ccode\u003eb1d4eb2\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.4.2 to 5.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/820b154494e91aa5bfe63a3fa2033c63a9c84603\"\u003e\u003ccode\u003e820b154\u003c/code\u003e\u003c/a\u003e Refactor \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e unit tests.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v6.0.0...v6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.6.15 to 2025.8.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1\"\u003e\u003ccode\u003eddd90c6\u003c/code\u003e\u003c/a\u003e 2025.07.14 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d905221c916d51077f5c8071a0f7aa2df2a37c52\"\u003e\u003ccode\u003ed905221\u003c/code\u003e\u003c/a\u003e 2025.07.09 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.06.15...2025.08.03\"\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.2 to 3.4.3\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.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\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.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\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/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.9.1 to 7.10.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.6 — 2025-08-29\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003esource\u003c/code\u003e directories were not properly communicated to subprocesses\nthat ran in different directories, as reported in \u003ccode\u003eissue 1499\u003c/code\u003e_.  This is now\nfixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: \u003ccode\u003eAlex Gaynor continues fine-tuning \u0026lt;pull 2038_\u0026gt;\u003c/code\u003e_ the speed of\ncombination, especially with many contexts.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1499: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003enedbat/coveragepy#1499\u003c/a\u003e\n.. _pull 2038: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2038\"\u003enedbat/coveragepy#2038\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-5:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.5 — 2025-08-23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBig speed improvements for \u003ccode\u003ecoverage combine\u003c/code\u003e: it's now about twice as\nfast! Huge thanks to Alex Gaynor for pull requests \u003ccode\u003e2032 \u0026lt;pull 2032_\u0026gt;\u003c/code\u003e\u003cem\u003e,\n\u003ccode\u003e2033 \u0026lt;pull 2033_\u0026gt;\u003c/code\u003e\u003c/em\u003e, and \u003ccode\u003e2034 \u0026lt;pull 2034_\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _pull 2032: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2032\"\u003enedbat/coveragepy#2032\u003c/a\u003e\n.. _pull 2033: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2033\"\u003enedbat/coveragepy#2033\u003c/a\u003e\n.. _pull 2034: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2034\"\u003enedbat/coveragepy#2034\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-4:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.4 — 2025-08-16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003epatch = fork\u003c/code\u003e for times when the built-in forking support is\ninsufficient.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003epatch = execv\u003c/code\u003e also inherits the entire coverage configuration now.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _changes_7-10-3:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.3 — 2025-08-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixes for \u003ccode\u003epatch = subprocess\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses spawned yet more subprocesses simultaneously, some coverage\ncould be missed.  This is now fixed, closing \u003ccode\u003eissue 2024\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses were created in other directories, their data files were\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/nedbat/coveragepy/commit/88c55ff87437f7e59b42d131d0e2b6ce413546bf\"\u003e\u003ccode\u003e88c55ff\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/01d89959bfa825f661121e0f8d173f3ae1ecedac\"\u003e\u003ccode\u003e01d8995\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9b0c24ffc17840464c2343b702a6ee44e10fcadf\"\u003e\u003ccode\u003e9b0c24f\u003c/code\u003e\u003c/a\u003e docs: thanks Alex \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2038\"\u003e#2038\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/66d69108654f6fc1de916a37fc06ac898091aa2d\"\u003e\u003ccode\u003e66d6910\u003c/code\u003e\u003c/a\u003e fix: make \u003ccode\u003esource\u003c/code\u003e paths absolute where they exist. \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003e#1499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/bb3382f50f2b91aebb046d665334a5d361e5ddc5\"\u003e\u003ccode\u003ebb3382f\u003c/code\u003e\u003c/a\u003e build: no need for the combine/html times now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9ea349a164527832a49faa3eeec628d59ef75c7c\"\u003e\u003ccode\u003e9ea349a\u003c/code\u003e\u003c/a\u003e lab: warn_executed.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/808c9b48af3ad7b567182d383eb31451615664e0\"\u003e\u003ccode\u003e808c9b4\u003c/code\u003e\u003c/a\u003e build: changing metacov.ini should trigger metacov\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/384f5f22bd1ef52000d80922de03922a58ff936c\"\u003e\u003ccode\u003e384f5f2\u003c/code\u003e\u003c/a\u003e build: oops, some 'if's are really line pragmas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a7224af73365ba2d217f0e0966c7873c5bac3a67\"\u003e\u003ccode\u003ea7224af\u003c/code\u003e\u003c/a\u003e perf: pre-compute the mapping between other_db.context and main.context (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2038\"\u003e#2038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5c00c5ba4bcd4f7da6a9f0ccd0797e0944415e8a\"\u003e\u003ccode\u003e5c00c5b\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 3 updates (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2039\"\u003e#2039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.9.1...7.10.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 45.0.4 to 45.0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e45.0.7 - 2025-09-01\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Added a function to support an upcoming ``pyOpenSSL`` release.\n\u003cp\u003e.. _v45-0-6:\u003c/p\u003e\n\u003cp\u003e45.0.6 - 2025-08-05\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.2.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-5:\u003c/p\u003e\n\u003cp\u003e45.0.5 - 2025-07-02\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.1.\n\u003cp\u003e.. _v45-0-4:\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/f52a3e14965fa16d03813d3ac78cd050d607794a\"\u003e\u003ccode\u003ef52a3e1\u003c/code\u003e\u003c/a\u003e prep for a 45.0.7 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13378\"\u003e#13378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/66198c23c97c9594d64540e5a866e4b4121aec2d\"\u003e\u003ccode\u003e66198c2\u003c/code\u003e\u003c/a\u003e Bump for release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13249\"\u003e#13249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3e53a233b65123d2a836b58ccdc427ed5207f92b\"\u003e\u003ccode\u003e3e53a23\u003c/code\u003e\u003c/a\u003e Bump for 45.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13135\"\u003e#13135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/45.0.4...45.0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `distlib` from 0.3.9 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/distlib/blob/master/CHANGES.rst\"\u003edistlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.4.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nReleased: 2025-07-17\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003emarkers\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003einterpret_parsed\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ewheel\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/238\"\u003e#238\u003c/a\u003e: Add build tag to wheel metadata if specified.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/243\"\u003e#243\u003c/a\u003e: Update to support free-threading version of Python (3.13t).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e: Support subdirectories in the dist-info directory. Thanks to Pieter P for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e: Fix path normalisation issue caused by the fix for \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMove import in script wrapper to \u0026quot;if \u003cstrong\u003ename\u003c/strong\u003e == 'main'\u0026quot; clause.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003etests\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/245\"\u003e#245\u003c/a\u003e: Skip test_package_data if a SKIP_EXT_PACKAGE_DATA environment variable is present.\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/aff2cbbc4e8a87b9440cb93472789a213813dbd6\"\u003e\u003ccode\u003eaff2cbb\u003c/code\u003e\u003c/a\u003e Finalise version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/3716c4bcccac19d0c0f2ce0d1272dd33996381b5\"\u003e\u003ccode\u003e3716c4b\u003c/code\u003e\u003c/a\u003e Update change log, widen exception catching in test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/660bd337bf3217a7bd907c2ba8a2f8dd291ac793\"\u003e\u003ccode\u003e660bd33\u003c/code\u003e\u003c/a\u003e Changes for 0.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/56b4ad938455048fc79e599d369e02a1414e9946\"\u003e\u003ccode\u003e56b4ad9\u003c/code\u003e\u003c/a\u003e Guard script wrapper entrypoint import with if \u003cstrong\u003emain\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/242\"\u003e#242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/fe573669087cb1109fb0cc249bf0e06a5461324c\"\u003e\u003ccode\u003efe57366\u003c/code\u003e\u003c/a\u003e docs: update coverage results link (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/250\"\u003e#250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/c3286e508bb60cd2337408d88eb614a93b612d8c\"\u003e\u003ccode\u003ec3286e5\u003c/code\u003e\u003c/a\u003e Temporarily exclude 3.13t on windows-latest.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/e6b83d3b0eeb11d8e7b053f11139d15aab89d196\"\u003e\u003ccode\u003ee6b83d3\u003c/code\u003e\u003c/a\u003e Normalize archive paths in dist-info (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/93baffeaa1773796d802bb761607a6466790dcba\"\u003e\u003ccode\u003e93baffe\u003c/code\u003e\u003c/a\u003e Skip no-longer-relevant test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/83f656836f4b6d8175172fcb8370fbee691f2bec\"\u003e\u003ccode\u003e83f6568\u003c/code\u003e\u003c/a\u003e Support subdirectories in .dist-info (fixes \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/247\"\u003e#247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/f918abd5d20879041704f9d719533b213a55ad48\"\u003e\u003ccode\u003ef918abd\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003etest_wheel.WheelTestCase.test_abi\u003c/code\u003e for freethreading (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/distlib/compare/0.3.9...0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `executing` from 2.2.0 to 2.2.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/bafb305d96572bc8fb668b6564787bbb4fff2809\"\u003e\u003ccode\u003ebafb305\u003c/code\u003e\u003c/a\u003e Add 3.14 to classifiers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/5ed2ba36c2df94c91fefabd919880ffe061dc0f2\"\u003e\u003ccode\u003e5ed2ba3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/alexmojaki/executing/issues/97\"\u003e#97\u003c/a\u003e from alexmojaki/3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/28095d447af50c49e154de5a27b9423611462f3d\"\u003e\u003ccode\u003e28095d4\u003c/code\u003e\u003c/a\u003e refactor: review changes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/bb09dc677da7988a2c9555878b3727afa995b2c0\"\u003e\u003ccode\u003ebb09dc6\u003c/code\u003e\u003c/a\u003e refactor: some cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/dabc70ef5cc9a45eb57432822cdcf674af2e1db8\"\u003e\u003ccode\u003edabc70e\u003c/code\u003e\u003c/a\u003e fix: inst.argval can be a tuple for sometimes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/0772f918c432d6451594bcb6ffccba62e32e794c\"\u003e\u003ccode\u003e0772f91\u003c/code\u003e\u003c/a\u003e fix: removed comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/bacc5b699405e6f27d882dd2a71bb0ec30167f37\"\u003e\u003ccode\u003ebacc5b6\u003c/code\u003e\u003c/a\u003e fix: moved verification for CALL_INTRINSIC_2 back to 3.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/ec090751a1645cd14bfcb20a79b02371ffd6172b\"\u003e\u003ccode\u003eec09075\u003c/code\u003e\u003c/a\u003e test: added sample_results for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/9405fed0769af3ee22dd4f433249f6494688638e\"\u003e\u003ccode\u003e9405fed\u003c/code\u003e\u003c/a\u003e fix: handle synthetic code to store annotation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexmojaki/executing/commit/f09e4cd194aa3480c12a9f5afab3524d2a7222f2\"\u003e\u003ccode\u003ef09e4cd\u003c/code\u003e\u003c/a\u003e fix: TypeVar defaults\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/alexmojaki/executing/compare/v2.2.0...v2.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.18.0 to 3.19.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/py-filelock/releases\"\u003efilelock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.19.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd 3.14t (free threading) to matrix by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncrease test coverage by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/434\"\u003etox-dev/filelock#434\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/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.19.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for 3.14 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/432\"\u003etox-dev/filelock#432\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/8d1009f08a6a64624fad91d1079062ef31b8c2b4\"\u003e\u003ccode\u003e8d1009f\u003c/code\u003e\u003c/a\u003e Update release.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/66a428e97a874b44b0310072f6c974226f55a472\"\u003e\u003ccode\u003e66a428e\u003c/code\u003e\u003c/a\u003e Increase test coverage (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0dfc86eebd2c76ae959a409bcbc3112cc1ec5890\"\u003e\u003ccode\u003e0dfc86e\u003c/code\u003e\u003c/a\u003e add 3.14 to matrix (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0c54837e318ebe8a692b529722430cb38134bf7c\"\u003e\u003ccode\u003e0c54837\u003c/code\u003e\u003c/a\u003e Add support for 3.14 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/432\"\u003e#432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/77d02f5ada3a1a92167b1beee35a7815cbde0fcf\"\u003e\u003ccode\u003e77d02f5\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/bc972b33bf253bb9f08db32b19ffd4119a74706e\"\u003e\u003ccode\u003ebc972b3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/429\"\u003e#429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/78d02cb5ff42b22a56ad1a36755361a6b4601765\"\u003e\u003ccode\u003e78d02cb\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/428\"\u003e#428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/18cdb5d1c78a7a459463480303e9820f33cdf041\"\u003e\u003ccode\u003e18cdb5d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/b198a096d2bae58596479497d18a82bbeec515c8\"\u003e\u003ccode\u003eb198a09\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/426\"\u003e#426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/6b097e76de603d9be6a24c5058b6fe53ef003afd\"\u003e\u003ccode\u003e6b097e7\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.18.0...3.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gitpython` from 3.1.44 to 3.1.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gitpython-developers/GitPython/releases\"\u003egitpython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.45\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix various version-related CI breakages by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1987\"\u003egitpython-developers/GitPython#1987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo some CI cleanup to make reports clearer and future changes easier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1989\"\u003egitpython-developers/GitPython#1989\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAffirm that gitdb and smmap advisories can also be created by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1991\"\u003egitpython-developers/GitPython#1991\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix links to gitdb and smmap \u003ccode\u003eSECURITY.md\u003c/code\u003e files by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1992\"\u003egitpython-developers/GitPython#1992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest Python 3.13 regularly on Ubuntu and macOS on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1990\"\u003egitpython-developers/GitPython#1990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRepo.rev_parse: Handle \u003c!-- raw HTML omitted --\u003e^{commit} correctly by \u003ca href=\"https://github.com/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFuzzing: Fix Broken Fuzz Test for Git Submodule Handling by \u003ca href=\"https://github.com/DaveLak\"\u003e\u003ccode\u003e@​DaveLak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1997\"\u003egitpython-developers/GitPython#1997\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWork around Cygwin CI failure \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2004\"\u003e#2004\u003c/a\u003e, except for \u003ccode\u003etest_installation\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2007\"\u003egitpython-developers/GitPython#2007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark \u003ccode\u003etest_installation\u003c/code\u003e xfail on Cygwin CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2009\"\u003egitpython-developers/GitPython#2009\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eIndexFile._to_relative_path\u003c/code\u003e - fix case where absolute path gets stripped of trailing slash by \u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse WSL1 on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2010\"\u003egitpython-developers/GitPython#2010\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest free-threaded Python (but only on Linux) by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2011\"\u003egitpython-developers/GitPython#2011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse property decorator to support typing by \u003ca href=\"https://github.com/Andrej730\"\u003e\u003ccode\u003e@​Andrej730\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2015\"\u003egitpython-developers/GitPython#2015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some incorrect sphinx markups in the docstrings by \u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereplace quansight-labs/setup-python with actions/setup-python by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove type assertions from util.py by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecorrectly handle \u003ccode\u003euname-cmd\u003c/code\u003e that doesn't point to an executable file by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2026\"\u003egitpython-developers/GitPython#2026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse newer ruff style by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2031\"\u003egitpython-developers/GitPython#2031\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHave CodeQL scan GitHub Actions workflows as well as Python code by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2032\"\u003egitpython-developers/GitPython#2032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpecify explicit \u003ccode\u003econtents: read\u003c/code\u003e workflow permissions by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2033\"\u003egitpython-developers/GitPython#2033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GitConfigParser not removing quotes from values by \u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve quoted leading and trailing single-line config var whitespace by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2036\"\u003egitpython-developers/GitPython#2036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor Git.{AutoInterrupt,CatFileContentStream} nesting by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2037\"\u003egitpython-developers/GitPython#2037\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Git.{AutoInterrupt,CatFileContentStream} static typing by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2039\"\u003egitpython-developers/GitPython#2039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI \u003ccode\u003emypy\u003c/code\u003e command on free-threaded Python by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2040\"\u003egitpython-developers/GitPython#2040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit Cygwin CI into non-\u003ccode\u003eperformance\u003c/code\u003e and \u003ccode\u003eperformance\u003c/code\u003e test jobs by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2042\"\u003egitpython-developers/GitPython#2042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpress conditional \u003ccode\u003esetuptools\u003c/code\u003e requirement statically by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2043\"\u003egitpython-developers/GitPython#2043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ambiguous \u003ccode\u003e_safer_popen_windows\u003c/code\u003e comment by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2044\"\u003egitpython-developers/GitPython#2044\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eUSE_SHELL\u003c/code\u003e warning helper signature by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2045\"\u003egitpython-developers/GitPython#2045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest \u003ccode\u003eConfigParser\u003c/code\u003e with whitespace outside the value by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2046\"\u003egitpython-developers/GitPython#2046\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove explicit empty \u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e handling in ConfigParser by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2047\"\u003egitpython-developers/GitPython#2047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious style improvements by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2049\"\u003egitpython-developers/GitPython#2049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't remove quotes if \u003ccode\u003e\\\u003c/code\u003e or \u003ccode\u003e\u0026quot;\u003c/code\u003e are present inside by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2048\"\u003egitpython-developers/GitPython#2048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix updating submodules with relative urls by \u003ca href=\"https://github.com/david0\"\u003e\u003ccode\u003e@​david0\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2051\"\u003egitpython-developers/GitPython#2051\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun \u003ccode\u003ecat_file.py\u003c/code\u003e fixture without site customizations by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2052\"\u003egitpython-developers/GitPython#2052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Cygwin installation on CI for \u003ccode\u003epip\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2053\"\u003egitpython-developers/GitPython#2053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFail \u003ccode\u003etest_installation\u003c/code\u003e on warnings, and remove deprecated license classifier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2054\"\u003egitpython-developers/GitPython#2054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd clearer error version for unsupported index error by \u003ca href=\"https://github.com/tombedor\"\u003e\u003ccode\u003e@​tombedor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2055\"\u003egitpython-developers/GitPython#2055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix name collision by \u003ca href=\"https://github.com/NMertsch\"\u003e\u003ccode\u003e@​NMertsch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2060\"\u003egitpython-developers/GitPython#2060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow relative path url in submodules for submodule_update by \u003ca href=\"https://github.com/t-webber\"\u003e\u003ccode\u003e@​t-webber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2062\"\u003egitpython-developers/GitPython#2062\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/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\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/gitpython-developers/GitPython/commit/6ba2c0a2f9ee7feffd7e079621c4845820180c9a\"\u003e\u003ccode\u003e6ba2c0a\u003c/code\u003e\u003c/a\u003e Prepare a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/bbb3d00ac431dc7966f9715fb813792d234eca81\"\u003e\u003ccode\u003ebbb3d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2062\"\u003e#2062\u003c/a\u003e from t-webber/relative_path_submodules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/1ee1e781929074afd66bff1eae007bbee41d117e\"\u003e\u003ccode\u003e1ee1e78\u003c/code\u003e\u003c/a\u003e Add test case for cloning submodules with relative path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/ec2e2c8b894512e7a2364774d77cdd9db73f0566\"\u003e\u003ccode\u003eec2e2c8\u003c/code\u003e\u003c/a\u003e Allow relative path url in submodules for submodule_update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4d529b71905edae12e4699170f7d9e0a665801b5\"\u003e\u003ccode\u003e4d529b7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2060\"\u003e#2060\u003c/a\u003e from NMertsch/2023-fix-gitconfigparser-autodoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/80fd2c16211738156e65258381a17cdc429ddd08\"\u003e\u003ccode\u003e80fd2c1\u003c/code\u003e\u003c/a\u003e Don't treat sphinx warnings as errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/a4aadb0c04bd13af824c14dcc39f88345aa5c440\"\u003e\u003ccode\u003ea4aadb0\u003c/code\u003e\u003c/a\u003e Fix name collision\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4c7778a93134364cfff7b1597f9eda00a88323af\"\u003e\u003ccode\u003e4c7778a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2057\"\u003e#2057\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/5033c3ffd8917d835658c22e84bd86103a2ae52d\"\u003e\u003ccode\u003e5033c3f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2056\"\u003e#2056\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/496392b9bf781904421cbd171c0c5395a6fe330c\"\u003e\u003ccode\u003e496392b\u003c/code\u003e\u003c/a\u003e Bump cygwin/cygwin-install-action from 5 to 6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gitpython-developers/GitPython/compare/3.1.44...3.1.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `griffe` from 1.7.3 to 1.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/releases\"\u003egriffe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.14.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.14.0\"\u003e1.14.0\u003c/a\u003e - 2025-09-05\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.13.0...1.14.0\"\u003eCompare with 1.13.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eDeprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eon_alias\u003c/code\u003e event's signature changed from \u003ccode\u003eon_alias(self, *, node: AST | ObjectNode, alias: Alias, agent: Visitor | Inspector, **kwargs)\u003c/code\u003e (an [analysis event][analysis-events]) to \u003ccode\u003eon_alias(self, *, alias: Alias, loader: GriffeLoader, **kwargs)\u003c/code\u003e ([a load event][load-events]). Use the new signature, or rename your method to \u003ccode\u003eon_alias_instance\u003c/code\u003e to keep the old signature (\u003ccode\u003eon_alias_instance\u003c/code\u003e is a new analysis event that replaces the old \u003ccode\u003eon_alias\u003c/code\u003e one). Backward compatibility is maintained until next major version.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eon_wildcard_expansion\u003c/code\u003e event is deprecated. Instead, use the \u003ccode\u003eon_alias\u003c/code\u003e event, and check the [\u003ccode\u003ewildcard_imported\u003c/code\u003e][griffe.Alias.wildcard_imported] boolean attribute of aliases.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eon_package_loaded\u003c/code\u003e event is renamed to \u003ccode\u003eon_package\u003c/code\u003e. Backward compatibility is maintained until next major version.\u003c/li\u003e\n\u003cli\u003eThe use of previously exposed Git-related utilities (\u003ccode\u003eassert_git_repo\u003c/code\u003e, \u003ccode\u003eget_repo_root\u003c/code\u003e, \u003ccode\u003eget_latest_tag\u003c/code\u003e and \u003ccode\u003etmp_worktree\u003c/code\u003e) is deprecated, as they are not a core part of the library's functionality. These utilities are now part of our internal API.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eanalysis\u003c/code\u003e attribute on objects and aliases, telling whether they were loaded through static or dynamic analysis, or created manually (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/d792a56fcecdf2003791356b857262cba8235f04\"\u003ed792a56\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eExpose Git info in objects, allowing to compute a new \u003ccode\u003esource_link\u003c/code\u003e property (see [Source information][source-information] in our docs) (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/2a8d824840b277d9941981583372abf36d3b17fe\"\u003e2a8d824\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/361\"\u003eIssue-361\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/python/issues/253\"\u003eIssue-mkdocstrings-python-253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ewildcard_imported\u003c/code\u003e boolean attribute to aliases, deprecate \u003ccode\u003eon_wildcard_expansion\u003c/code\u003e event (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/821300db5d43af0ad7a4d82ff2df15a7fa5f63d6\"\u003e821300d\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAdd load events that run once a tree is fully constructed, matching analysis events but safer to hook onto (see [Load events][load-events] in our docs) (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/77f928aeab857cb45564462a4f849c2df2cca99a\"\u003e77f928a\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/346\"\u003eIssue-346\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProvide typed dicts for docstring options (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/945880a04dcbe6eae31afa5021766533c73edc91\"\u003e945880a\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/370\"\u003eIssue-370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow parenthesized type to be glued (no space) to parameter name in Google-style docstrings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/4b6f939e12540ce4fb6941f0c95253e3111e7f6f\"\u003e4b6f939\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/375\"\u003eIssue-375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove deprecation warnings for \u003ccode\u003eon_alias\u003c/code\u003e and \u003ccode\u003eon_package_loaded\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/d3e50db055715d1a2b794d7e1cf47e6fdc1c305b\"\u003ed3e50db\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.13.0\"\u003e1.13.0\u003c/a\u003e - 2025-08-26\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.1...1.13.0\"\u003eCompare with 1.12.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eis_init_method\u003c/code\u003e property (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5417b7040f8061696c380d9cd4ed2852bf96adf3\"\u003e5417b70\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease maximum recursion limit when calling as a CLI (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5f0d9e61fbac89247bcae06a7010e28e381a5656\"\u003e5f0d9e6\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/402\"\u003eIssue-402\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.12.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.1\"\u003e1.12.1\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.0...1.12.1\"\u003eCompare with 1.12.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce size of JSON dumps by removing keys with null values (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/58227eb377fee66ef66237d7cbed35156ff1fed1\"\u003e58227eb\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/403\"\u003eIssue-403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fields to aliases when serializing (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5c9fee2b0c6e4f4e63c7648fa41b2e540f2ecc7f\"\u003e5c9fee2\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAlso add the option to ignore missing type to the Sphinx parser (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8c9f803e748a659905b06445a349a6cfea948c1c\"\u003e8c9f803\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.12.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/blob/main/CHANGELOG.md\"\u003egriffe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.14.0\"\u003e1.14.0\u003c/a\u003e - 2025-09-05\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.13.0...1.14.0\"\u003eCompare with 1.13.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eDeprecations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eon_alias\u003c/code\u003e event's signature changed from \u003ccode\u003eon_alias(self, *, node: AST | ObjectNode, alias: Alias, agent: Visitor | Inspector, **kwargs)\u003c/code\u003e (an [analysis event][analysis-events]) to \u003ccode\u003eon_alias(self, *, alias: Alias, loader: GriffeLoader, **kwargs)\u003c/code\u003e ([a load event][load-events]). Use the new signature, or rename your method to \u003ccode\u003eon_alias_instance\u003c/code\u003e to keep the old signature (\u003ccode\u003eon_alias_instance\u003c/code\u003e is a new analysis event that replaces the old \u003ccode\u003eon_alias\u003c/code\u003e one). Backward compatibility is maintained until next major version.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eon_wildcard_expansion\u003c/code\u003e event is deprecated. Instead, use the \u003ccode\u003eon_alias\u003c/code\u003e event, and check the [\u003ccode\u003ewildcard_imported\u003c/code\u003e][griffe.Alias.wildcard_imported] boolean attribute of aliases.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eon_package_loaded\u003c/code\u003e event is renamed to \u003ccode\u003eon_package\u003c/code\u003e. Backward compatibility is maintained until next major version.\u003c/li\u003e\n\u003cli\u003eThe use of previously exposed Git-related utilities (\u003ccode\u003eassert_git_repo\u003c/code\u003e, \u003ccode\u003eget_repo_root\u003c/code\u003e, \u003ccode\u003eget_latest_tag\u003c/code\u003e and \u003ccode\u003etmp_worktree\u003c/code\u003e) is deprecated, as they are not a core part of the library's functionality. These utilities are now part of our internal API.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eanalysis\u003c/code\u003e attribute on objects and aliases, telling whether they were loaded through static or dynamic analysis, or created manually (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/d792a56fcecdf2003791356b857262cba8235f04\"\u003ed792a56\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eExpose Git info in objects, allowing to compute a new \u003ccode\u003esource_link\u003c/code\u003e property (see [Source information][source-information] in our docs) (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/2a8d824840b277d9941981583372abf36d3b17fe\"\u003e2a8d824\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/361\"\u003eIssue-361\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/python/issues/253\"\u003eIssue-mkdocstrings-python-253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ewildcard_imported\u003c/code\u003e boolean attribute to aliases, deprecate \u003ccode\u003eon_wildcard_expansion\u003c/code\u003e event (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/821300db5d43af0ad7a4d82ff2df15a7fa5f63d6\"\u003e821300d\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAdd load events that run once a tree is fully constructed, matching analysis events but safer to hook onto (see [Load events][load-events] in our docs) (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/77f928aeab857cb45564462a4f849c2df2cca99a\"\u003e77f928a\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/346\"\u003eIssue-346\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProvide typed dicts for docstring options (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/945880a04dcbe6eae31afa5021766533c73edc91\"\u003e945880a\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/370\"\u003eIssue-370\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow parenthesized type to be glued (no space) to parameter name in Google-style docstrings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/4b6f939e12540ce4fb6941f0c95253e3111e7f6f\"\u003e4b6f939\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/375\"\u003eIssue-375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove deprecation warnings for \u003ccode\u003eon_alias\u003c/code\u003e and \u003ccode\u003eon_package_loaded\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/d3e50db055715d1a2b794d7e1cf47e6fdc1c305b\"\u003ed3e50db\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.13.0\"\u003e1.13.0\u003c/a\u003e - 2025-08-26\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.1...1.13.0\"\u003eCompare with 1.12.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eis_init_method\u003c/code\u003e property (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5417b7040f8061696c380d9cd4ed2852bf96adf3\"\u003e5417b70\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eB...\n\n_Description has been truncated_","html_url":"https://github.com/pycontribs/subprocess-tee/pull/191","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycontribs%2Fsubprocess-tee/issues/191","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/191/packages"}},{"old_version":"2.4.0","new_version":"2.5.0","update_type":"minor","path":null,"pr_created_at":"2025-08-31T22:12:44.000Z","version_change":"2.4.0 → 2.5.0","issue":{"uuid":"2788096128","node_id":"PR_kwDOEkpJIs6mLviA","number":189,"state":"open","title":"Bump the dependencies group across 1 directory with 34 updates","user":"dependabot[bot]","labels":["skip-changelog","dependabot-deps-updates"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-08-31T22:12:44.000Z","updated_at":"2025-08-31T22:12:45.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":34,"packages":[{"name":"mkdocstrings","old_version":"0.29.1","new_version":"0.30.0","repository_url":"https://github.com/mkdocstrings/mkdocstrings"},{"name":"argparse-manpage","old_version":"4.6","new_version":"4.7","repository_url":"https://github.com/praiskup/argparse-manpage"},{"name":"backrefs","old_version":"5.8","new_version":"6.0.1","repository_url":"https://github.com/facelessuser/backrefs"},{"name":"bracex","old_version":"2.5.post1","new_version":"2.6","repository_url":"https://github.com/facelessuser/bracex"},{"name":"cachetools","old_version":"6.0.0","new_version":"6.2.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"coverage","old_version":"7.9.1","new_version":"7.10.6","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"cryptography","old_version":"45.0.4","new_version":"45.0.6","repository_url":"https://github.com/pyca/cryptography"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"filelock","old_version":"3.18.0","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"gitpython","old_version":"3.1.44","new_version":"3.1.45","repository_url":"https://github.com/gitpython-developers/GitPython"},{"name":"griffe","old_version":"1.7.3","new_version":"1.13.0","repository_url":"https://github.com/mkdocstrings/griffe"},{"name":"importlib-resources","old_version":"5.0.7","new_version":"6.5.2","repository_url":"https://github.com/python/importlib_resources"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.1","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"markdown","old_version":"3.8","new_version":"3.8.2","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"mkdocs-autorefs","old_version":"1.4.2","new_version":"1.4.3","repository_url":"https://github.com/mkdocstrings/autorefs"},{"name":"mkdocs-material","old_version":"9.6.14","new_version":"9.6.18","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"mkdocstrings-python","old_version":"1.16.12","new_version":"1.18.2","repository_url":"https://github.com/mkdocstrings/python"},{"name":"parso","old_version":"0.8.4","new_version":"0.8.5","repository_url":"https://github.com/davidhalter/parso"},{"name":"pbr","old_version":"6.1.1","new_version":"7.0.1"},{"name":"pillow","old_version":"11.2.1","new_version":"11.3.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.3.8","new_version":"4.4.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"prompt-toolkit","old_version":"3.0.51","new_version":"3.0.52","repository_url":"https://github.com/prompt-toolkit/python-prompt-toolkit"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pymdown-extensions","old_version":"10.15","new_version":"10.16.1","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"pytest","old_version":"8.4.0","new_version":"8.4.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-sugar","old_version":"1.0.0","new_version":"1.1.1","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-xdist","old_version":"3.7.0","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"requests","old_version":"2.32.4","new_version":"2.32.5","repository_url":"https://github.com/psf/requests"},{"name":"rich","old_version":"14.0.0","new_version":"14.1.0","repository_url":"https://github.com/Textualize/rich"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.27.1","repository_url":"https://github.com/crate-py/rpds"},{"name":"urllib3","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"wcmatch","old_version":"10.0","new_version":"10.1","repository_url":"https://github.com/facelessuser/wcmatch"}],"path":null,"ecosystem":"conda"},"body":"Bumps the dependencies group with 34 updates in the /.config directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings) | `0.29.1` | `0.30.0` |\n| [argparse-manpage](https://github.com/praiskup/argparse-manpage) | `4.6` | `4.7` |\n| [backrefs](https://github.com/facelessuser/backrefs) | `5.8` | `6.0.1` |\n| [bracex](https://github.com/facelessuser/bracex) | `2.5.post1` | `2.6` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.0.0` | `6.2.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.8.3` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.3` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.9.1` | `7.10.6` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.4` | `45.0.6` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.19.1` |\n| [gitpython](https://github.com/gitpython-developers/GitPython) | `3.1.44` | `3.1.45` |\n| [griffe](https://github.com/mkdocstrings/griffe) | `1.7.3` | `1.13.0` |\n| [importlib-resources](https://github.com/python/importlib_resources) | `5.0.7` | `6.5.2` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.1` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.8` | `3.8.2` |\n| [mkdocs-autorefs](https://github.com/mkdocstrings/autorefs) | `1.4.2` | `1.4.3` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.6.14` | `9.6.18` |\n| [mkdocstrings-python](https://github.com/mkdocstrings/python) | `1.16.12` | `1.18.2` |\n| [parso](https://github.com/davidhalter/parso) | `0.8.4` | `0.8.5` |\n| [pbr](https://docs.openstack.org/pbr/latest/) | `6.1.1` | `7.0.1` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `11.3.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.8` | `4.4.0` |\n| [prompt-toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) | `3.0.51` | `3.0.52` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.15` | `10.16.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.0` | `8.4.1` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `1.0.0` | `1.1.1` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.7.0` | `3.8.0` |\n| [requests](https://github.com/psf/requests) | `2.32.4` | `2.32.5` |\n| [rich](https://github.com/Textualize/rich) | `14.0.0` | `14.1.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.27.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.4.0` | `2.5.0` |\n| [wcmatch](https://github.com/facelessuser/wcmatch) | `10.0` | `10.1` |\n\n\nUpdates `mkdocstrings` from 0.29.1 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases\"\u003emkdocstrings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.30.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\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/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md\"\u003emkdocstrings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\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/mkdocstrings/mkdocstrings/commit/2be445f054c1191d308af7ee0cc881e359f5a4c7\"\u003e\u003ccode\u003e2be445f\u003c/code\u003e\u003c/a\u003e chore: Prepare release 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003e\u003ccode\u003ef856160\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip regist...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e\u003ccode\u003e2b4ed54\u003c/code\u003e\u003c/a\u003e feat: Add I18N support (translations)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/51f217f38af9475415f758866697158d9010967d\"\u003e\u003ccode\u003e51f217f\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/b1da3d02c4f432f603cbb0004bb35099327706db\"\u003e\u003ccode\u003eb1da3d0\u003c/code\u003e\u003c/a\u003e ci: Ignore Ruff warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d5bf4e1ed0370853f968b210ad77913faf106eed\"\u003e\u003ccode\u003ed5bf4e1\u003c/code\u003e\u003c/a\u003e docs: Update link to YAML idiosyncrasies\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argparse-manpage` from 4.6 to 4.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/praiskup/argparse-manpage/releases\"\u003eargparse-manpage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eargparse-manpage v4.7\u003c/h2\u003e\n\u003cp\u003eNews in v4.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esys.stdout used instead of /dev/stdout\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed build compatibility with newer setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed deprecation warnings for datetime and setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003enew compat method for handling SOURCE_DATE_EPOCH\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/praiskup/argparse-manpage/blob/main/NEWS\"\u003eargparse-manpage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cpre\u003e\u003ccode\u003e\nWARNING: The 'build_manpage' setup.py command will be removed v5\nWARNING: We'll drop the Python 2.7 support in v5\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esys.stdout used instead of /dev/stdout\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed build compatibility with newer setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed deprecation warnings for datetime and setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003enew compat method for handling SOURCE_DATE_EPOCH\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre\u003e\u003ccode\u003e\nNews in v4.6\n\u003cul\u003e\n\u003cli\u003eFix the build against Python 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.5\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWe newly provide \u003ccode\u003ebuild_manpages.build_py\u003c/code\u003e and \u003ccode\u003ebuild_manpages.install\u003c/code\u003e\ncommand classes that are re-usable from \u003ccode\u003epyproject.toml\u003c/code\u003e.  No need to\nprovide \u003ccode\u003esetup.py\u003c/code\u003e because of \u003ccode\u003eargparse-manpage\u003c/code\u003e.  Solved issue#85.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre\u003e\u003ccode\u003e\nNews in v4.4\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eprog=\u003c/code\u003e specifier (in setup.py/setup.cfg/pyproject.toml) is now\u003cbr /\u003e\nbetter handled so it doesn't conflict with ArgumentParser(prog=..).\u003cbr /\u003e\nFixes \u003ca href=\"https://redirect.github.com/praiskup/argparse-manpage/issues/79\"\u003epraiskup/argparse-manpage#79\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNews in v4.3\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe pyproject.toml parsing feature now depends on the python3-tomli library\u003cbr /\u003e\ninstead of python-toml for \u0026quot;python_environment \u0026gt;3, \u0026lt;=3.10\u0026quot;.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.2\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for pyproject.toml specification of manpages added.\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/praiskup/argparse-manpage/commit/7883becca340aa3ea124143e032848a7b2bdf84b\"\u003e\u003ccode\u003e7883bec\u003c/code\u003e\u003c/a\u003e Release v4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/765389ed4ee835c09451823d7fbfe22b0dc1674a\"\u003e\u003ccode\u003e765389e\u003c/code\u003e\u003c/a\u003e Move the SOURCE_DATE_EPOCH hack on one place\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/a06ed9c1f03360f8089819c8e845cd670687eb64\"\u003e\u003ccode\u003ea06ed9c\u003c/code\u003e\u003c/a\u003e ci: fix RPM build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/c985432ee15824c43c75548c7ec1bd6f105a7f22\"\u003e\u003ccode\u003ec985432\u003c/code\u003e\u003c/a\u003e Fix deprecation warnings for datetime and setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/306658941368ff0c2dfe2e4fa29b889fb5bbeb2b\"\u003e\u003ccode\u003e3066589\u003c/code\u003e\u003c/a\u003e ci: fedora-tox update list of environments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/b3a2c50e2abc47bd822d848864a80e35251a3147\"\u003e\u003ccode\u003eb3a2c50\u003c/code\u003e\u003c/a\u003e ci: enable ruff \u0026amp; bump deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/6dc54a5272e70b081af728958fd7554a6b0372f3\"\u003e\u003ccode\u003e6dc54a5\u003c/code\u003e\u003c/a\u003e Fix compatibility with newer setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/29f89bba536cf28f6ed66721367ff2ee3f6209b7\"\u003e\u003ccode\u003e29f89bb\u003c/code\u003e\u003c/a\u003e Fix some comments about sys.argv alteration for usage message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/ade76cc8ef49ec804955c6b4027dbae52d482034\"\u003e\u003ccode\u003eade76cc\u003c/code\u003e\u003c/a\u003e Use sys.stdout instead of /dev/stdout\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/praiskup/argparse-manpage/compare/v4.6...v4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `backrefs` from 5.8 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/backrefs/releases\"\u003ebackrefs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix a regression that created an ASCII binary property that would override the ASCII block property.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: POSIX character classes will now always use POSIX compatibility rules instead of Unicode standard rules,\nif any are specified in the Unicode specification. The affected character classes are: \u003ccode\u003e[[:alnum:]]\u003c/code\u003e, \u003ccode\u003e[[:digit:]]\u003c/code\u003e,\n\u003ccode\u003e[[:xdigit:]]\u003c/code\u003e, and  \u003ccode\u003e[[:punct:]]\u003c/code\u003e. To explicitly use standard Unicode rules for these compatibility properties, use\nthe Unicode property form instead: \u003ccode\u003e[\\p{Alnum}]\u003c/code\u003e, \u003ccode\u003e[\\p{Digit}]\u003c/code\u003e, \u003ccode\u003e[\\p{Punct}]\u003c/code\u003e, or \u003ccode\u003e[\\p{XDigit}]\u003c/code\u003e. This has changed\nto ensure no confusion for users expecting compatible POSIX style character class properties.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Scoped ASCII/Unicode flags (\u003ccode\u003e(?a:pattern)\u003c/code\u003e/\u003ccode\u003e(?u:pattern)\u003c/code\u003e) should be respected for Unicode properties in\n\u003ccode\u003ebre\u003c/code\u003e and will ensure ASCII or Unicode range if used.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix issues related to detecting disabled scoped flags.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eENHANCE\u003c/strong\u003e: Switch to deploying with PyPI's \u0026quot;Trusted Publisher\u0026quot;.\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/facelessuser/backrefs/commit/63f8a4b14750828b7c1e385844fd36f6f89859e4\"\u003e\u003ccode\u003e63f8a4b\u003c/code\u003e\u003c/a\u003e Fix grammar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7f4bf611e6e7fcc2aa4e0eba2872b5f51b7fc908\"\u003e\u003ccode\u003e7f4bf61\u003c/code\u003e\u003c/a\u003e Rework POSIX alias\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/956df5f387f1958110e5a7cf2a98d42a8309d9b6\"\u003e\u003ccode\u003e956df5f\u003c/code\u003e\u003c/a\u003e Fix ASCII block regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7a948f083c3c87114a8dd87c95dff1893f3af82a\"\u003e\u003ccode\u003e7a948f0\u003c/code\u003e\u003c/a\u003e Clean up code and add more comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/9b2e406be36c1e0fc72651adbc7d2d63c4151483\"\u003e\u003ccode\u003e9b2e406\u003c/code\u003e\u003c/a\u003e Add more flag tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/47d62b1270ca7f1717e7acdb56e8e6ed3e9e8f10\"\u003e\u003ccode\u003e47d62b1\u003c/code\u003e\u003c/a\u003e Handle enable/disable properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/8e7596700b913e13f478da57e0ba0965f2d9ed3b\"\u003e\u003ccode\u003e8e75967\u003c/code\u003e\u003c/a\u003e Fix issues with scoped flags (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/0df8e7746d3ea31824af97ea4ed713a3facded5b\"\u003e\u003ccode\u003e0df8e77\u003c/code\u003e\u003c/a\u003e POSIX character classes should use POSIX compatibility rules by default (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/191\"\u003e#191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/31fd8c5c0338eefe41452d52f99012c0fecfdd82\"\u003e\u003ccode\u003e31fd8c5\u003c/code\u003e\u003c/a\u003e Call mkdocs directly on deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/8b3a24bfc1cacde6fc9ab4edfaed0f5a9206c554\"\u003e\u003ccode\u003e8b3a24b\u003c/code\u003e\u003c/a\u003e Fix deploy logic\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facelessuser/backrefs/compare/5.8...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bracex` from 2.5.post1 to 2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/bracex/releases\"\u003ebracex's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/6d109c55372f0d5086adb7cf84a951cc06391a69\"\u003e\u003ccode\u003e6d109c5\u003c/code\u003e\u003c/a\u003e Add trusted publishing and support for Python 3.14 (\u003ca href=\"https://redirect.github.com/facelessuser/bracex/issues/44\"\u003e#44\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/c14d46fb495a8fdcd0ec51d4dd42aa587807407d\"\u003e\u003ccode\u003ec14d46f\u003c/code\u003e\u003c/a\u003e Add security policy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/14645af4bf4de0e1abe4fd6c29bf98871f549273\"\u003e\u003ccode\u003e14645af\u003c/code\u003e\u003c/a\u003e Typos: remove duplicate words\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/bracex/compare/2.5.post1...2.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 6.0.0 to 6.2.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.2.0 (2025-08-25)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove general \u003ccode\u003eRRCache\u003c/code\u003e performance by storing cache keys in an\nadditional sequence container.  Note that this will increase memory\nconsumption.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more unit tests.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\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/tkem/cachetools/commit/4a238adc490e81db58d843b011afdbe3dd9097a5\"\u003e\u003ccode\u003e4a238ad\u003c/code\u003e\u003c/a\u003e Release v6.2.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/9d511b769f8fb58981fb77fece846984aaaf49e6\"\u003e\u003ccode\u003e9d511b7\u003c/code\u003e\u003c/a\u003e Improve unit tests.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/79aa8c7c0eacd5d75e154bc23687ecdaf9ad1d75\"\u003e\u003ccode\u003e79aa8c7\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/356\"\u003e#356\u003c/a\u003e: Improve RRCache performance.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/bb6d71a745785429b14aae30b7752f4765dc35c3\"\u003e\u003ccode\u003ebb6d71a\u003c/code\u003e\u003c/a\u003e Release v6.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/77a9c59e3324496a79e6c4d5a7b5bfdb9a7f7f42\"\u003e\u003ccode\u003e77a9c59\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/260\"\u003e#260\u003c/a\u003e: Use LFUCache implementation based on Blake Reid's \u0026quot;cacheing\u0026quot; library.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b1d4eb2972ca8f0ab49e22eae3bb47c1eb8b552c\"\u003e\u003ccode\u003eb1d4eb2\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.4.2 to 5.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/820b154494e91aa5bfe63a3fa2033c63a9c84603\"\u003e\u003ccode\u003e820b154\u003c/code\u003e\u003c/a\u003e Refactor \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e unit tests.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v6.0.0...v6.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.6.15 to 2025.8.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1\"\u003e\u003ccode\u003eddd90c6\u003c/code\u003e\u003c/a\u003e 2025.07.14 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d905221c916d51077f5c8071a0f7aa2df2a37c52\"\u003e\u003ccode\u003ed905221\u003c/code\u003e\u003c/a\u003e 2025.07.09 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.06.15...2025.08.03\"\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.2 to 3.4.3\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.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\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.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\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/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.9.1 to 7.10.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.6 — 2025-08-29\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003esource\u003c/code\u003e directories were not properly communicated to subprocesses\nthat ran in different directories, as reported in \u003ccode\u003eissue 1499\u003c/code\u003e_.  This is now\nfixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ePerformance: \u003ccode\u003eAlex Gaynor continues fine-tuning \u0026lt;pull 2038_\u0026gt;\u003c/code\u003e_ the speed of\ncombination, especially with many contexts.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1499: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003enedbat/coveragepy#1499\u003c/a\u003e\n.. _pull 2038: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2038\"\u003enedbat/coveragepy#2038\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-5:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.5 — 2025-08-23\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBig speed improvements for \u003ccode\u003ecoverage combine\u003c/code\u003e: it's now about twice as\nfast! Huge thanks to Alex Gaynor for pull requests \u003ccode\u003e2032 \u0026lt;pull 2032_\u0026gt;\u003c/code\u003e\u003cem\u003e,\n\u003ccode\u003e2033 \u0026lt;pull 2033_\u0026gt;\u003c/code\u003e\u003c/em\u003e, and \u003ccode\u003e2034 \u0026lt;pull 2034_\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _pull 2032: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2032\"\u003enedbat/coveragepy#2032\u003c/a\u003e\n.. _pull 2033: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2033\"\u003enedbat/coveragepy#2033\u003c/a\u003e\n.. _pull 2034: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/pull/2034\"\u003enedbat/coveragepy#2034\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-4:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.4 — 2025-08-16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003epatch = fork\u003c/code\u003e for times when the built-in forking support is\ninsufficient.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003epatch = execv\u003c/code\u003e also inherits the entire coverage configuration now.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _changes_7-10-3:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.3 — 2025-08-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixes for \u003ccode\u003epatch = subprocess\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses spawned yet more subprocesses simultaneously, some coverage\ncould be missed.  This is now fixed, closing \u003ccode\u003eissue 2024\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses were created in other directories, their data files were\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/nedbat/coveragepy/commit/88c55ff87437f7e59b42d131d0e2b6ce413546bf\"\u003e\u003ccode\u003e88c55ff\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/01d89959bfa825f661121e0f8d173f3ae1ecedac\"\u003e\u003ccode\u003e01d8995\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9b0c24ffc17840464c2343b702a6ee44e10fcadf\"\u003e\u003ccode\u003e9b0c24f\u003c/code\u003e\u003c/a\u003e docs: thanks Alex \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2038\"\u003e#2038\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/66d69108654f6fc1de916a37fc06ac898091aa2d\"\u003e\u003ccode\u003e66d6910\u003c/code\u003e\u003c/a\u003e fix: make \u003ccode\u003esource\u003c/code\u003e paths absolute where they exist. \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1499\"\u003e#1499\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/bb3382f50f2b91aebb046d665334a5d361e5ddc5\"\u003e\u003ccode\u003ebb3382f\u003c/code\u003e\u003c/a\u003e build: no need for the combine/html times now\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9ea349a164527832a49faa3eeec628d59ef75c7c\"\u003e\u003ccode\u003e9ea349a\u003c/code\u003e\u003c/a\u003e lab: warn_executed.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/808c9b48af3ad7b567182d383eb31451615664e0\"\u003e\u003ccode\u003e808c9b4\u003c/code\u003e\u003c/a\u003e build: changing metacov.ini should trigger metacov\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/384f5f22bd1ef52000d80922de03922a58ff936c\"\u003e\u003ccode\u003e384f5f2\u003c/code\u003e\u003c/a\u003e build: oops, some 'if's are really line pragmas\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a7224af73365ba2d217f0e0966c7873c5bac3a67\"\u003e\u003ccode\u003ea7224af\u003c/code\u003e\u003c/a\u003e perf: pre-compute the mapping between other_db.context and main.context (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2038\"\u003e#2038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/5c00c5ba4bcd4f7da6a9f0ccd0797e0944415e8a\"\u003e\u003ccode\u003e5c00c5b\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 3 updates (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2039\"\u003e#2039\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.9.1...7.10.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 45.0.4 to 45.0.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e45.0.6 - 2025-08-05\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.2.\n\u003cp\u003e.. _v45-0-5:\u003c/p\u003e\n\u003cp\u003e45.0.5 - 2025-07-02\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.1.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-4:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/66198c23c97c9594d64540e5a866e4b4121aec2d\"\u003e\u003ccode\u003e66198c2\u003c/code\u003e\u003c/a\u003e Bump for release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13249\"\u003e#13249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3e53a233b65123d2a836b58ccdc427ed5207f92b\"\u003e\u003ccode\u003e3e53a23\u003c/code\u003e\u003c/a\u003e Bump for 45.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13135\"\u003e#13135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/45.0.4...45.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `distlib` from 0.3.9 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/distlib/blob/master/CHANGES.rst\"\u003edistlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.4.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nReleased: 2025-07-17\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003emarkers\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003einterpret_parsed\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ewheel\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/238\"\u003e#238\u003c/a\u003e: Add build tag to wheel metadata if specified.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/243\"\u003e#243\u003c/a\u003e: Update to support free-threading version of Python (3.13t).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e: Support subdirectories in the dist-info directory. Thanks to Pieter P for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e: Fix path normalisation issue caused by the fix for \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMove import in script wrapper to \u0026quot;if \u003cstrong\u003ename\u003c/strong\u003e == 'main'\u0026quot; clause.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003etests\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/245\"\u003e#245\u003c/a\u003e: Skip test_package_data if a SKIP_EXT_PACKAGE_DATA environment variable is present.\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/aff2cbbc4e8a87b9440cb93472789a213813dbd6\"\u003e\u003ccode\u003eaff2cbb\u003c/code\u003e\u003c/a\u003e Finalise version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/3716c4bcccac19d0c0f2ce0d1272dd33996381b5\"\u003e\u003ccode\u003e3716c4b\u003c/code\u003e\u003c/a\u003e Update change log, widen exception catching in test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/660bd337bf3217a7bd907c2ba8a2f8dd291ac793\"\u003e\u003ccode\u003e660bd33\u003c/code\u003e\u003c/a\u003e Changes for 0.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/56b4ad938455048fc79e599d369e02a1414e9946\"\u003e\u003ccode\u003e56b4ad9\u003c/code\u003e\u003c/a\u003e Guard script wrapper entrypoint import with if \u003cstrong\u003emain\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/242\"\u003e#242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/fe573669087cb1109fb0cc249bf0e06a5461324c\"\u003e\u003ccode\u003efe57366\u003c/code\u003e\u003c/a\u003e docs: update coverage results link (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/250\"\u003e#250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/c3286e508bb60cd2337408d88eb614a93b612d8c\"\u003e\u003ccode\u003ec3286e5\u003c/code\u003e\u003c/a\u003e Temporarily exclude 3.13t on windows-latest.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/e6b83d3b0eeb11d8e7b053f11139d15aab89d196\"\u003e\u003ccode\u003ee6b83d3\u003c/code\u003e\u003c/a\u003e Normalize archive paths in dist-info (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/93baffeaa1773796d802bb761607a6466790dcba\"\u003e\u003ccode\u003e93baffe\u003c/code\u003e\u003c/a\u003e Skip no-longer-relevant test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/83f656836f4b6d8175172fcb8370fbee691f2bec\"\u003e\u003ccode\u003e83f6568\u003c/code\u003e\u003c/a\u003e Support subdirectories in .dist-info (fixes \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/247\"\u003e#247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/f918abd5d20879041704f9d719533b213a55ad48\"\u003e\u003ccode\u003ef918abd\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003etest_wheel.WheelTestCase.test_abi\u003c/code\u003e for freethreading (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/distlib/compare/0.3.9...0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.18.0 to 3.19.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/py-filelock/releases\"\u003efilelock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.19.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd 3.14t (free threading) to matrix by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncrease test coverage by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/434\"\u003etox-dev/filelock#434\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/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.19.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for 3.14 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/432\"\u003etox-dev/filelock#432\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/8d1009f08a6a64624fad91d1079062ef31b8c2b4\"\u003e\u003ccode\u003e8d1009f\u003c/code\u003e\u003c/a\u003e Update release.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/66a428e97a874b44b0310072f6c974226f55a472\"\u003e\u003ccode\u003e66a428e\u003c/code\u003e\u003c/a\u003e Increase test coverage (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0dfc86eebd2c76ae959a409bcbc3112cc1ec5890\"\u003e\u003ccode\u003e0dfc86e\u003c/code\u003e\u003c/a\u003e add 3.14 to matrix (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0c54837e318ebe8a692b529722430cb38134bf7c\"\u003e\u003ccode\u003e0c54837\u003c/code\u003e\u003c/a\u003e Add support for 3.14 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/432\"\u003e#432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/77d02f5ada3a1a92167b1beee35a7815cbde0fcf\"\u003e\u003ccode\u003e77d02f5\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/bc972b33bf253bb9f08db32b19ffd4119a74706e\"\u003e\u003ccode\u003ebc972b3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/429\"\u003e#429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/78d02cb5ff42b22a56ad1a36755361a6b4601765\"\u003e\u003ccode\u003e78d02cb\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/428\"\u003e#428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/18cdb5d1c78a7a459463480303e9820f33cdf041\"\u003e\u003ccode\u003e18cdb5d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/b198a096d2bae58596479497d18a82bbeec515c8\"\u003e\u003ccode\u003eb198a09\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/426\"\u003e#426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/6b097e76de603d9be6a24c5058b6fe53ef003afd\"\u003e\u003ccode\u003e6b097e7\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.18.0...3.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gitpython` from 3.1.44 to 3.1.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gitpython-developers/GitPython/releases\"\u003egitpython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.45\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix various version-related CI breakages by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1987\"\u003egitpython-developers/GitPython#1987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo some CI cleanup to make reports clearer and future changes easier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1989\"\u003egitpython-developers/GitPython#1989\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAffirm that gitdb and smmap advisories can also be created by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1991\"\u003egitpython-developers/GitPython#1991\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix links to gitdb and smmap \u003ccode\u003eSECURITY.md\u003c/code\u003e files by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1992\"\u003egitpython-developers/GitPython#1992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest Python 3.13 regularly on Ubuntu and macOS on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1990\"\u003egitpython-developers/GitPython#1990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRepo.rev_parse: Handle \u003c!-- raw HTML omitted --\u003e^{commit} correctly by \u003ca href=\"https://github.com/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFuzzing: Fix Broken Fuzz Test for Git Submodule Handling by \u003ca href=\"https://github.com/DaveLak\"\u003e\u003ccode\u003e@​DaveLak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1997\"\u003egitpython-developers/GitPython#1997\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWork around Cygwin CI failure \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2004\"\u003e#2004\u003c/a\u003e, except for \u003ccode\u003etest_installation\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2007\"\u003egitpython-developers/GitPython#2007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark \u003ccode\u003etest_installation\u003c/code\u003e xfail on Cygwin CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2009\"\u003egitpython-developers/GitPython#2009\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eIndexFile._to_relative_path\u003c/code\u003e - fix case where absolute path gets stripped of trailing slash by \u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse WSL1 on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2010\"\u003egitpython-developers/GitPython#2010\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest free-threaded Python (but only on Linux) by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2011\"\u003egitpython-developers/GitPython#2011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse property decorator to support typing by \u003ca href=\"https://github.com/Andrej730\"\u003e\u003ccode\u003e@​Andrej730\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2015\"\u003egitpython-developers/GitPython#2015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some incorrect sphinx markups in the docstrings by \u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereplace quansight-labs/setup-python with actions/setup-python by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove type assertions from util.py by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecorrectly handle \u003ccode\u003euname-cmd\u003c/code\u003e that doesn't point to an executable file by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2026\"\u003egitpython-developers/GitPython#2026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse newer ruff style by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2031\"\u003egitpython-developers/GitPython#2031\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHave CodeQL scan GitHub Actions workflows as well as Python code by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2032\"\u003egitpython-developers/GitPython#2032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpecify explicit \u003ccode\u003econtents: read\u003c/code\u003e workflow permissions by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2033\"\u003egitpython-developers/GitPython#2033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GitConfigParser not removing quotes from values by \u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve quoted leading and trailing single-line config var whitespace by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2036\"\u003egitpython-developers/GitPython#2036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor Git.{AutoInterrupt,CatFileContentStream} nesting by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2037\"\u003egitpython-developers/GitPython#2037\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Git.{AutoInterrupt,CatFileContentStream} static typing by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2039\"\u003egitpython-developers/GitPython#2039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI \u003ccode\u003emypy\u003c/code\u003e command on free-threaded Python by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2040\"\u003egitpython-developers/GitPython#2040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit Cygwin CI into non-\u003ccode\u003eperformance\u003c/code\u003e and \u003ccode\u003eperformance\u003c/code\u003e test jobs by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2042\"\u003egitpython-developers/GitPython#2042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpress conditional \u003ccode\u003esetuptools\u003c/code\u003e requirement statically by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2043\"\u003egitpython-developers/GitPython#2043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ambiguous \u003ccode\u003e_safer_popen_windows\u003c/code\u003e comment by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2044\"\u003egitpython-developers/GitPython#2044\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eUSE_SHELL\u003c/code\u003e warning helper signature by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2045\"\u003egitpython-developers/GitPython#2045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest \u003ccode\u003eConfigParser\u003c/code\u003e with whitespace outside the value by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2046\"\u003egitpython-developers/GitPython#2046\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove explicit empty \u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e handling in ConfigParser by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2047\"\u003egitpython-developers/GitPython#2047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious style improvements by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2049\"\u003egitpython-developers/GitPython#2049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't remove quotes if \u003ccode\u003e\\\u003c/code\u003e or \u003ccode\u003e\u0026quot;\u003c/code\u003e are present inside by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2048\"\u003egitpython-developers/GitPython#2048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix updating submodules with relative urls by \u003ca href=\"https://github.com/david0\"\u003e\u003ccode\u003e@​david0\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2051\"\u003egitpython-developers/GitPython#2051\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun \u003ccode\u003ecat_file.py\u003c/code\u003e fixture without site customizations by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2052\"\u003egitpython-developers/GitPython#2052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Cygwin installation on CI for \u003ccode\u003epip\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2053\"\u003egitpython-developers/GitPython#2053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFail \u003ccode\u003etest_installation\u003c/code\u003e on warnings, and remove deprecated license classifier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2054\"\u003egitpython-developers/GitPython#2054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd clearer error version for unsupported index error by \u003ca href=\"https://github.com/tombedor\"\u003e\u003ccode\u003e@​tombedor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2055\"\u003egitpython-developers/GitPython#2055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix name collision by \u003ca href=\"https://github.com/NMertsch\"\u003e\u003ccode\u003e@​NMertsch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2060\"\u003egitpython-developers/GitPython#2060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow relative path url in submodules for submodule_update by \u003ca href=\"https://github.com/t-webber\"\u003e\u003ccode\u003e@​t-webber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2062\"\u003egitpython-developers/GitPython#2062\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/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\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/gitpython-developers/GitPython/commit/6ba2c0a2f9ee7feffd7e079621c4845820180c9a\"\u003e\u003ccode\u003e6ba2c0a\u003c/code\u003e\u003c/a\u003e Prepare a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/bbb3d00ac431dc7966f9715fb813792d234eca81\"\u003e\u003ccode\u003ebbb3d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2062\"\u003e#2062\u003c/a\u003e from t-webber/relative_path_submodules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/1ee1e781929074afd66bff1eae007bbee41d117e\"\u003e\u003ccode\u003e1ee1e78\u003c/code\u003e\u003c/a\u003e Add test case for cloning submodules with relative path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/ec2e2c8b894512e7a2364774d77cdd9db73f0566\"\u003e\u003ccode\u003eec2e2c8\u003c/code\u003e\u003c/a\u003e Allow relative path url in submodules for submodule_update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4d529b71905edae12e4699170f7d9e0a665801b5\"\u003e\u003ccode\u003e4d529b7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2060\"\u003e#2060\u003c/a\u003e from NMertsch/2023-fix-gitconfigparser-autodoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/80fd2c16211738156e65258381a17cdc429ddd08\"\u003e\u003ccode\u003e80fd2c1\u003c/code\u003e\u003c/a\u003e Don't treat sphinx warnings as errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/a4aadb0c04bd13af824c14dcc39f88345aa5c440\"\u003e\u003ccode\u003ea4aadb0\u003c/code\u003e\u003c/a\u003e Fix name collision\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4c7778a93134364cfff7b1597f9eda00a88323af\"\u003e\u003ccode\u003e4c7778a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2057\"\u003e#2057\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/5033c3ffd8917d835658c22e84bd86103a2ae52d\"\u003e\u003ccode\u003e5033c3f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2056\"\u003e#2056\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/496392b9bf781904421cbd171c0c5395a6fe330c\"\u003e\u003ccode\u003e496392b\u003c/code\u003e\u003c/a\u003e Bump cygwin/cygwin-install-action from 5 to 6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gitpython-developers/GitPython/compare/3.1.44...3.1.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `griffe` from 1.7.3 to 1.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/releases\"\u003egriffe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.13.0\"\u003e1.13.0\u003c/a\u003e - 2025-08-26\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.1...1.13.0\"\u003eCompare with 1.12.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eis_init_method\u003c/code\u003e property (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5417b7040f8061696c380d9cd4ed2852bf96adf3\"\u003e5417b70\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease maximum recursion limit when calling as a CLI (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5f0d9e61fbac89247bcae06a7010e28e381a5656\"\u003e5f0d9e6\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/402\"\u003eIssue-402\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.12.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.1\"\u003e1.12.1\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.0...1.12.1\"\u003eCompare with 1.12.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce size of JSON dumps by removing keys with null values (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/58227eb377fee66ef66237d7cbed35156ff1fed1\"\u003e58227eb\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/403\"\u003eIssue-403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fields to aliases when serializing (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5c9fee2b0c6e4f4e63c7648fa41b2e540f2ecc7f\"\u003e5c9fee2\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAlso add the option to ignore missing type to the Sphinx parser (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8c9f803e748a659905b06445a349a6cfea948c1c\"\u003e8c9f803\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.12.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.0\"\u003e1.12.0\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.1...1.12.0\"\u003eCompare with 1.11.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow disabling \u0026quot;missing type/annotation\u0026quot; warnings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/07564b43524220342c3078ece406459c08b80a86\"\u003e07564b4\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/437\"\u003eIssue-mkdocstrings-437\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.11.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.1\"\u003e1.11.1\u003c/a\u003e - 2025-08-11\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.0...1.11.1\"\u003eCompare with 1.11.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix type parameters loading (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce41279cc8b7abc45c7b94316b24e87d4a1edc40\"\u003ece41279\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove private \u003ccode\u003e_griffe\u003c/code\u003e package under \u003ccode\u003egriffe._internal\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8f37158eb5617d2cf686f9a0a044f29c638598b2\"\u003e8f37158\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.0\"\u003e1.11.0\u003c/a\u003e - 2025-08-07\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.10.0...1.11.0\"\u003eCompare with 1.10.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/blob/main/CHANGELOG.md\"\u003egriffe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.13.0\"\u003e1.13.0\u003c/a\u003e - 2025-08-26\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.1...1.13.0\"\u003eCompare with 1.12.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eis_init_method\u003c/code\u003e property (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5417b7040f8061696c380d9cd4ed2852bf96adf3\"\u003e5417b70\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease maximum recursion limit when calling as a CLI (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5f0d9e61fbac89247bcae06a7010e28e381a5656\"\u003e5f0d9e6\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/402\"\u003eIssue-402\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.1\"\u003e1.12.1\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.0...1.12.1\"\u003eCompare with 1.12.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce size of JSON dumps by removing keys with null values (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/58227eb377fee66ef66237d7cbed35156ff1fed1\"\u003e58227eb\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/403\"\u003eIssue-403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fields to aliases when serializing (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5c9fee2b0c6e4f4e63c7648fa41b2e540f2ecc7f\"\u003e5c9fee2\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAlso add the option to ignore missing type to the Sphinx parser (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8c9f803e748a659905b06445a349a6cfea948c1c\"\u003e8c9f803\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.0\"\u003e1.12.0\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.1...1.12.0\"\u003eCompare with 1.11.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow disabling \u0026quot;missing type/annotation\u0026quot; warnings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/07564b43524220342c3078ece406459c08b80a86\"\u003e07564b4\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/437\"\u003eIssue-mkdocstrings-437\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.1\"\u003e1.11.1\u003c/a\u003e - 2025-08-11\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.0...1.11.1\"\u003eCompare with 1.11.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix type parameters loading (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce41279cc8b7abc45c7b94316b24e87d4a1edc40\"\u003ece41279\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove private \u003ccode\u003e_griffe\u003c/code\u003e package under \u003ccode\u003egriffe._internal\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8f37158eb5617d2cf686f9a0a044f29c638598b2\"\u003e8f37158\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.0\"\u003e1.11.0\u003c/a\u003e - 2025-08-07\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.10.0...1.11.0\"\u003eCompare with 1.10.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd data to dict/json output (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/9731afcbeab377e7f3f69a0d18d19677e790072e\"\u003e9731afc\u003c/a\u003e by Timothée Mazzucotelli).\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/mkdocstrings/griffe/commit/e13f5edaba1ec16c2c20c2661eb81279e984dcea\"\u003e\u003ccode\u003ee13f5ed\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.13.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5417b7040f8061696c380d9cd4ed2852bf96adf3\"\u003e\u003ccode\u003e5417b70\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003eis_init_method\u003c/code\u003e property\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/fa01ac0d3c4f70030a72e2395293f856d98eb69f\"\u003e\u003ccode\u003efa01ac0\u003c/code\u003e\u003c/a\u003e ci: Fix Pylance warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5f0d9e61fbac89247bcae06a7010e28e381a5656\"\u003e\u003ccode\u003e5f0d9e6\u003c/code\u003e\u003c/a\u003e fix: Increase maximum recursion limit when calling as a CLI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/266be2dd6ecca58baa3cf62f8500db33d6a7edf0\"\u003e\u003ccode\u003e266be2d\u003c/code\u003e\u003c/a\u003e ci: Improve typing fof callables in expression-building node map\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/edf81dfe012ca2972ded1d4788823c0a49fcab25\"\u003e\u003ccode\u003eedf81df\u003c/code\u003e\u003c/a\u003e chore: Fix \u003ccode\u003emake run\u003c/code\u003e command\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/2cb37a7ac5693f00939ff229eb20e310d2eef3e8\"\u003e\u003ccode\u003e2cb37a7\u003c/code\u003e\u003c/a\u003e docs: Fix link to API tests file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/179627221e97b82b574755465bff7efdbdf390d3\"\u003e\u003ccode\u003e1796272\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5e79fbedb250520bbac3909a89f31677cd714de2\"\u003e\u003ccode\u003e5e79fbe\u003c/code\u003e\u003c/a\u003e docs: Add \u003ccode\u003erad clone\u003c/code\u003e badge in README\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/72b44666f6e307d4a3ec6818391fca6af4afc105\"\u003e\u003ccode\u003e72b4466\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.7.3...1.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-resources` from 5.0.7 to 6.5.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_resources/blob/main/NEWS.rst\"\u003eimportlib-resources's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.5.2\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced reference to typing_extensions with stdlib Literal. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/323\"\u003e#323\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.5.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated \u003ccode\u003eTraversable.read_text()\u003c/code\u003e to reflect the \u003ccode\u003eerrors\u003c/code\u003e\u003ccode\u003epython/cpython#127012\u003c/code\u003e\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/321\"\u003e#321\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.5.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd type annotations for Traversable.open. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire Python 3.9 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.4.5\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOmit sentinel values from a namespace path. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/311\"\u003e#311\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.4.4\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch1\u003ev6.4.3\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWhen inferring the caller in \u003ccode\u003efiles()\u003c/code\u003e\u003ccode\u003epython/cpython#123085\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/python/importlib_resources/commit/7d3b2bfa1d8c53ecb64246ba16d8c632f8fcb6bf\"\u003e\u003ccode\u003e7d3b2bf\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/14408098293bd6bc68eca7b5a53333729a567e57\"\u003e\u003ccode\u003e1440809\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/324\"\u003e#324\u003c/a\u003e from pstjohn/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/6569354ad2cf38b202fdeaf11b49e639b1a00fbc\"\u003e\u003ccode\u003e6569354\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/6c1bc3cdb8f8a7d29252becc201508712040facc\"\u003e\u003ccode\u003e6c1bc3c\u003c/code\u003e\u003c/a\u003e Rely on Literal from stdlib.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/883380a5fcc482b67014b90b9aa7250d868c795a\"\u003e\u003ccode\u003e883380a\u003c/code\u003e\u003c/a\u003e Update pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/a61a948b6293ed46972909652909e2540242f197\"\u003e\u003ccode\u003ea61a948\u003c/code\u003e\u003c/a\u003e Add typing-extensions as a dependency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/78c4bda73c5d671cbbcfdf1430b6f2da03aeb04f\"\u003e\u003ccode\u003e78c4bda\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/10d87bf85a404e9fb9271f8f353ad0452c0cc631\"\u003e\u003ccode\u003e10d87bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/321\"\u003e#321\u003c/a\u003e from kurtmckee/add-readtext-errors-parameter-cpython-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/9a872e5dbceff32260e8ff19d039236304ee150c\"\u003e\u003ccode\u003e9a872e5\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/cf269ce50f496671f3b7fbc5e6292946ecc70e7d\"\u003e\u003ccode\u003ecf269ce\u003c/code\u003e\u003c/a\u003e Replace unreachable block with simple assertion. Fixes diffcov failure.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_resources/compare/v5.0.7...v6.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jsonschema` from 4.24.0 to 4.25.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-jsonschema/jsonschema/releases\"\u003ejsonschema's releases\u003c/a\u003e.\u003c...\n\n_Description has been truncated_","html_url":"https://github.com/pycontribs/subprocess-tee/pull/189","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycontribs%2Fsubprocess-tee/issues/189","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/189/packages"}},{"old_version":"2.4.0","new_version":"2.5.0","update_type":"minor","path":null,"pr_created_at":"2025-08-17T22:28:13.000Z","version_change":"2.4.0 → 2.5.0","issue":{"uuid":"2751575388","node_id":"PR_kwDOEkpJIs6kAbVc","number":187,"state":"open","title":"Bump the dependencies group across 1 directory with 29 updates","user":"dependabot[bot]","labels":["skip-changelog","dependabot-deps-updates"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-08-17T22:28:13.000Z","updated_at":"2025-08-17T22:28:14.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":29,"packages":[{"name":"mkdocstrings","old_version":"0.29.1","new_version":"0.30.0","repository_url":"https://github.com/mkdocstrings/mkdocstrings"},{"name":"argparse-manpage","old_version":"4.6","new_version":"4.7","repository_url":"https://github.com/praiskup/argparse-manpage"},{"name":"backrefs","old_version":"5.8","new_version":"6.0.1","repository_url":"https://github.com/facelessuser/backrefs"},{"name":"bracex","old_version":"2.5.post1","new_version":"2.6","repository_url":"https://github.com/facelessuser/bracex"},{"name":"cachetools","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"coverage","old_version":"7.9.1","new_version":"7.10.4","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"cryptography","old_version":"45.0.4","new_version":"45.0.6","repository_url":"https://github.com/pyca/cryptography"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"filelock","old_version":"3.18.0","new_version":"3.19.1","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"gitpython","old_version":"3.1.44","new_version":"3.1.45","repository_url":"https://github.com/gitpython-developers/GitPython"},{"name":"griffe","old_version":"1.7.3","new_version":"1.12.1","repository_url":"https://github.com/mkdocstrings/griffe"},{"name":"importlib-resources","old_version":"5.0.7","new_version":"6.5.2","repository_url":"https://github.com/python/importlib_resources"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"markdown","old_version":"3.8","new_version":"3.8.2","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"mkdocs-material","old_version":"9.6.14","new_version":"9.6.17","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"mkdocstrings-python","old_version":"1.16.12","new_version":"1.17.0","repository_url":"https://github.com/mkdocstrings/python"},{"name":"pbr","old_version":"6.1.1","new_version":"7.0.0"},{"name":"pillow","old_version":"11.2.1","new_version":"11.3.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pymdown-extensions","old_version":"10.15","new_version":"10.16.1","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"pytest","old_version":"8.4.0","new_version":"8.4.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-sugar","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/Teemu/pytest-sugar"},{"name":"pytest-xdist","old_version":"3.7.0","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"rich","old_version":"14.0.0","new_version":"14.1.0","repository_url":"https://github.com/Textualize/rich"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.27.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"urllib3","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"wcmatch","old_version":"10.0","new_version":"10.1","repository_url":"https://github.com/facelessuser/wcmatch"}],"path":null,"ecosystem":"conda"},"body":"Bumps the dependencies group with 29 updates in the /.config directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings) | `0.29.1` | `0.30.0` |\n| [argparse-manpage](https://github.com/praiskup/argparse-manpage) | `4.6` | `4.7` |\n| [backrefs](https://github.com/facelessuser/backrefs) | `5.8` | `6.0.1` |\n| [bracex](https://github.com/facelessuser/bracex) | `2.5.post1` | `2.6` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.0.0` | `6.1.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.8.3` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.3` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.9.1` | `7.10.4` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.4` | `45.0.6` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.18.0` | `3.19.1` |\n| [gitpython](https://github.com/gitpython-developers/GitPython) | `3.1.44` | `3.1.45` |\n| [griffe](https://github.com/mkdocstrings/griffe) | `1.7.3` | `1.12.1` |\n| [importlib-resources](https://github.com/python/importlib_resources) | `5.0.7` | `6.5.2` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.0` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.8` | `3.8.2` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.6.14` | `9.6.17` |\n| [mkdocstrings-python](https://github.com/mkdocstrings/python) | `1.16.12` | `1.17.0` |\n| [pbr](https://docs.openstack.org/pbr/latest/) | `6.1.1` | `7.0.0` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `11.3.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.15` | `10.16.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.0` | `8.4.1` |\n| [pytest-sugar](https://github.com/Teemu/pytest-sugar) | `1.0.0` | `1.1.0` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.7.0` | `3.8.0` |\n| [rich](https://github.com/Textualize/rich) | `14.0.0` | `14.1.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.27.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.4.0` | `2.5.0` |\n| [wcmatch](https://github.com/facelessuser/wcmatch) | `10.0` | `10.1` |\n\n\nUpdates `mkdocstrings` from 0.29.1 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases\"\u003emkdocstrings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.30.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\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/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md\"\u003emkdocstrings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\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/mkdocstrings/mkdocstrings/commit/2be445f054c1191d308af7ee0cc881e359f5a4c7\"\u003e\u003ccode\u003e2be445f\u003c/code\u003e\u003c/a\u003e chore: Prepare release 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003e\u003ccode\u003ef856160\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip regist...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e\u003ccode\u003e2b4ed54\u003c/code\u003e\u003c/a\u003e feat: Add I18N support (translations)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/51f217f38af9475415f758866697158d9010967d\"\u003e\u003ccode\u003e51f217f\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/b1da3d02c4f432f603cbb0004bb35099327706db\"\u003e\u003ccode\u003eb1da3d0\u003c/code\u003e\u003c/a\u003e ci: Ignore Ruff warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d5bf4e1ed0370853f968b210ad77913faf106eed\"\u003e\u003ccode\u003ed5bf4e1\u003c/code\u003e\u003c/a\u003e docs: Update link to YAML idiosyncrasies\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `argparse-manpage` from 4.6 to 4.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/praiskup/argparse-manpage/releases\"\u003eargparse-manpage's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eargparse-manpage v4.7\u003c/h2\u003e\n\u003cp\u003eNews in v4.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esys.stdout used instead of /dev/stdout\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed build compatibility with newer setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed deprecation warnings for datetime and setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003enew compat method for handling SOURCE_DATE_EPOCH\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/praiskup/argparse-manpage/blob/main/NEWS\"\u003eargparse-manpage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cpre\u003e\u003ccode\u003e\nWARNING: The 'build_manpage' setup.py command will be removed v5\nWARNING: We'll drop the Python 2.7 support in v5\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.7\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003esys.stdout used instead of /dev/stdout\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed build compatibility with newer setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003efixed deprecation warnings for datetime and setuptools\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003enew compat method for handling SOURCE_DATE_EPOCH\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre\u003e\u003ccode\u003e\nNews in v4.6\n\u003cul\u003e\n\u003cli\u003eFix the build against Python 3.13\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.5\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWe newly provide \u003ccode\u003ebuild_manpages.build_py\u003c/code\u003e and \u003ccode\u003ebuild_manpages.install\u003c/code\u003e\ncommand classes that are re-usable from \u003ccode\u003epyproject.toml\u003c/code\u003e.  No need to\nprovide \u003ccode\u003esetup.py\u003c/code\u003e because of \u003ccode\u003eargparse-manpage\u003c/code\u003e.  Solved issue#85.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cpre\u003e\u003ccode\u003e\nNews in v4.4\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eprog=\u003c/code\u003e specifier (in setup.py/setup.cfg/pyproject.toml) is now\u003cbr /\u003e\nbetter handled so it doesn't conflict with ArgumentParser(prog=..).\u003cbr /\u003e\nFixes \u003ca href=\"https://redirect.github.com/praiskup/argparse-manpage/issues/79\"\u003epraiskup/argparse-manpage#79\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eNews in v4.3\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe pyproject.toml parsing feature now depends on the python3-tomli library\u003cbr /\u003e\ninstead of python-toml for \u0026quot;python_environment \u0026gt;3, \u0026lt;=3.10\u0026quot;.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eNews in v4.2\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for pyproject.toml specification of manpages added.\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/praiskup/argparse-manpage/commit/7883becca340aa3ea124143e032848a7b2bdf84b\"\u003e\u003ccode\u003e7883bec\u003c/code\u003e\u003c/a\u003e Release v4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/765389ed4ee835c09451823d7fbfe22b0dc1674a\"\u003e\u003ccode\u003e765389e\u003c/code\u003e\u003c/a\u003e Move the SOURCE_DATE_EPOCH hack on one place\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/a06ed9c1f03360f8089819c8e845cd670687eb64\"\u003e\u003ccode\u003ea06ed9c\u003c/code\u003e\u003c/a\u003e ci: fix RPM build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/c985432ee15824c43c75548c7ec1bd6f105a7f22\"\u003e\u003ccode\u003ec985432\u003c/code\u003e\u003c/a\u003e Fix deprecation warnings for datetime and setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/306658941368ff0c2dfe2e4fa29b889fb5bbeb2b\"\u003e\u003ccode\u003e3066589\u003c/code\u003e\u003c/a\u003e ci: fedora-tox update list of environments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/b3a2c50e2abc47bd822d848864a80e35251a3147\"\u003e\u003ccode\u003eb3a2c50\u003c/code\u003e\u003c/a\u003e ci: enable ruff \u0026amp; bump deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/6dc54a5272e70b081af728958fd7554a6b0372f3\"\u003e\u003ccode\u003e6dc54a5\u003c/code\u003e\u003c/a\u003e Fix compatibility with newer setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/29f89bba536cf28f6ed66721367ff2ee3f6209b7\"\u003e\u003ccode\u003e29f89bb\u003c/code\u003e\u003c/a\u003e Fix some comments about sys.argv alteration for usage message\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/praiskup/argparse-manpage/commit/ade76cc8ef49ec804955c6b4027dbae52d482034\"\u003e\u003ccode\u003eade76cc\u003c/code\u003e\u003c/a\u003e Use sys.stdout instead of /dev/stdout\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/praiskup/argparse-manpage/compare/v4.6...v4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `backrefs` from 5.8 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/backrefs/releases\"\u003ebackrefs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix a regression that created an ASCII binary property that would override the ASCII block property.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: POSIX character classes will now always use POSIX compatibility rules instead of Unicode standard rules,\nif any are specified in the Unicode specification. The affected character classes are: \u003ccode\u003e[[:alnum:]]\u003c/code\u003e, \u003ccode\u003e[[:digit:]]\u003c/code\u003e,\n\u003ccode\u003e[[:xdigit:]]\u003c/code\u003e, and  \u003ccode\u003e[[:punct:]]\u003c/code\u003e. To explicitly use standard Unicode rules for these compatibility properties, use\nthe Unicode property form instead: \u003ccode\u003e[\\p{Alnum}]\u003c/code\u003e, \u003ccode\u003e[\\p{Digit}]\u003c/code\u003e, \u003ccode\u003e[\\p{Punct}]\u003c/code\u003e, or \u003ccode\u003e[\\p{XDigit}]\u003c/code\u003e. This has changed\nto ensure no confusion for users expecting compatible POSIX style character class properties.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Scoped ASCII/Unicode flags (\u003ccode\u003e(?a:pattern)\u003c/code\u003e/\u003ccode\u003e(?u:pattern)\u003c/code\u003e) should be respected for Unicode properties in\n\u003ccode\u003ebre\u003c/code\u003e and will ensure ASCII or Unicode range if used.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix issues related to detecting disabled scoped flags.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eENHANCE\u003c/strong\u003e: Switch to deploying with PyPI's \u0026quot;Trusted Publisher\u0026quot;.\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/facelessuser/backrefs/commit/63f8a4b14750828b7c1e385844fd36f6f89859e4\"\u003e\u003ccode\u003e63f8a4b\u003c/code\u003e\u003c/a\u003e Fix grammar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7f4bf611e6e7fcc2aa4e0eba2872b5f51b7fc908\"\u003e\u003ccode\u003e7f4bf61\u003c/code\u003e\u003c/a\u003e Rework POSIX alias\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/956df5f387f1958110e5a7cf2a98d42a8309d9b6\"\u003e\u003ccode\u003e956df5f\u003c/code\u003e\u003c/a\u003e Fix ASCII block regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7a948f083c3c87114a8dd87c95dff1893f3af82a\"\u003e\u003ccode\u003e7a948f0\u003c/code\u003e\u003c/a\u003e Clean up code and add more comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/9b2e406be36c1e0fc72651adbc7d2d63c4151483\"\u003e\u003ccode\u003e9b2e406\u003c/code\u003e\u003c/a\u003e Add more flag tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/47d62b1270ca7f1717e7acdb56e8e6ed3e9e8f10\"\u003e\u003ccode\u003e47d62b1\u003c/code\u003e\u003c/a\u003e Handle enable/disable properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/8e7596700b913e13f478da57e0ba0965f2d9ed3b\"\u003e\u003ccode\u003e8e75967\u003c/code\u003e\u003c/a\u003e Fix issues with scoped flags (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/0df8e7746d3ea31824af97ea4ed713a3facded5b\"\u003e\u003ccode\u003e0df8e77\u003c/code\u003e\u003c/a\u003e POSIX character classes should use POSIX compatibility rules by default (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/191\"\u003e#191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/31fd8c5c0338eefe41452d52f99012c0fecfdd82\"\u003e\u003ccode\u003e31fd8c5\u003c/code\u003e\u003c/a\u003e Call mkdocs directly on deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/8b3a24bfc1cacde6fc9ab4edfaed0f5a9206c554\"\u003e\u003ccode\u003e8b3a24b\u003c/code\u003e\u003c/a\u003e Fix deploy logic\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facelessuser/backrefs/compare/5.8...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bracex` from 2.5.post1 to 2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/bracex/releases\"\u003ebracex's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/6d109c55372f0d5086adb7cf84a951cc06391a69\"\u003e\u003ccode\u003e6d109c5\u003c/code\u003e\u003c/a\u003e Add trusted publishing and support for Python 3.14 (\u003ca href=\"https://redirect.github.com/facelessuser/bracex/issues/44\"\u003e#44\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/c14d46fb495a8fdcd0ec51d4dd42aa587807407d\"\u003e\u003ccode\u003ec14d46f\u003c/code\u003e\u003c/a\u003e Add security policy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/14645af4bf4de0e1abe4fd6c29bf98871f549273\"\u003e\u003ccode\u003e14645af\u003c/code\u003e\u003c/a\u003e Typos: remove duplicate words\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/bracex/compare/2.5.post1...2.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 6.0.0 to 6.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\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/tkem/cachetools/commit/bb6d71a745785429b14aae30b7752f4765dc35c3\"\u003e\u003ccode\u003ebb6d71a\u003c/code\u003e\u003c/a\u003e Release v6.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/77a9c59e3324496a79e6c4d5a7b5bfdb9a7f7f42\"\u003e\u003ccode\u003e77a9c59\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/260\"\u003e#260\u003c/a\u003e: Use LFUCache implementation based on Blake Reid's \u0026quot;cacheing\u0026quot; library.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b1d4eb2972ca8f0ab49e22eae3bb47c1eb8b552c\"\u003e\u003ccode\u003eb1d4eb2\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.4.2 to 5.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/820b154494e91aa5bfe63a3fa2033c63a9c84603\"\u003e\u003ccode\u003e820b154\u003c/code\u003e\u003c/a\u003e Refactor \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e unit tests.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v6.0.0...v6.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.6.15 to 2025.8.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1\"\u003e\u003ccode\u003eddd90c6\u003c/code\u003e\u003c/a\u003e 2025.07.14 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d905221c916d51077f5c8071a0f7aa2df2a37c52\"\u003e\u003ccode\u003ed905221\u003c/code\u003e\u003c/a\u003e 2025.07.09 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.06.15...2025.08.03\"\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.2 to 3.4.3\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.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\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.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\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/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.9.1 to 7.10.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.4 — 2025-08-16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003epatch = fork\u003c/code\u003e for times when the built-in forking support is\ninsufficient.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003epatch = execv\u003c/code\u003e also inherits the entire coverage configuration now.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _changes_7-10-3:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.3 — 2025-08-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixes for \u003ccode\u003epatch = subprocess\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses spawned yet more subprocesses simultaneously, some coverage\ncould be missed.  This is now fixed, closing \u003ccode\u003eissue 2024\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses were created in other directories, their data files were\nstranded there and not combined into the totals, as described in \u003ccode\u003eissue 2025\u003c/code\u003e_.  This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOn Windows (or maybe only some Windows?) the patch would fail with a\n\u003ccode\u003eModuleNotFound\u003c/code\u003e error trying to import coverage.  This is now fixed,\nclosing \u003ccode\u003eissue 2022\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOriginally only options set in the coverage configuration file would apply\nto subprocesses.  Options set on the \u003ccode\u003ecoverage run\u003c/code\u003e command line (such as\n\u003ccode\u003e--branch\u003c/code\u003e) wouldn't be communicated to the subprocesses.  This could\nlead to combining failures, as described in \u003ccode\u003eissue 2021\u003c/code\u003e_. Now the entire\nconfiguration is used in subprocesses, regardless of its origin.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003edebug=patch\u003c/code\u003e to help diagnose problems.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: really close all SQLite databases, even in-memory ones. Closes \u003ccode\u003eissue 2017\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2017: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2017\"\u003enedbat/coveragepy#2017\u003c/a\u003e\n.. _issue 2021: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2021\"\u003enedbat/coveragepy#2021\u003c/a\u003e\n.. _issue 2022: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2022\"\u003enedbat/coveragepy#2022\u003c/a\u003e\n.. _issue 2024: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2024\"\u003enedbat/coveragepy#2024\u003c/a\u003e\n.. _issue 2025: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2025\"\u003enedbat/coveragepy#2025\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-2:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.2 — 2025-08-03\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/1cd29f24ce3859c9b2d824959031b9142c218904\"\u003e\u003ccode\u003e1cd29f2\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/92a91e9cbbde7ea05a960b4c85bfc9d16b4a8d33\"\u003e\u003ccode\u003e92a91e9\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9ee6390200e1946ba5458e86d6e9f46adace4751\"\u003e\u003ccode\u003e9ee6390\u003c/code\u003e\u003c/a\u003e debug: more details in debug messages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/6af8a5d13314eba82c2c5974b2fbf133f09b51d0\"\u003e\u003ccode\u003e6af8a5d\u003c/code\u003e\u003c/a\u003e feat: patch=fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0eb292d24d3790ec46f2961cd05136e9e5f5d0c6\"\u003e\u003ccode\u003e0eb292d\u003c/code\u003e\u003c/a\u003e refactor: a nicer way to inject config from the environment\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/183cd9b5358d41fc67210c66df9169a9e495df0b\"\u003e\u003ccode\u003e183cd9b\u003c/code\u003e\u003c/a\u003e build: tweaks to how the python build is bannered for tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/6c2fb87e14e0d18859cac4763577ef4f717c2f38\"\u003e\u003ccode\u003e6c2fb87\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a22436cb0e17397a79ae480be0ce6f19b98b3188\"\u003e\u003ccode\u003ea22436c\u003c/code\u003e\u003c/a\u003e test: since 62434e79 we don't need to account for .tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/4ab4bb04db299cee912d1f930dcab59f01317f54\"\u003e\u003ccode\u003e4ab4bb0\u003c/code\u003e\u003c/a\u003e test: add a test for env var truncation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/bf1a9706b3eb2a1c27743815e475ab6d966a6d6f\"\u003e\u003ccode\u003ebf1a970\u003c/code\u003e\u003c/a\u003e refactor: better style for constants\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.9.1...7.10.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 45.0.4 to 45.0.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e45.0.6 - 2025-08-05\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.2.\n\u003cp\u003e.. _v45-0-5:\u003c/p\u003e\n\u003cp\u003e45.0.5 - 2025-07-02\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.1.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-4:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/66198c23c97c9594d64540e5a866e4b4121aec2d\"\u003e\u003ccode\u003e66198c2\u003c/code\u003e\u003c/a\u003e Bump for release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13249\"\u003e#13249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3e53a233b65123d2a836b58ccdc427ed5207f92b\"\u003e\u003ccode\u003e3e53a23\u003c/code\u003e\u003c/a\u003e Bump for 45.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13135\"\u003e#13135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/45.0.4...45.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `distlib` from 0.3.9 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/distlib/blob/master/CHANGES.rst\"\u003edistlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.4.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nReleased: 2025-07-17\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003emarkers\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003einterpret_parsed\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ewheel\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/238\"\u003e#238\u003c/a\u003e: Add build tag to wheel metadata if specified.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/243\"\u003e#243\u003c/a\u003e: Update to support free-threading version of Python (3.13t).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e: Support subdirectories in the dist-info directory. Thanks to Pieter P for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e: Fix path normalisation issue caused by the fix for \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMove import in script wrapper to \u0026quot;if \u003cstrong\u003ename\u003c/strong\u003e == 'main'\u0026quot; clause.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003etests\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/245\"\u003e#245\u003c/a\u003e: Skip test_package_data if a SKIP_EXT_PACKAGE_DATA environment variable is present.\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/aff2cbbc4e8a87b9440cb93472789a213813dbd6\"\u003e\u003ccode\u003eaff2cbb\u003c/code\u003e\u003c/a\u003e Finalise version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/3716c4bcccac19d0c0f2ce0d1272dd33996381b5\"\u003e\u003ccode\u003e3716c4b\u003c/code\u003e\u003c/a\u003e Update change log, widen exception catching in test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/660bd337bf3217a7bd907c2ba8a2f8dd291ac793\"\u003e\u003ccode\u003e660bd33\u003c/code\u003e\u003c/a\u003e Changes for 0.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/56b4ad938455048fc79e599d369e02a1414e9946\"\u003e\u003ccode\u003e56b4ad9\u003c/code\u003e\u003c/a\u003e Guard script wrapper entrypoint import with if \u003cstrong\u003emain\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/242\"\u003e#242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/fe573669087cb1109fb0cc249bf0e06a5461324c\"\u003e\u003ccode\u003efe57366\u003c/code\u003e\u003c/a\u003e docs: update coverage results link (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/250\"\u003e#250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/c3286e508bb60cd2337408d88eb614a93b612d8c\"\u003e\u003ccode\u003ec3286e5\u003c/code\u003e\u003c/a\u003e Temporarily exclude 3.13t on windows-latest.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/e6b83d3b0eeb11d8e7b053f11139d15aab89d196\"\u003e\u003ccode\u003ee6b83d3\u003c/code\u003e\u003c/a\u003e Normalize archive paths in dist-info (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/93baffeaa1773796d802bb761607a6466790dcba\"\u003e\u003ccode\u003e93baffe\u003c/code\u003e\u003c/a\u003e Skip no-longer-relevant test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/83f656836f4b6d8175172fcb8370fbee691f2bec\"\u003e\u003ccode\u003e83f6568\u003c/code\u003e\u003c/a\u003e Support subdirectories in .dist-info (fixes \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/247\"\u003e#247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/f918abd5d20879041704f9d719533b213a55ad48\"\u003e\u003ccode\u003ef918abd\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003etest_wheel.WheelTestCase.test_abi\u003c/code\u003e for freethreading (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/distlib/compare/0.3.9...0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `filelock` from 3.18.0 to 3.19.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tox-dev/py-filelock/releases\"\u003efilelock's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.19.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadd 3.14t (free threading) to matrix by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncrease test coverage by \u003ca href=\"https://github.com/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/434\"\u003etox-dev/filelock#434\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/paultiq\"\u003e\u003ccode\u003e@​paultiq\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/433\"\u003etox-dev/filelock#433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\"\u003ehttps://github.com/tox-dev/filelock/compare/3.19.0...3.19.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.19.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for 3.14 by \u003ca href=\"https://github.com/gaborbernat\"\u003e\u003ccode\u003e@​gaborbernat\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/tox-dev/filelock/pull/432\"\u003etox-dev/filelock#432\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\"\u003ehttps://github.com/tox-dev/filelock/compare/3.18.0...3.19.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/8d1009f08a6a64624fad91d1079062ef31b8c2b4\"\u003e\u003ccode\u003e8d1009f\u003c/code\u003e\u003c/a\u003e Update release.yaml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/66a428e97a874b44b0310072f6c974226f55a472\"\u003e\u003ccode\u003e66a428e\u003c/code\u003e\u003c/a\u003e Increase test coverage (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/434\"\u003e#434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0dfc86eebd2c76ae959a409bcbc3112cc1ec5890\"\u003e\u003ccode\u003e0dfc86e\u003c/code\u003e\u003c/a\u003e add 3.14 to matrix (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/433\"\u003e#433\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/0c54837e318ebe8a692b529722430cb38134bf7c\"\u003e\u003ccode\u003e0c54837\u003c/code\u003e\u003c/a\u003e Add support for 3.14 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/432\"\u003e#432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/77d02f5ada3a1a92167b1beee35a7815cbde0fcf\"\u003e\u003ccode\u003e77d02f5\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/430\"\u003e#430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/bc972b33bf253bb9f08db32b19ffd4119a74706e\"\u003e\u003ccode\u003ebc972b3\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/429\"\u003e#429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/78d02cb5ff42b22a56ad1a36755361a6b4601765\"\u003e\u003ccode\u003e78d02cb\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4 to 5 (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/428\"\u003e#428\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/18cdb5d1c78a7a459463480303e9820f33cdf041\"\u003e\u003ccode\u003e18cdb5d\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/427\"\u003e#427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/b198a096d2bae58596479497d18a82bbeec515c8\"\u003e\u003ccode\u003eb198a09\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/426\"\u003e#426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tox-dev/filelock/commit/6b097e76de603d9be6a24c5058b6fe53ef003afd\"\u003e\u003ccode\u003e6b097e7\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/tox-dev/py-filelock/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tox-dev/py-filelock/compare/3.18.0...3.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gitpython` from 3.1.44 to 3.1.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gitpython-developers/GitPython/releases\"\u003egitpython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.45\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix various version-related CI breakages by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1987\"\u003egitpython-developers/GitPython#1987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo some CI cleanup to make reports clearer and future changes easier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1989\"\u003egitpython-developers/GitPython#1989\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAffirm that gitdb and smmap advisories can also be created by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1991\"\u003egitpython-developers/GitPython#1991\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix links to gitdb and smmap \u003ccode\u003eSECURITY.md\u003c/code\u003e files by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1992\"\u003egitpython-developers/GitPython#1992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest Python 3.13 regularly on Ubuntu and macOS on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1990\"\u003egitpython-developers/GitPython#1990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRepo.rev_parse: Handle \u003c!-- raw HTML omitted --\u003e^{commit} correctly by \u003ca href=\"https://github.com/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFuzzing: Fix Broken Fuzz Test for Git Submodule Handling by \u003ca href=\"https://github.com/DaveLak\"\u003e\u003ccode\u003e@​DaveLak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1997\"\u003egitpython-developers/GitPython#1997\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWork around Cygwin CI failure \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2004\"\u003e#2004\u003c/a\u003e, except for \u003ccode\u003etest_installation\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2007\"\u003egitpython-developers/GitPython#2007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark \u003ccode\u003etest_installation\u003c/code\u003e xfail on Cygwin CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2009\"\u003egitpython-developers/GitPython#2009\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eIndexFile._to_relative_path\u003c/code\u003e - fix case where absolute path gets stripped of trailing slash by \u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse WSL1 on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2010\"\u003egitpython-developers/GitPython#2010\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest free-threaded Python (but only on Linux) by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2011\"\u003egitpython-developers/GitPython#2011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse property decorator to support typing by \u003ca href=\"https://github.com/Andrej730\"\u003e\u003ccode\u003e@​Andrej730\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2015\"\u003egitpython-developers/GitPython#2015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some incorrect sphinx markups in the docstrings by \u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereplace quansight-labs/setup-python with actions/setup-python by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove type assertions from util.py by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecorrectly handle \u003ccode\u003euname-cmd\u003c/code\u003e that doesn't point to an executable file by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2026\"\u003egitpython-developers/GitPython#2026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse newer ruff style by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2031\"\u003egitpython-developers/GitPython#2031\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHave CodeQL scan GitHub Actions workflows as well as Python code by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2032\"\u003egitpython-developers/GitPython#2032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpecify explicit \u003ccode\u003econtents: read\u003c/code\u003e workflow permissions by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2033\"\u003egitpython-developers/GitPython#2033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GitConfigParser not removing quotes from values by \u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve quoted leading and trailing single-line config var whitespace by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2036\"\u003egitpython-developers/GitPython#2036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor Git.{AutoInterrupt,CatFileContentStream} nesting by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2037\"\u003egitpython-developers/GitPython#2037\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Git.{AutoInterrupt,CatFileContentStream} static typing by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2039\"\u003egitpython-developers/GitPython#2039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI \u003ccode\u003emypy\u003c/code\u003e command on free-threaded Python by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2040\"\u003egitpython-developers/GitPython#2040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit Cygwin CI into non-\u003ccode\u003eperformance\u003c/code\u003e and \u003ccode\u003eperformance\u003c/code\u003e test jobs by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2042\"\u003egitpython-developers/GitPython#2042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpress conditional \u003ccode\u003esetuptools\u003c/code\u003e requirement statically by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2043\"\u003egitpython-developers/GitPython#2043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ambiguous \u003ccode\u003e_safer_popen_windows\u003c/code\u003e comment by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2044\"\u003egitpython-developers/GitPython#2044\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eUSE_SHELL\u003c/code\u003e warning helper signature by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2045\"\u003egitpython-developers/GitPython#2045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest \u003ccode\u003eConfigParser\u003c/code\u003e with whitespace outside the value by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2046\"\u003egitpython-developers/GitPython#2046\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove explicit empty \u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e handling in ConfigParser by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2047\"\u003egitpython-developers/GitPython#2047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious style improvements by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2049\"\u003egitpython-developers/GitPython#2049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't remove quotes if \u003ccode\u003e\\\u003c/code\u003e or \u003ccode\u003e\u0026quot;\u003c/code\u003e are present inside by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2048\"\u003egitpython-developers/GitPython#2048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix updating submodules with relative urls by \u003ca href=\"https://github.com/david0\"\u003e\u003ccode\u003e@​david0\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2051\"\u003egitpython-developers/GitPython#2051\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun \u003ccode\u003ecat_file.py\u003c/code\u003e fixture without site customizations by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2052\"\u003egitpython-developers/GitPython#2052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Cygwin installation on CI for \u003ccode\u003epip\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2053\"\u003egitpython-developers/GitPython#2053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFail \u003ccode\u003etest_installation\u003c/code\u003e on warnings, and remove deprecated license classifier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2054\"\u003egitpython-developers/GitPython#2054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd clearer error version for unsupported index error by \u003ca href=\"https://github.com/tombedor\"\u003e\u003ccode\u003e@​tombedor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2055\"\u003egitpython-developers/GitPython#2055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix name collision by \u003ca href=\"https://github.com/NMertsch\"\u003e\u003ccode\u003e@​NMertsch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2060\"\u003egitpython-developers/GitPython#2060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow relative path url in submodules for submodule_update by \u003ca href=\"https://github.com/t-webber\"\u003e\u003ccode\u003e@​t-webber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2062\"\u003egitpython-developers/GitPython#2062\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/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\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/gitpython-developers/GitPython/commit/6ba2c0a2f9ee7feffd7e079621c4845820180c9a\"\u003e\u003ccode\u003e6ba2c0a\u003c/code\u003e\u003c/a\u003e Prepare a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/bbb3d00ac431dc7966f9715fb813792d234eca81\"\u003e\u003ccode\u003ebbb3d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2062\"\u003e#2062\u003c/a\u003e from t-webber/relative_path_submodules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/1ee1e781929074afd66bff1eae007bbee41d117e\"\u003e\u003ccode\u003e1ee1e78\u003c/code\u003e\u003c/a\u003e Add test case for cloning submodules with relative path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/ec2e2c8b894512e7a2364774d77cdd9db73f0566\"\u003e\u003ccode\u003eec2e2c8\u003c/code\u003e\u003c/a\u003e Allow relative path url in submodules for submodule_update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4d529b71905edae12e4699170f7d9e0a665801b5\"\u003e\u003ccode\u003e4d529b7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2060\"\u003e#2060\u003c/a\u003e from NMertsch/2023-fix-gitconfigparser-autodoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/80fd2c16211738156e65258381a17cdc429ddd08\"\u003e\u003ccode\u003e80fd2c1\u003c/code\u003e\u003c/a\u003e Don't treat sphinx warnings as errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/a4aadb0c04bd13af824c14dcc39f88345aa5c440\"\u003e\u003ccode\u003ea4aadb0\u003c/code\u003e\u003c/a\u003e Fix name collision\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4c7778a93134364cfff7b1597f9eda00a88323af\"\u003e\u003ccode\u003e4c7778a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2057\"\u003e#2057\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/5033c3ffd8917d835658c22e84bd86103a2ae52d\"\u003e\u003ccode\u003e5033c3f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2056\"\u003e#2056\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/496392b9bf781904421cbd171c0c5395a6fe330c\"\u003e\u003ccode\u003e496392b\u003c/code\u003e\u003c/a\u003e Bump cygwin/cygwin-install-action from 5 to 6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gitpython-developers/GitPython/compare/3.1.44...3.1.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `griffe` from 1.7.3 to 1.12.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/releases\"\u003egriffe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.12.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.1\"\u003e1.12.1\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.0...1.12.1\"\u003eCompare with 1.12.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce size of JSON dumps by removing keys with null values (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/58227eb377fee66ef66237d7cbed35156ff1fed1\"\u003e58227eb\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/403\"\u003eIssue-403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fields to aliases when serializing (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5c9fee2b0c6e4f4e63c7648fa41b2e540f2ecc7f\"\u003e5c9fee2\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAlso add the option to ignore missing type to the Sphinx parser (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8c9f803e748a659905b06445a349a6cfea948c1c\"\u003e8c9f803\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.12.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.0\"\u003e1.12.0\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.1...1.12.0\"\u003eCompare with 1.11.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow disabling \u0026quot;missing type/annotation\u0026quot; warnings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/07564b43524220342c3078ece406459c08b80a86\"\u003e07564b4\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/437\"\u003eIssue-mkdocstrings-437\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.11.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.1\"\u003e1.11.1\u003c/a\u003e - 2025-08-11\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.0...1.11.1\"\u003eCompare with 1.11.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix type parameters loading (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce41279cc8b7abc45c7b94316b24e87d4a1edc40\"\u003ece41279\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove private \u003ccode\u003e_griffe\u003c/code\u003e package under \u003ccode\u003egriffe._internal\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8f37158eb5617d2cf686f9a0a044f29c638598b2\"\u003e8f37158\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.0\"\u003e1.11.0\u003c/a\u003e - 2025-08-07\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.10.0...1.11.0\"\u003eCompare with 1.10.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd data to dict/json output (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/9731afcbeab377e7f3f69a0d18d19677e790072e\"\u003e9731afc\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.10.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.10.0\"\u003e1.10.0\u003c/a\u003e - 2025-08-06\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.9.0...1.10.0\"\u003eCompare with 1.9.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow adding \u003ccode\u003esys.path\u003c/code\u003e to search paths when temporary visiting/inspecting package (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/42983bc843fd9a63883e9c50ad5043b0f737b450\"\u003e42983bc\u003c/a\u003e by Timothée Mazzucotelli).\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/mkdocstrings/griffe/blob/main/CHANGELOG.md\"\u003egriffe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.1\"\u003e1.12.1\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.12.0...1.12.1\"\u003eCompare with 1.12.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReduce size of JSON dumps by removing keys with null values (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/58227eb377fee66ef66237d7cbed35156ff1fed1\"\u003e58227eb\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/403\"\u003eIssue-403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd fields to aliases when serializing (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5c9fee2b0c6e4f4e63c7648fa41b2e540f2ecc7f\"\u003e5c9fee2\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAlso add the option to ignore missing type to the Sphinx parser (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8c9f803e748a659905b06445a349a6cfea948c1c\"\u003e8c9f803\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.12.0\"\u003e1.12.0\u003c/a\u003e - 2025-08-14\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.1...1.12.0\"\u003eCompare with 1.11.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow disabling \u0026quot;missing type/annotation\u0026quot; warnings (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/07564b43524220342c3078ece406459c08b80a86\"\u003e07564b4\u003c/a\u003e by Timothée Mazzucotelli). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/437\"\u003eIssue-mkdocstrings-437\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.1\"\u003e1.11.1\u003c/a\u003e - 2025-08-11\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.11.0...1.11.1\"\u003eCompare with 1.11.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix type parameters loading (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce41279cc8b7abc45c7b94316b24e87d4a1edc40\"\u003ece41279\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eMove private \u003ccode\u003e_griffe\u003c/code\u003e package under \u003ccode\u003egriffe._internal\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8f37158eb5617d2cf686f9a0a044f29c638598b2\"\u003e8f37158\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.0\"\u003e1.11.0\u003c/a\u003e - 2025-08-07\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.10.0...1.11.0\"\u003eCompare with 1.10.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd data to dict/json output (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/9731afcbeab377e7f3f69a0d18d19677e790072e\"\u003e9731afc\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.10.0\"\u003e1.10.0\u003c/a\u003e - 2025-08-06\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.9.0...1.10.0\"\u003eCompare with 1.9.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow adding \u003ccode\u003esys.path\u003c/code\u003e to search paths when temporary visiting/inspecting package (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/42983bc843fd9a63883e9c50ad5043b0f737b450\"\u003e42983bc\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.9.0\"\u003e1.9.0\u003c/a\u003e - 2025-07-28\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.8.0...1.9.0\"\u003eCompare with 1.8.0\u003c/a\u003e\u003c!-- raw HTML omitted --\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/mkdocstrings/griffe/commit/d1899ecf00f823a75af80ea186b8a1ca30898b55\"\u003e\u003ccode\u003ed1899ec\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.12.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/58227eb377fee66ef66237d7cbed35156ff1fed1\"\u003e\u003ccode\u003e58227eb\u003c/code\u003e\u003c/a\u003e refactor: Reduce size of JSON dumps by removing keys with null values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/5c9fee2b0c6e4f4e63c7648fa41b2e540f2ecc7f\"\u003e\u003ccode\u003e5c9fee2\u003c/code\u003e\u003c/a\u003e refactor: Add fields to aliases when serializing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8c9f803e748a659905b06445a349a6cfea948c1c\"\u003e\u003ccode\u003e8c9f803\u003c/code\u003e\u003c/a\u003e refactor: Also add the option to ignore missing type to the Sphinx parser\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/41921c5609dfb67e8b5c6b59429676155d24309b\"\u003e\u003ccode\u003e41921c5\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/07564b43524220342c3078ece406459c08b80a86\"\u003e\u003ccode\u003e07564b4\u003c/code\u003e\u003c/a\u003e feat: Allow disabling \u0026quot;missing type/annotation\u0026quot; warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/34d80517db78550a49e4322c1c5f5194677779e1\"\u003e\u003ccode\u003e34d8051\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.11.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/937c7967f036d0fa452245c1aa0d0ccab0e685dd\"\u003e\u003ccode\u003e937c796\u003c/code\u003e\u003c/a\u003e docs: Don't hide navigation in Python API page\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/4da5cc570535c7bc9370635750583f6bf1925447\"\u003e\u003ccode\u003e4da5cc5\u003c/code\u003e\u003c/a\u003e docs: Lint\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/ce41279cc8b7abc45c7b94316b24e87d4a1edc40\"\u003e\u003ccode\u003ece41279\u003c/code\u003e\u003c/a\u003e fix: Fix type parameters loading\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.7.3...1.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-resources` from 5.0.7 to 6.5.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_resources/blob/main/NEWS.rst\"\u003eimportlib-resources's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.5.2\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced reference to typing_extensions with stdlib Literal. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/323\"\u003e#323\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.5.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated \u003ccode\u003eTraversable.read_text()\u003c/code\u003e to reflect the \u003ccode\u003eerrors\u003c/code\u003e\u003ccode\u003epython/cpython#127012\u003c/code\u003e\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/321\"\u003e#321\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.5.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd type annotations for Traversable.open. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire Python 3.9 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.4.5\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOmit sentinel values from a namespace path. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/311\"\u003e#311\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.4.4\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch1\u003ev6.4.3\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWhen inferring the caller in \u003ccode\u003efiles()\u003c/code\u003e\u003ccode\u003epython/cpython#123085\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/python/importlib_resources/commit/7d3b2bfa1d8c53ecb64246ba16d8c632f8fcb6bf\"\u003e\u003ccode\u003e7d3b2bf\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/14408098293bd6bc68eca7b5a53333729a567e57\"\u003e\u003ccode\u003e1440809\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/324\"\u003e#324\u003c/a\u003e from pstjohn/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/6569354ad2cf38b202fdeaf11b49e639b1a00fbc\"\u003e\u003ccode\u003e6569354\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/6c1bc3cdb8f8a7d29252becc201508712040facc\"\u003e\u003ccode\u003e6c1bc3c\u003c/code\u003e\u003c/a\u003e Rely on Literal from stdlib.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/883380a5fcc482b67014b90b9aa7250d868c795a\"\u003e\u003ccode\u003e883380a\u003c/code\u003e\u003c/a\u003e Update pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/a61a948b6293ed46972909652909e2540242f197\"\u003e\u003ccode\u003ea61a948\u003c/code\u003e\u003c/a\u003e Add typing-extensions as a dependency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/78c4bda73c5d671cbbcfdf1430b6f2da03aeb04f\"\u003e\u003ccode\u003e78c4bda\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/10d87bf85a404e9fb9271f8f353ad0452c0cc631\"\u003e\u003ccode\u003e10d87bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/321\"\u003e#321\u003c/a\u003e from kurtmckee/add-readtext-errors-parameter-cpython-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/9a872e5dbceff32260e8ff19d039236304ee150c\"\u003e\u003ccode\u003e9a872e5\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/cf269ce50f496671f3b7fbc5e6292946ecc70e7d\"\u003e\u003ccode\u003ecf269ce\u003c/code\u003e\u003c/a\u003e Replace unreachable block with simple assertion. Fixes diffcov failure.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_resources/compare/v5.0.7...v6.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jsonschema` from 4.24.0 to 4.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-jsonschema/jsonschema/releases\"\u003ejsonschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.25.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eiri\u003c/code\u003e and \u003ccode\u003eiri-reference\u003c/code\u003e formats to the \u003ccode\u003eformat-nongpl\u003c/code\u003e extra by \u003ca href=\"https://github.com/jkowalleck\"\u003e\u003ccode\u003e@​jkowalleck\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1388\"\u003epython-jsonschema/jsonschema#1388\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/jkowalleck\"\u003e\u003ccode\u003e@​jkowalleck\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1388\"\u003epython-jsonschema/jsonschema#1388\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-jsonschema/jsonschema/compare/v4.24.1...v4.25.0\"\u003ehttps://github.com/python-jsonschema/jsonschema/compare/v4.24.1...v4.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.24.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUnambiguously quote and escape properties in JSON path rendering by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1390\"\u003epython-jsonschema/jsonschema#1390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop python\u0026lt;3.9 backports by \u003ca href=\"https://github.com/hackowitz-af\"\u003e\u003ccode\u003e@​hackowitz-af\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-...\n\n_Description has been truncated_","html_url":"https://github.com/pycontribs/subprocess-tee/pull/187","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycontribs%2Fsubprocess-tee/issues/187","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/187/packages"}},{"old_version":"2.4.0","new_version":"2.5.0","update_type":"minor","path":null,"pr_created_at":"2025-08-10T22:43:42.000Z","version_change":"2.4.0 → 2.5.0","issue":{"uuid":"2733834606","node_id":"PR_kwDOEkpJIs6i8wFu","number":185,"state":"closed","title":"Bump the dependencies group across 1 directory with 24 updates","user":"dependabot[bot]","labels":["skip-changelog","dependencies","dependabot-deps-updates"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-08-17T22:26:48.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-08-10T22:43:42.000Z","updated_at":"2025-08-17T22:26:48.000Z","time_to_close":603786,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":24,"packages":[{"name":"mkdocstrings","old_version":"0.29.1","new_version":"0.30.0","repository_url":"https://github.com/mkdocstrings/mkdocstrings"},{"name":"backrefs","old_version":"5.8","new_version":"6.0.1","repository_url":"https://github.com/facelessuser/backrefs"},{"name":"bracex","old_version":"2.5.post1","new_version":"2.6","repository_url":"https://github.com/facelessuser/bracex"},{"name":"cachetools","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.8.3","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.4.2","new_version":"3.4.3","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"coverage","old_version":"7.9.1","new_version":"7.10.3","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"cryptography","old_version":"45.0.4","new_version":"45.0.6","repository_url":"https://github.com/pyca/cryptography"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"gitpython","old_version":"3.1.44","new_version":"3.1.45","repository_url":"https://github.com/gitpython-developers/GitPython"},{"name":"griffe","old_version":"1.7.3","new_version":"1.11.0","repository_url":"https://github.com/mkdocstrings/griffe"},{"name":"importlib-resources","old_version":"5.0.7","new_version":"6.5.2","repository_url":"https://github.com/python/importlib_resources"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"markdown","old_version":"3.8","new_version":"3.8.2","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"mkdocs-material","old_version":"9.6.14","new_version":"9.6.16","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"pillow","old_version":"11.2.1","new_version":"11.3.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pymdown-extensions","old_version":"10.15","new_version":"10.16.1","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"pytest","old_version":"8.4.0","new_version":"8.4.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-xdist","old_version":"3.7.0","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"rich","old_version":"14.0.0","new_version":"14.1.0","repository_url":"https://github.com/Textualize/rich"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.27.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"urllib3","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"wcmatch","old_version":"10.0","new_version":"10.1","repository_url":"https://github.com/facelessuser/wcmatch"}],"path":null,"ecosystem":"conda"},"body":"Bumps the dependencies group with 24 updates in the /.config directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings) | `0.29.1` | `0.30.0` |\n| [backrefs](https://github.com/facelessuser/backrefs) | `5.8` | `6.0.1` |\n| [bracex](https://github.com/facelessuser/bracex) | `2.5.post1` | `2.6` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.0.0` | `6.1.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.8.3` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.2` | `3.4.3` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.9.1` | `7.10.3` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.4` | `45.0.6` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [gitpython](https://github.com/gitpython-developers/GitPython) | `3.1.44` | `3.1.45` |\n| [griffe](https://github.com/mkdocstrings/griffe) | `1.7.3` | `1.11.0` |\n| [importlib-resources](https://github.com/python/importlib_resources) | `5.0.7` | `6.5.2` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.0` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.8` | `3.8.2` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.6.14` | `9.6.16` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `11.3.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.15` | `10.16.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.0` | `8.4.1` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.7.0` | `3.8.0` |\n| [rich](https://github.com/Textualize/rich) | `14.0.0` | `14.1.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.27.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.4.0` | `2.5.0` |\n| [wcmatch](https://github.com/facelessuser/wcmatch) | `10.0` | `10.1` |\n\n\nUpdates `mkdocstrings` from 0.29.1 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases\"\u003emkdocstrings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.30.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\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/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md\"\u003emkdocstrings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\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/mkdocstrings/mkdocstrings/commit/2be445f054c1191d308af7ee0cc881e359f5a4c7\"\u003e\u003ccode\u003e2be445f\u003c/code\u003e\u003c/a\u003e chore: Prepare release 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003e\u003ccode\u003ef856160\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip regist...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e\u003ccode\u003e2b4ed54\u003c/code\u003e\u003c/a\u003e feat: Add I18N support (translations)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/51f217f38af9475415f758866697158d9010967d\"\u003e\u003ccode\u003e51f217f\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/b1da3d02c4f432f603cbb0004bb35099327706db\"\u003e\u003ccode\u003eb1da3d0\u003c/code\u003e\u003c/a\u003e ci: Ignore Ruff warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d5bf4e1ed0370853f968b210ad77913faf106eed\"\u003e\u003ccode\u003ed5bf4e1\u003c/code\u003e\u003c/a\u003e docs: Update link to YAML idiosyncrasies\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `backrefs` from 5.8 to 6.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/backrefs/releases\"\u003ebackrefs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e6.0.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix a regression that created an ASCII binary property that would override the ASCII block property.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: POSIX character classes will now always use POSIX compatibility rules instead of Unicode standard rules,\nif any are specified in the Unicode specification. The affected character classes are: \u003ccode\u003e[[:alnum:]]\u003c/code\u003e, \u003ccode\u003e[[:digit:]]\u003c/code\u003e,\n\u003ccode\u003e[[:xdigit:]]\u003c/code\u003e, and  \u003ccode\u003e[[:punct:]]\u003c/code\u003e. To explicitly use standard Unicode rules for these compatibility properties, use\nthe Unicode property form instead: \u003ccode\u003e[\\p{Alnum}]\u003c/code\u003e, \u003ccode\u003e[\\p{Digit}]\u003c/code\u003e, \u003ccode\u003e[\\p{Punct}]\u003c/code\u003e, or \u003ccode\u003e[\\p{XDigit}]\u003c/code\u003e. This has changed\nto ensure no confusion for users expecting compatible POSIX style character class properties.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Scoped ASCII/Unicode flags (\u003ccode\u003e(?a:pattern)\u003c/code\u003e/\u003ccode\u003e(?u:pattern)\u003c/code\u003e) should be respected for Unicode properties in\n\u003ccode\u003ebre\u003c/code\u003e and will ensure ASCII or Unicode range if used.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Fix issues related to detecting disabled scoped flags.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e5.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eENHANCE\u003c/strong\u003e: Switch to deploying with PyPI's \u0026quot;Trusted Publisher\u0026quot;.\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/facelessuser/backrefs/commit/63f8a4b14750828b7c1e385844fd36f6f89859e4\"\u003e\u003ccode\u003e63f8a4b\u003c/code\u003e\u003c/a\u003e Fix grammar\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7f4bf611e6e7fcc2aa4e0eba2872b5f51b7fc908\"\u003e\u003ccode\u003e7f4bf61\u003c/code\u003e\u003c/a\u003e Rework POSIX alias\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/956df5f387f1958110e5a7cf2a98d42a8309d9b6\"\u003e\u003ccode\u003e956df5f\u003c/code\u003e\u003c/a\u003e Fix ASCII block regression\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7a948f083c3c87114a8dd87c95dff1893f3af82a\"\u003e\u003ccode\u003e7a948f0\u003c/code\u003e\u003c/a\u003e Clean up code and add more comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/9b2e406be36c1e0fc72651adbc7d2d63c4151483\"\u003e\u003ccode\u003e9b2e406\u003c/code\u003e\u003c/a\u003e Add more flag tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/47d62b1270ca7f1717e7acdb56e8e6ed3e9e8f10\"\u003e\u003ccode\u003e47d62b1\u003c/code\u003e\u003c/a\u003e Handle enable/disable properly\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/8e7596700b913e13f478da57e0ba0965f2d9ed3b\"\u003e\u003ccode\u003e8e75967\u003c/code\u003e\u003c/a\u003e Fix issues with scoped flags (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/192\"\u003e#192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/0df8e7746d3ea31824af97ea4ed713a3facded5b\"\u003e\u003ccode\u003e0df8e77\u003c/code\u003e\u003c/a\u003e POSIX character classes should use POSIX compatibility rules by default (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/191\"\u003e#191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/31fd8c5c0338eefe41452d52f99012c0fecfdd82\"\u003e\u003ccode\u003e31fd8c5\u003c/code\u003e\u003c/a\u003e Call mkdocs directly on deploy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/8b3a24bfc1cacde6fc9ab4edfaed0f5a9206c554\"\u003e\u003ccode\u003e8b3a24b\u003c/code\u003e\u003c/a\u003e Fix deploy logic\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facelessuser/backrefs/compare/5.8...6.0.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bracex` from 2.5.post1 to 2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/bracex/releases\"\u003ebracex's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/6d109c55372f0d5086adb7cf84a951cc06391a69\"\u003e\u003ccode\u003e6d109c5\u003c/code\u003e\u003c/a\u003e Add trusted publishing and support for Python 3.14 (\u003ca href=\"https://redirect.github.com/facelessuser/bracex/issues/44\"\u003e#44\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/c14d46fb495a8fdcd0ec51d4dd42aa587807407d\"\u003e\u003ccode\u003ec14d46f\u003c/code\u003e\u003c/a\u003e Add security policy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/14645af4bf4de0e1abe4fd6c29bf98871f549273\"\u003e\u003ccode\u003e14645af\u003c/code\u003e\u003c/a\u003e Typos: remove duplicate words\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/bracex/compare/2.5.post1...2.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 6.0.0 to 6.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\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/tkem/cachetools/commit/bb6d71a745785429b14aae30b7752f4765dc35c3\"\u003e\u003ccode\u003ebb6d71a\u003c/code\u003e\u003c/a\u003e Release v6.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/77a9c59e3324496a79e6c4d5a7b5bfdb9a7f7f42\"\u003e\u003ccode\u003e77a9c59\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/260\"\u003e#260\u003c/a\u003e: Use LFUCache implementation based on Blake Reid's \u0026quot;cacheing\u0026quot; library.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b1d4eb2972ca8f0ab49e22eae3bb47c1eb8b552c\"\u003e\u003ccode\u003eb1d4eb2\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.4.2 to 5.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/820b154494e91aa5bfe63a3fa2033c63a9c84603\"\u003e\u003ccode\u003e820b154\u003c/code\u003e\u003c/a\u003e Refactor \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e unit tests.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v6.0.0...v6.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.6.15 to 2025.8.3\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/a97d9ad8f87c382378dddc0b0b33b9770932404e\"\u003e\u003ccode\u003ea97d9ad\u003c/code\u003e\u003c/a\u003e 2025.08.03 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/362\"\u003e#362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1\"\u003e\u003ccode\u003eddd90c6\u003c/code\u003e\u003c/a\u003e 2025.07.14 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d905221c916d51077f5c8071a0f7aa2df2a37c52\"\u003e\u003ccode\u003ed905221\u003c/code\u003e\u003c/a\u003e 2025.07.09 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.06.15...2025.08.03\"\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.2 to 3.4.3\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.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\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.2...3.4.3\"\u003e3.4.3\u003c/a\u003e (2025-08-09)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003emypy(c) is no longer a required dependency at build time if \u003ccode\u003eCHARSET_NORMALIZER_USE_MYPYC\u003c/code\u003e isn't set to \u003ccode\u003e1\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/595\"\u003e#595\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eautomatically lower confidence on small bytes samples that are not Unicode in \u003ccode\u003edetect\u003c/code\u003e output legacy function. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/391\"\u003e#391\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCustom build backend to overcome inability to mark mypy as an optional dependency in the build phase.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.14\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esdist archive contained useless directories.\u003c/li\u003e\n\u003cli\u003eautomatically fallback on valid UTF-16 or UTF-32 even if the md says it's noisy. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/633\"\u003e#633\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSBOM are automatically published to the relevant GitHub release to comply with regulatory changes.\nEach published wheel comes with its SBOM. We choose CycloneDX as the format.\u003c/li\u003e\n\u003cli\u003ePrebuilt optimized wheel are no longer distributed by default for CPython 3.7 due to a change in cibuildwheel.\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/46f662da20edeced520c8819965a37eefbbc85de\"\u003e\u003ccode\u003e46f662d\u003c/code\u003e\u003c/a\u003e Release 3.4.3 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/638\"\u003e#638\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/1a059b26c155dd5fca408b0e0145c930633c4bf2\"\u003e\u003ccode\u003e1a059b2\u003c/code\u003e\u003c/a\u003e :wrench: skip building on freethreaded as we're not confident it is stable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/2275e3d3fea2bf6232661f1e9c21e7b81428e2a6\"\u003e\u003ccode\u003e2275e3d\u003c/code\u003e\u003c/a\u003e :pencil: final note in CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/c96acdfdb34b5b1deb6f70803167bae89b209832\"\u003e\u003ccode\u003ec96acdf\u003c/code\u003e\u003c/a\u003e :pencil: update release date on CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/43e5460518003df24ad1a3e7b5c0a34445395012\"\u003e\u003ccode\u003e43e5460\u003c/code\u003e\u003c/a\u003e :pencil: update README.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f277074e281a070cfa64fc91c46f8291043fc37c\"\u003e\u003ccode\u003ef277074\u003c/code\u003e\u003c/a\u003e :wrench: automatically lower confidence on small bytes str on non Unicode res...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/15ae2411072b5e026f2c9d6ec81b55f75af7dcf2\"\u003e\u003ccode\u003e15ae241\u003c/code\u003e\u003c/a\u003e :bug: automatically fallback on valid UTF-16 or UTF-32 even if the md says it...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/37397c1799a05454ab42fbbc94a7643cdb277924\"\u003e\u003ccode\u003e37397c1\u003c/code\u003e\u003c/a\u003e :wrench: enable 3.14 in nox test_mypyc session\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/cb82537ecad195f48383b92e330351cea1fc6bc8\"\u003e\u003ccode\u003ecb82537\u003c/code\u003e\u003c/a\u003e :rewind: revert license due to compat python 3.7 issue setuptools\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/6a2efeb4c6e205964b61008b0c36ddf88c321543\"\u003e\u003ccode\u003e6a2efeb\u003c/code\u003e\u003c/a\u003e :art: fix linter errors\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.2...3.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.9.1 to 7.10.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.3 — 2025-08-10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixes for \u003ccode\u003epatch = subprocess\u003c/code\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses spawned yet more subprocesses simultaneously, some coverage\ncould be missed.  This is now fixed, closing \u003ccode\u003eissue 2024\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIf subprocesses were created in other directories, their data files were\nstranded there and not combined into the totals, as described in \u003ccode\u003eissue 2025\u003c/code\u003e_.  This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOn Windows (or maybe only some Windows?) the patch would fail with a\n\u003ccode\u003eModuleNotFound\u003c/code\u003e error trying to import coverage.  This is now fixed,\nclosing \u003ccode\u003eissue 2022\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOriginally only options set in the coverage configuration file would apply\nto subprocesses.  Options set on the \u003ccode\u003ecoverage run\u003c/code\u003e command line (such as\n\u003ccode\u003e--branch\u003c/code\u003e) wouldn't be communicated to the subprocesses.  This could\nlead to combining failures, as described in \u003ccode\u003eissue 2021\u003c/code\u003e_. Now the entire\nconfiguration is used in subprocesses, regardless of its origin.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003edebug=patch\u003c/code\u003e to help diagnose problems.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: really close all SQLite databases, even in-memory ones. Closes \u003ccode\u003eissue 2017\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2017: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2017\"\u003enedbat/coveragepy#2017\u003c/a\u003e\n.. _issue 2021: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2021\"\u003enedbat/coveragepy#2021\u003c/a\u003e\n.. _issue 2022: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2022\"\u003enedbat/coveragepy#2022\u003c/a\u003e\n.. _issue 2024: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2024\"\u003enedbat/coveragepy#2024\u003c/a\u003e\n.. _issue 2025: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2025\"\u003enedbat/coveragepy#2025\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-2:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.2 — 2025-08-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: some code with NOP bytecodes could report missing branches that are\nactually executed. This is now fixed, closing \u003ccode\u003eissue 1999\u003c/code\u003e_. Python 3.9\nstill shows the problem.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 1999: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/1999\"\u003enedbat/coveragepy#1999\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-1:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.1 — 2025-07-27\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0691ce5d08ae2eb6cae51f879ffe609aeb14d221\"\u003e\u003ccode\u003e0691ce5\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/34c9aca951d2c89ab0af5343a9a1c5cc7b00aefd\"\u003e\u003ccode\u003e34c9aca\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/fd83f218e21058f43c7544a3cb01ce84714965f7\"\u003e\u003ccode\u003efd83f21\u003c/code\u003e\u003c/a\u003e style: lists for homogenous collections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/d9618002dde634898613f5935092cefbb29035f0\"\u003e\u003ccode\u003ed961800\u003c/code\u003e\u003c/a\u003e docs: remove an unused reference\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/697d4bb3950b31dc7f5d39d9dcf67fabde9db241\"\u003e\u003ccode\u003e697d4bb\u003c/code\u003e\u003c/a\u003e fix: subprocesses inherit the entire configuration. \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2021\"\u003e#2021\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/b6db3b7e52e4820bd1d3e43b29f700a5f31f3937\"\u003e\u003ccode\u003eb6db3b7\u003c/code\u003e\u003c/a\u003e build: show the total during local metacov\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/cfbceb584b18f87fdc6228fc4a8202d789e030cc\"\u003e\u003ccode\u003ecfbceb5\u003c/code\u003e\u003c/a\u003e docs: reverted \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2018\"\u003e#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/264bbd3d2c2ee9eca32248c5874423c0b6ff6287\"\u003e\u003ccode\u003e264bbd3\u003c/code\u003e\u003c/a\u003e refactor: more patch logging\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/3ecdfafc74bd2b007b561e6ac6b080c04e598b06\"\u003e\u003ccode\u003e3ecdfaf\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group with 2 updates (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2026\"\u003e#2026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/41a225698710c9005da822978930be69312d1676\"\u003e\u003ccode\u003e41a2256\u003c/code\u003e\u003c/a\u003e fix: revert \u0026quot;thread safe resume (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2018\"\u003e#2018\u003c/a\u003e)\u0026quot; (\u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2027\"\u003e#2027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.9.1...7.10.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 45.0.4 to 45.0.6\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e45.0.6 - 2025-08-05\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.2.\n\u003cp\u003e.. _v45-0-5:\u003c/p\u003e\n\u003cp\u003e45.0.5 - 2025-07-02\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.1.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v45-0-4:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/66198c23c97c9594d64540e5a866e4b4121aec2d\"\u003e\u003ccode\u003e66198c2\u003c/code\u003e\u003c/a\u003e Bump for release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13249\"\u003e#13249\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3e53a233b65123d2a836b58ccdc427ed5207f92b\"\u003e\u003ccode\u003e3e53a23\u003c/code\u003e\u003c/a\u003e Bump for 45.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13135\"\u003e#13135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/45.0.4...45.0.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `distlib` from 0.3.9 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/distlib/blob/master/CHANGES.rst\"\u003edistlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.4.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nReleased: 2025-07-17\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003emarkers\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003einterpret_parsed\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ewheel\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/238\"\u003e#238\u003c/a\u003e: Add build tag to wheel metadata if specified.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/243\"\u003e#243\u003c/a\u003e: Update to support free-threading version of Python (3.13t).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e: Support subdirectories in the dist-info directory. Thanks to Pieter P for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e: Fix path normalisation issue caused by the fix for \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMove import in script wrapper to \u0026quot;if \u003cstrong\u003ename\u003c/strong\u003e == 'main'\u0026quot; clause.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003etests\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/245\"\u003e#245\u003c/a\u003e: Skip test_package_data if a SKIP_EXT_PACKAGE_DATA environment variable is present.\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/aff2cbbc4e8a87b9440cb93472789a213813dbd6\"\u003e\u003ccode\u003eaff2cbb\u003c/code\u003e\u003c/a\u003e Finalise version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/3716c4bcccac19d0c0f2ce0d1272dd33996381b5\"\u003e\u003ccode\u003e3716c4b\u003c/code\u003e\u003c/a\u003e Update change log, widen exception catching in test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/660bd337bf3217a7bd907c2ba8a2f8dd291ac793\"\u003e\u003ccode\u003e660bd33\u003c/code\u003e\u003c/a\u003e Changes for 0.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/56b4ad938455048fc79e599d369e02a1414e9946\"\u003e\u003ccode\u003e56b4ad9\u003c/code\u003e\u003c/a\u003e Guard script wrapper entrypoint import with if \u003cstrong\u003emain\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/242\"\u003e#242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/fe573669087cb1109fb0cc249bf0e06a5461324c\"\u003e\u003ccode\u003efe57366\u003c/code\u003e\u003c/a\u003e docs: update coverage results link (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/250\"\u003e#250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/c3286e508bb60cd2337408d88eb614a93b612d8c\"\u003e\u003ccode\u003ec3286e5\u003c/code\u003e\u003c/a\u003e Temporarily exclude 3.13t on windows-latest.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/e6b83d3b0eeb11d8e7b053f11139d15aab89d196\"\u003e\u003ccode\u003ee6b83d3\u003c/code\u003e\u003c/a\u003e Normalize archive paths in dist-info (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/93baffeaa1773796d802bb761607a6466790dcba\"\u003e\u003ccode\u003e93baffe\u003c/code\u003e\u003c/a\u003e Skip no-longer-relevant test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/83f656836f4b6d8175172fcb8370fbee691f2bec\"\u003e\u003ccode\u003e83f6568\u003c/code\u003e\u003c/a\u003e Support subdirectories in .dist-info (fixes \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/247\"\u003e#247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/f918abd5d20879041704f9d719533b213a55ad48\"\u003e\u003ccode\u003ef918abd\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003etest_wheel.WheelTestCase.test_abi\u003c/code\u003e for freethreading (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/distlib/compare/0.3.9...0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gitpython` from 3.1.44 to 3.1.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gitpython-developers/GitPython/releases\"\u003egitpython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.45\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix various version-related CI breakages by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1987\"\u003egitpython-developers/GitPython#1987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo some CI cleanup to make reports clearer and future changes easier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1989\"\u003egitpython-developers/GitPython#1989\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAffirm that gitdb and smmap advisories can also be created by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1991\"\u003egitpython-developers/GitPython#1991\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix links to gitdb and smmap \u003ccode\u003eSECURITY.md\u003c/code\u003e files by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1992\"\u003egitpython-developers/GitPython#1992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest Python 3.13 regularly on Ubuntu and macOS on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1990\"\u003egitpython-developers/GitPython#1990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRepo.rev_parse: Handle \u003c!-- raw HTML omitted --\u003e^{commit} correctly by \u003ca href=\"https://github.com/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFuzzing: Fix Broken Fuzz Test for Git Submodule Handling by \u003ca href=\"https://github.com/DaveLak\"\u003e\u003ccode\u003e@​DaveLak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1997\"\u003egitpython-developers/GitPython#1997\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWork around Cygwin CI failure \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2004\"\u003e#2004\u003c/a\u003e, except for \u003ccode\u003etest_installation\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2007\"\u003egitpython-developers/GitPython#2007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark \u003ccode\u003etest_installation\u003c/code\u003e xfail on Cygwin CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2009\"\u003egitpython-developers/GitPython#2009\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eIndexFile._to_relative_path\u003c/code\u003e - fix case where absolute path gets stripped of trailing slash by \u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse WSL1 on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2010\"\u003egitpython-developers/GitPython#2010\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest free-threaded Python (but only on Linux) by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2011\"\u003egitpython-developers/GitPython#2011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse property decorator to support typing by \u003ca href=\"https://github.com/Andrej730\"\u003e\u003ccode\u003e@​Andrej730\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2015\"\u003egitpython-developers/GitPython#2015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some incorrect sphinx markups in the docstrings by \u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereplace quansight-labs/setup-python with actions/setup-python by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove type assertions from util.py by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecorrectly handle \u003ccode\u003euname-cmd\u003c/code\u003e that doesn't point to an executable file by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2026\"\u003egitpython-developers/GitPython#2026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse newer ruff style by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2031\"\u003egitpython-developers/GitPython#2031\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHave CodeQL scan GitHub Actions workflows as well as Python code by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2032\"\u003egitpython-developers/GitPython#2032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpecify explicit \u003ccode\u003econtents: read\u003c/code\u003e workflow permissions by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2033\"\u003egitpython-developers/GitPython#2033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GitConfigParser not removing quotes from values by \u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve quoted leading and trailing single-line config var whitespace by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2036\"\u003egitpython-developers/GitPython#2036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor Git.{AutoInterrupt,CatFileContentStream} nesting by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2037\"\u003egitpython-developers/GitPython#2037\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Git.{AutoInterrupt,CatFileContentStream} static typing by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2039\"\u003egitpython-developers/GitPython#2039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI \u003ccode\u003emypy\u003c/code\u003e command on free-threaded Python by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2040\"\u003egitpython-developers/GitPython#2040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit Cygwin CI into non-\u003ccode\u003eperformance\u003c/code\u003e and \u003ccode\u003eperformance\u003c/code\u003e test jobs by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2042\"\u003egitpython-developers/GitPython#2042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpress conditional \u003ccode\u003esetuptools\u003c/code\u003e requirement statically by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2043\"\u003egitpython-developers/GitPython#2043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ambiguous \u003ccode\u003e_safer_popen_windows\u003c/code\u003e comment by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2044\"\u003egitpython-developers/GitPython#2044\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eUSE_SHELL\u003c/code\u003e warning helper signature by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2045\"\u003egitpython-developers/GitPython#2045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest \u003ccode\u003eConfigParser\u003c/code\u003e with whitespace outside the value by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2046\"\u003egitpython-developers/GitPython#2046\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove explicit empty \u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e handling in ConfigParser by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2047\"\u003egitpython-developers/GitPython#2047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious style improvements by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2049\"\u003egitpython-developers/GitPython#2049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't remove quotes if \u003ccode\u003e\\\u003c/code\u003e or \u003ccode\u003e\u0026quot;\u003c/code\u003e are present inside by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2048\"\u003egitpython-developers/GitPython#2048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix updating submodules with relative urls by \u003ca href=\"https://github.com/david0\"\u003e\u003ccode\u003e@​david0\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2051\"\u003egitpython-developers/GitPython#2051\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun \u003ccode\u003ecat_file.py\u003c/code\u003e fixture without site customizations by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2052\"\u003egitpython-developers/GitPython#2052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Cygwin installation on CI for \u003ccode\u003epip\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2053\"\u003egitpython-developers/GitPython#2053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFail \u003ccode\u003etest_installation\u003c/code\u003e on warnings, and remove deprecated license classifier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2054\"\u003egitpython-developers/GitPython#2054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd clearer error version for unsupported index error by \u003ca href=\"https://github.com/tombedor\"\u003e\u003ccode\u003e@​tombedor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2055\"\u003egitpython-developers/GitPython#2055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix name collision by \u003ca href=\"https://github.com/NMertsch\"\u003e\u003ccode\u003e@​NMertsch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2060\"\u003egitpython-developers/GitPython#2060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow relative path url in submodules for submodule_update by \u003ca href=\"https://github.com/t-webber\"\u003e\u003ccode\u003e@​t-webber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2062\"\u003egitpython-developers/GitPython#2062\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/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\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/gitpython-developers/GitPython/commit/6ba2c0a2f9ee7feffd7e079621c4845820180c9a\"\u003e\u003ccode\u003e6ba2c0a\u003c/code\u003e\u003c/a\u003e Prepare a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/bbb3d00ac431dc7966f9715fb813792d234eca81\"\u003e\u003ccode\u003ebbb3d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2062\"\u003e#2062\u003c/a\u003e from t-webber/relative_path_submodules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/1ee1e781929074afd66bff1eae007bbee41d117e\"\u003e\u003ccode\u003e1ee1e78\u003c/code\u003e\u003c/a\u003e Add test case for cloning submodules with relative path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/ec2e2c8b894512e7a2364774d77cdd9db73f0566\"\u003e\u003ccode\u003eec2e2c8\u003c/code\u003e\u003c/a\u003e Allow relative path url in submodules for submodule_update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4d529b71905edae12e4699170f7d9e0a665801b5\"\u003e\u003ccode\u003e4d529b7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2060\"\u003e#2060\u003c/a\u003e from NMertsch/2023-fix-gitconfigparser-autodoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/80fd2c16211738156e65258381a17cdc429ddd08\"\u003e\u003ccode\u003e80fd2c1\u003c/code\u003e\u003c/a\u003e Don't treat sphinx warnings as errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/a4aadb0c04bd13af824c14dcc39f88345aa5c440\"\u003e\u003ccode\u003ea4aadb0\u003c/code\u003e\u003c/a\u003e Fix name collision\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4c7778a93134364cfff7b1597f9eda00a88323af\"\u003e\u003ccode\u003e4c7778a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2057\"\u003e#2057\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/5033c3ffd8917d835658c22e84bd86103a2ae52d\"\u003e\u003ccode\u003e5033c3f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2056\"\u003e#2056\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/496392b9bf781904421cbd171c0c5395a6fe330c\"\u003e\u003ccode\u003e496392b\u003c/code\u003e\u003c/a\u003e Bump cygwin/cygwin-install-action from 5 to 6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gitpython-developers/GitPython/compare/3.1.44...3.1.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `griffe` from 1.7.3 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/releases\"\u003egriffe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.11.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.0\"\u003e1.11.0\u003c/a\u003e - 2025-08-07\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.10.0...1.11.0\"\u003eCompare with 1.10.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd data to dict/json output (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/9731afcbeab377e7f3f69a0d18d19677e790072e\"\u003e9731afc\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.10.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.10.0\"\u003e1.10.0\u003c/a\u003e - 2025-08-06\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.9.0...1.10.0\"\u003eCompare with 1.9.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow adding \u003ccode\u003esys.path\u003c/code\u003e to search paths when temporary visiting/inspecting package (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/42983bc843fd9a63883e9c50ad5043b0f737b450\"\u003e42983bc\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.9.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.9.0\"\u003e1.9.0\u003c/a\u003e - 2025-07-28\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.8.0...1.9.0\"\u003eCompare with 1.8.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport PEP 695 generics (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/be28e9c9835a709fca0a78990c56e8d652a71a8c\"\u003ebe28e9c\u003c/a\u003e by Victor Westerhuis). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/342\"\u003eIssue-342\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/348\"\u003ePR-348\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e1.8.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.8.0\"\u003e1.8.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.7.3...1.8.0\"\u003eCompare with 1.7.3\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd method to functions and classes to build and return a stringified signature (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8ef1486e9b1f0872cca3b1cd2419144b702a0c1e\"\u003e8ef1486\u003c/a\u003e by ISOREX). \u003ca href=\"https://github.com/mkdocstrings/griffe/discussions/376\"\u003eDiscussion-376\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/381\"\u003ePR-381\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance Sphinx-style parameter parsing to handle invalid type info (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/cbce5a2c2429dc92e15ac3a8fe53db55825ebd6c\"\u003ecbce5a2\u003c/a\u003e by Edouard Choinière). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/396\"\u003ePR-396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParse Sphinx parameter types as expressions (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/70dda21d15dfdf5807dde370fb636d69eea6272b\"\u003e70dda21\u003c/a\u003e by Edouard Choinière). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/392\"\u003ePR-392\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid SyntaxError when loading modules encoded in UTF8 with BOM (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/b3461901ae08204ea6184025a006f5d34152d30d\"\u003eb346190\u003c/a\u003e by John Hennig). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/386\"\u003eIssue-386\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/387\"\u003ePR-387\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrectly parenthesize expressions (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/a8c5585c8a45a4d6b67bd5dc36d7054478d3873d\"\u003ea8c5585\u003c/a\u003e by Abraham Cheung). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/389\"\u003ePR-389\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBe more consistent regarding not overriding submodules with aliases (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/be1963cca6d7d49bcc41fdf05570b1bfba934330\"\u003ebe1963c\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eExprName.parent\u003c/code\u003e to be of type \u003ccode\u003egriffe.Function\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/acafbd8b6d97fe8370f3eb730e2154e19b2c1a54\"\u003eacafbd8\u003c/a\u003e by Edouard Choinière). \u003ca href=\"https://github.com/mkdocstrings/griffe/discussions/391\"\u003eIssue-391\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/395\"\u003ePR-395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize labels for attributes (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/1b376cd39ce99730910d8344abbfd5c53ce28300\"\u003e1b376cd\u003c/a\u003e by Timothée Mazzucotelli).\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/mkdocstrings/griffe/blob/main/CHANGELOG.md\"\u003egriffe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.11.0\"\u003e1.11.0\u003c/a\u003e - 2025-08-07\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.10.0...1.11.0\"\u003eCompare with 1.10.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd data to dict/json output (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/9731afcbeab377e7f3f69a0d18d19677e790072e\"\u003e9731afc\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.10.0\"\u003e1.10.0\u003c/a\u003e - 2025-08-06\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.9.0...1.10.0\"\u003eCompare with 1.9.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow adding \u003ccode\u003esys.path\u003c/code\u003e to search paths when temporary visiting/inspecting package (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/42983bc843fd9a63883e9c50ad5043b0f737b450\"\u003e42983bc\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.9.0\"\u003e1.9.0\u003c/a\u003e - 2025-07-28\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.8.0...1.9.0\"\u003eCompare with 1.8.0\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport PEP 695 generics (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/be28e9c9835a709fca0a78990c56e8d652a71a8c\"\u003ebe28e9c\u003c/a\u003e by Victor Westerhuis). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/342\"\u003eIssue-342\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/348\"\u003ePR-348\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.8.0\"\u003e1.8.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.7.3...1.8.0\"\u003eCompare with 1.7.3\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd method to functions and classes to build and return a stringified signature (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8ef1486e9b1f0872cca3b1cd2419144b702a0c1e\"\u003e8ef1486\u003c/a\u003e by ISOREX). \u003ca href=\"https://github.com/mkdocstrings/griffe/discussions/376\"\u003eDiscussion-376\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/381\"\u003ePR-381\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance Sphinx-style parameter parsing to handle invalid type info (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/cbce5a2c2429dc92e15ac3a8fe53db55825ebd6c\"\u003ecbce5a2\u003c/a\u003e by Edouard Choinière). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/396\"\u003ePR-396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParse Sphinx parameter types as expressions (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/70dda21d15dfdf5807dde370fb636d69eea6272b\"\u003e70dda21\u003c/a\u003e by Edouard Choinière). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/392\"\u003ePR-392\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid SyntaxError when loading modules encoded in UTF8 with BOM (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/b3461901ae08204ea6184025a006f5d34152d30d\"\u003eb346190\u003c/a\u003e by John Hennig). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/386\"\u003eIssue-386\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/387\"\u003ePR-387\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrectly parenthesize expressions (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/a8c5585c8a45a4d6b67bd5dc36d7054478d3873d\"\u003ea8c5585\u003c/a\u003e by Abraham Cheung). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/389\"\u003ePR-389\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBe more consistent regarding not overriding submodules with aliases (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/be1963cca6d7d49bcc41fdf05570b1bfba934330\"\u003ebe1963c\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eExprName.parent\u003c/code\u003e to be of type \u003ccode\u003egriffe.Function\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/acafbd8b6d97fe8370f3eb730e2154e19b2c1a54\"\u003eacafbd8\u003c/a\u003e by Edouard Choinière). \u003ca href=\"https://github.com/mkdocstrings/griffe/discussions/391\"\u003eIssue-391\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/395\"\u003ePR-395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize labels for attributes (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/1b376cd39ce99730910d8344abbfd5c53ce28300\"\u003e1b376cd\u003c/a\u003e by Timothée Mazzucotelli).\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/mkdocstrings/griffe/commit/b3cbedb59fab118b81086ee33bdd0745fa70f4a3\"\u003e\u003ccode\u003eb3cbedb\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/9731afcbeab377e7f3f69a0d18d19677e790072e\"\u003e\u003ccode\u003e9731afc\u003c/code\u003e\u003c/a\u003e feat: Add data to dict/json output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/52c3dc87fe8901deb6d6b857a20edb2cd7d5d415\"\u003e\u003ccode\u003e52c3dc8\u003c/code\u003e\u003c/a\u003e style: Format\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/444913331cdec17fb10bb6396d7fbd97861af900\"\u003e\u003ccode\u003e4449133\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.10.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/42983bc843fd9a63883e9c50ad5043b0f737b450\"\u003e\u003ccode\u003e42983bc\u003c/code\u003e\u003c/a\u003e feat: Allow adding \u003ccode\u003esys.path\u003c/code\u003e to search paths when temporary visiting/inspect...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/85dd76c0248efc453b78edf986f79e2a26632f89\"\u003e\u003ccode\u003e85dd76c\u003c/code\u003e\u003c/a\u003e docs: Add pages to llms.txt\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/032779aa3bdfbdaeb6411da4f8853318ff2e8424\"\u003e\u003ccode\u003e032779a\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/be28e9c9835a709fca0a78990c56e8d652a71a8c\"\u003e\u003ccode\u003ebe28e9c\u003c/code\u003e\u003c/a\u003e feat: Support PEP 695 generics\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/27a385b435d3c09eedeffe980416f7012e65ed6f\"\u003e\u003ccode\u003e27a385b\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8ef1486e9b1f0872cca3b1cd2419144b702a0c1e\"\u003e\u003ccode\u003e8ef1486\u003c/code\u003e\u003c/a\u003e feat: Add method to functions and classes to build and return a stringified s...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.7.3...1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-resources` from 5.0.7 to 6.5.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_resources/blob/main/NEWS.rst\"\u003eimportlib-resources's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.5.2\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced reference to typing_extensions with stdlib Literal. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/323\"\u003e#323\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.5.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated \u003ccode\u003eTraversable.read_text()\u003c/code\u003e to reflect the \u003ccode\u003eerrors\u003c/code\u003e\u003ccode\u003epython/cpython#127012\u003c/code\u003e\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/321\"\u003e#321\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.5.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd type annotations for Traversable.open. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire Python 3.9 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.4.5\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOmit sentinel values from a namespace path. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/311\"\u003e#311\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.4.4\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch1\u003ev6.4.3\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWhen inferring the caller in \u003ccode\u003efiles()\u003c/code\u003e\u003ccode\u003epython/cpython#123085\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/python/importlib_resources/commit/7d3b2bfa1d8c53ecb64246ba16d8c632f8fcb6bf\"\u003e\u003ccode\u003e7d3b2bf\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/14408098293bd6bc68eca7b5a53333729a567e57\"\u003e\u003ccode\u003e1440809\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/324\"\u003e#324\u003c/a\u003e from pstjohn/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/6569354ad2cf38b202fdeaf11b49e639b1a00fbc\"\u003e\u003ccode\u003e6569354\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/6c1bc3cdb8f8a7d29252becc201508712040facc\"\u003e\u003ccode\u003e6c1bc3c\u003c/code\u003e\u003c/a\u003e Rely on Literal from stdlib.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/883380a5fcc482b67014b90b9aa7250d868c795a\"\u003e\u003ccode\u003e883380a\u003c/code\u003e\u003c/a\u003e Update pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/a61a948b6293ed46972909652909e2540242f197\"\u003e\u003ccode\u003ea61a948\u003c/code\u003e\u003c/a\u003e Add typing-extensions as a dependency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/78c4bda73c5d671cbbcfdf1430b6f2da03aeb04f\"\u003e\u003ccode\u003e78c4bda\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/10d87bf85a404e9fb9271f8f353ad0452c0cc631\"\u003e\u003ccode\u003e10d87bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/321\"\u003e#321\u003c/a\u003e from kurtmckee/add-readtext-errors-parameter-cpython-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/9a872e5dbceff32260e8ff19d039236304ee150c\"\u003e\u003ccode\u003e9a872e5\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/cf269ce50f496671f3b7fbc5e6292946ecc70e7d\"\u003e\u003ccode\u003ecf269ce\u003c/code\u003e\u003c/a\u003e Replace unreachable block with simple assertion. Fixes diffcov failure.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_resources/compare/v5.0.7...v6.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jsonschema` from 4.24.0 to 4.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-jsonschema/jsonschema/releases\"\u003ejsonschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.25.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eiri\u003c/code\u003e and \u003ccode\u003eiri-reference\u003c/code\u003e formats to the \u003ccode\u003eformat-nongpl\u003c/code\u003e extra by \u003ca href=\"https://github.com/jkowalleck\"\u003e\u003ccode\u003e@​jkowalleck\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1388\"\u003epython-jsonschema/jsonschema#1388\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/jkowalleck\"\u003e\u003ccode\u003e@​jkowalleck\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1388\"\u003epython-jsonschema/jsonschema#1388\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-jsonschema/jsonschema/compare/v4.24.1...v4.25.0\"\u003ehttps://github.com/python-jsonschema/jsonschema/compare/v4.24.1...v4.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.24.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUnambiguously quote and escape properties in JSON path rendering by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1390\"\u003epython-jsonschema/jsonschema#1390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop python\u0026lt;3.9 backports by \u003ca href=\"https://github.com/hackowitz-af\"\u003e\u003ccode\u003e@​hackowitz-af\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1367\"\u003epython-jsonschema/jsonschema#1367\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/hackowitz-af\"\u003e\u003ccode\u003e@​hackowitz-af\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1367\"\u003epython-jsonschema/jsonschema#1367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1390\"\u003epython-jsonschema/jsonschema#1390\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-jsonschema/jsonschema/compare/v4.24.0...v4.24.1\"\u003ehttps://github.com/python-jsonschema/jsonschema/compare/v4.24.0...v4.24.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/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst\"\u003ejsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev4.25.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eiri\u003c/code\u003e and \u003ccode\u003eiri-reference\u003c/code\u003e formats to the \u003ccode\u003eformat-nongpl\u003c/code\u003e extra via the MIT-licensed \u003ccode\u003erfc3987-syntax\u003c/code\u003e.\nThey were alread supported by the \u003ccode\u003eformat\u003c/code\u003e extra. (\u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1388\"\u003e#1388\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev4.24.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eProperly escape segments in \u003ccode\u003eValidationError.json_path\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/139\"\u003e#139\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-jsonschema/jsonschema/commit/9889f69eb5ccb532e2147465697f30c82b2a8bb0\"\u003e\u003ccode\u003e9889f69\u003c/code\u003e\u003c/a\u003e Add the new functionality to the CHANGELOG.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/18855d01f7839083efc5bad1ca67688a7177be42\"\u003e\u003ccode\u003e18855d0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1388\"\u003e#1388\u003c/a\u003e from jkowalleck/feat/validate_rfc3987_non-gpl/rfc398...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/1a6067fc441177d1911446c7325eee7c776007ae\"\u003e\u003ccode\u003e1a6067f\u003c/code\u003e\u003c/a\u003e adjust rfc3987-syntax min-version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/6aadb8b7ad7f9d5eee58eed73df5a7d865dad34c\"\u003e\u003ccode\u003e6aadb8b\u003c/code\u003e\u003c/a\u003e Add the fix to the CHANGELOG.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/785741e73b63d97eda3973442b109df3f8aa5892\"\u003e\u003ccode\u003e785741e\u003c/code\u003e\u003c/a\u003e Add a dependency group for our new test dependency.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/dc547341f2a3304d73114b1d18da063be7fc43e0\"\u003e\u003ccode\u003edc54734\u003c/code\u003e\u003c/a\u003e Add a uv.lock.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/b5572c9971358be547bbcf614a304f85886c1627\"\u003e\u003ccode\u003eb5572c9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1390\"\u003e#1390\u003c/a\u003e from kurtmckee/fix-json_path-str-rendering\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/4cf45b95de90191b02396bd04d41760d9798ecd6\"\u003e\u003ccode\u003e4cf45b9\u003c/code\u003e\u003c/a\u003e Feedback: Use jsonpath-ng to re-parse the rendered JSON path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/2680f6ab44d6fe36d321fef6ee626608a5f0ec7a\"\u003e\u003ccode\u003e2680f6a\u003c/code\u003e\u003c/a\u003e Feedback: Make a compiled regex pattern private\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/9a957d770d6e63646f4fc874bf8df6be4593f8c8\"\u003e\u003ccode\u003e9a957d7\u003c/code\u003e\u003c/a\u003e Unambiguously quote and escape properties in JSON path rendering\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-jsonschema/jsonschema/compare/v4.24.0...v4.25.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markdown` from 3.8 to 3.8.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.8.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.8.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure incomplete markup declaration in raw HTML doesn't crash parser (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1534\"\u003e#1534\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed dropped content in \u003ccode\u003emd_in_html\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1526\"\u003e#1526\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed HTML handling corner case that prevented some content from not being rendered (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1528\"\u003e#1528\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/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.1] - 2025-06-18\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure incomplete markup declaration in raw HTML doesn't crash parser (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1534\"\u003e#1534\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed dropped content in \u003ccode\u003emd_in_html\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1526\"\u003e#1526\u003c/a\u003e).\u003c/li\u003e\n...\n\n_Description has been truncated_","html_url":"https://github.com/pycontribs/subprocess-tee/pull/185","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycontribs%2Fsubprocess-tee/issues/185","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/185/packages"}},{"old_version":"2.4.0","new_version":"2.5.0","update_type":"minor","path":null,"pr_created_at":"2025-07-27T22:38:45.000Z","version_change":"2.4.0 → 2.5.0","issue":{"uuid":"2698598126","node_id":"PR_kwDOEkpJIs6g2Vbu","number":184,"state":"closed","title":"Bump the dependencies group across 1 directory with 23 updates","user":"dependabot[bot]","labels":["skip-changelog","dependencies","dependabot-deps-updates"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2025-08-10T22:42:40.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-07-27T22:38:45.000Z","updated_at":"2025-08-10T22:42:40.000Z","time_to_close":1209835,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":23,"packages":[{"name":"mkdocstrings","old_version":"0.29.1","new_version":"0.30.0","repository_url":"https://github.com/mkdocstrings/mkdocstrings"},{"name":"backrefs","old_version":"5.8","new_version":"5.9","repository_url":"https://github.com/facelessuser/backrefs"},{"name":"bracex","old_version":"2.5.post1","new_version":"2.6","repository_url":"https://github.com/facelessuser/bracex"},{"name":"cachetools","old_version":"6.0.0","new_version":"6.1.0","repository_url":"https://github.com/tkem/cachetools"},{"name":"certifi","old_version":"2025.6.15","new_version":"2025.7.14","repository_url":"https://github.com/certifi/python-certifi"},{"name":"coverage","old_version":"7.9.1","new_version":"7.10.1","repository_url":"https://github.com/nedbat/coveragepy"},{"name":"cryptography","old_version":"45.0.4","new_version":"45.0.5","repository_url":"https://github.com/pyca/cryptography"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"gitpython","old_version":"3.1.44","new_version":"3.1.45","repository_url":"https://github.com/gitpython-developers/GitPython"},{"name":"griffe","old_version":"1.7.3","new_version":"1.8.0","repository_url":"https://github.com/mkdocstrings/griffe"},{"name":"importlib-resources","old_version":"5.0.7","new_version":"6.5.2","repository_url":"https://github.com/python/importlib_resources"},{"name":"jsonschema","old_version":"4.24.0","new_version":"4.25.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"markdown","old_version":"3.8","new_version":"3.8.2","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"mkdocs-material","old_version":"9.6.14","new_version":"9.6.16","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"pillow","old_version":"11.2.1","new_version":"11.3.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pymdown-extensions","old_version":"10.15","new_version":"10.16","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"pytest","old_version":"8.4.0","new_version":"8.4.1","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-xdist","old_version":"3.7.0","new_version":"3.8.0","repository_url":"https://github.com/pytest-dev/pytest-xdist"},{"name":"rich","old_version":"14.0.0","new_version":"14.1.0","repository_url":"https://github.com/Textualize/rich"},{"name":"rpds-py","old_version":"0.25.1","new_version":"0.26.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"urllib3","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"wcmatch","old_version":"10.0","new_version":"10.1","repository_url":"https://github.com/facelessuser/wcmatch"}],"path":null,"ecosystem":"conda"},"body":"Bumps the dependencies group with 23 updates in the /.config directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings) | `0.29.1` | `0.30.0` |\n| [backrefs](https://github.com/facelessuser/backrefs) | `5.8` | `5.9` |\n| [bracex](https://github.com/facelessuser/bracex) | `2.5.post1` | `2.6` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.0.0` | `6.1.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2025.6.15` | `2025.7.14` |\n| [coverage](https://github.com/nedbat/coveragepy) | `7.9.1` | `7.10.1` |\n| [cryptography](https://github.com/pyca/cryptography) | `45.0.4` | `45.0.5` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [gitpython](https://github.com/gitpython-developers/GitPython) | `3.1.44` | `3.1.45` |\n| [griffe](https://github.com/mkdocstrings/griffe) | `1.7.3` | `1.8.0` |\n| [importlib-resources](https://github.com/python/importlib_resources) | `5.0.7` | `6.5.2` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.24.0` | `4.25.0` |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.8` | `3.8.2` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.6.14` | `9.6.16` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.2.1` | `11.3.0` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.15` | `10.16` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.0` | `8.4.1` |\n| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.7.0` | `3.8.0` |\n| [rich](https://github.com/Textualize/rich) | `14.0.0` | `14.1.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.25.1` | `0.26.0` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.4.0` | `2.5.0` |\n| [wcmatch](https://github.com/facelessuser/wcmatch) | `10.0` | `10.1` |\n\n\nUpdates `mkdocstrings` from 0.29.1 to 0.30.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases\"\u003emkdocstrings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.30.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\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/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md\"\u003emkdocstrings's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/releases/tag/0.30.0\"\u003e0.30.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003eCompare with 0.29.1\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip registration in local inventory (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003ef856160\u003c/a\u003e by Bartosz Sławecki). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/issues/671\"\u003eIssue-671\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/774\"\u003ePR-774\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd I18N support (translations) (\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e2b4ed54\u003c/a\u003e by Nyuan Zhang). \u003ca href=\"https://redirect.github.com/mkdocstrings/mkdocstrings/pull/645\"\u003ePR-645\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\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/mkdocstrings/mkdocstrings/commit/2be445f054c1191d308af7ee0cc881e359f5a4c7\"\u003e\u003ccode\u003e2be445f\u003c/code\u003e\u003c/a\u003e chore: Prepare release 0.30.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/f856160b03b2c27e1d75fdf4f315c273cb9d9247\"\u003e\u003ccode\u003ef856160\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003edata-skip-inventory\u003c/code\u003e boolean attribute for elements to skip regist...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/2b4ed541bc707e55d959092d950ebeecc4fbd136\"\u003e\u003ccode\u003e2b4ed54\u003c/code\u003e\u003c/a\u003e feat: Add I18N support (translations)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/51f217f38af9475415f758866697158d9010967d\"\u003e\u003ccode\u003e51f217f\u003c/code\u003e\u003c/a\u003e chore: Template upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/b1da3d02c4f432f603cbb0004bb35099327706db\"\u003e\u003ccode\u003eb1da3d0\u003c/code\u003e\u003c/a\u003e ci: Ignore Ruff warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/commit/d5bf4e1ed0370853f968b210ad77913faf106eed\"\u003e\u003ccode\u003ed5bf4e1\u003c/code\u003e\u003c/a\u003e docs: Update link to YAML idiosyncrasies\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mkdocstrings/mkdocstrings/compare/0.29.1...0.30.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `backrefs` from 5.8 to 5.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/backrefs/releases\"\u003ebackrefs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eENHANCE\u003c/strong\u003e: Switch to deploying with PyPI's \u0026quot;Trusted Publisher\u0026quot;.\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/facelessuser/backrefs/commit/8b3a24bfc1cacde6fc9ab4edfaed0f5a9206c554\"\u003e\u003ccode\u003e8b3a24b\u003c/code\u003e\u003c/a\u003e Fix deploy logic\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/3e9376b5b3a8393d05cfffdb49b88f9c9ec847f5\"\u003e\u003ccode\u003e3e9376b\u003c/code\u003e\u003c/a\u003e Don't exclude testing Py 3.14 on Windows\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/a6232df1af245af89ba06cb8806e42d86be2b447\"\u003e\u003ccode\u003ea6232df\u003c/code\u003e\u003c/a\u003e Add license link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/400547889cab46e5457f209723730b25dea51813\"\u003e\u003ccode\u003e4005478\u003c/code\u003e\u003c/a\u003e Remove discord link\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/4a4fe480b16f680f506331690b5fee1efbccf909\"\u003e\u003ccode\u003e4a4fe48\u003c/code\u003e\u003c/a\u003e Update to officially support python 3.14 and use trusted publisher (\u003ca href=\"https://redirect.github.com/facelessuser/backrefs/issues/190\"\u003e#190\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/7b65b0bdd670f002e8b7c8a7f3cf0cbdf08db6ee\"\u003e\u003ccode\u003e7b65b0b\u003c/code\u003e\u003c/a\u003e Docs: fix typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/0acee11cc1617a310a6b4e60929fc32ae4983e22\"\u003e\u003ccode\u003e0acee11\u003c/code\u003e\u003c/a\u003e Remove Py 3.7 Unicode data\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/21b34bde08b4b5d788e6aaf39ca49244999e2918\"\u003e\u003ccode\u003e21b34bd\u003c/code\u003e\u003c/a\u003e Fix build badge status\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/cdb244d0a2f86286543f4bff303e6debc6615734\"\u003e\u003ccode\u003ecdb244d\u003c/code\u003e\u003c/a\u003e Bump copyright year\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/backrefs/commit/242d3d4a9d61013b6f159e652d225ebb1edfb5ec\"\u003e\u003ccode\u003e242d3d4\u003c/code\u003e\u003c/a\u003e Fix readme example\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facelessuser/backrefs/compare/5.8...5.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `bracex` from 2.5.post1 to 2.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/bracex/releases\"\u003ebracex's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add support for Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/6d109c55372f0d5086adb7cf84a951cc06391a69\"\u003e\u003ccode\u003e6d109c5\u003c/code\u003e\u003c/a\u003e Add trusted publishing and support for Python 3.14 (\u003ca href=\"https://redirect.github.com/facelessuser/bracex/issues/44\"\u003e#44\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/c14d46fb495a8fdcd0ec51d4dd42aa587807407d\"\u003e\u003ccode\u003ec14d46f\u003c/code\u003e\u003c/a\u003e Add security policy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/bracex/commit/14645af4bf4de0e1abe4fd6c29bf98871f549273\"\u003e\u003ccode\u003e14645af\u003c/code\u003e\u003c/a\u003e Typos: remove duplicate words\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/facelessuser/bracex/compare/2.5.post1...2.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cachetools` from 6.0.0 to 6.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tkem/cachetools/blob/master/CHANGELOG.rst\"\u003ecachetools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.1.0 (2025-06-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eImprove \u003ccode\u003eLFUCache\u003c/code\u003e insertion performance by switching to an\nimplementation based on the \u003ccode\u003ecacheing \u0026lt;https://pypi.org/project/cacheing/\u0026gt;\u003c/code\u003e_ library.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate CI environment.\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/tkem/cachetools/commit/bb6d71a745785429b14aae30b7752f4765dc35c3\"\u003e\u003ccode\u003ebb6d71a\u003c/code\u003e\u003c/a\u003e Release v6.1.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/77a9c59e3324496a79e6c4d5a7b5bfdb9a7f7f42\"\u003e\u003ccode\u003e77a9c59\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/tkem/cachetools/issues/260\"\u003e#260\u003c/a\u003e: Use LFUCache implementation based on Blake Reid's \u0026quot;cacheing\u0026quot; library.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/b1d4eb2972ca8f0ab49e22eae3bb47c1eb8b552c\"\u003e\u003ccode\u003eb1d4eb2\u003c/code\u003e\u003c/a\u003e Bump codecov/codecov-action from 5.4.2 to 5.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tkem/cachetools/commit/820b154494e91aa5bfe63a3fa2033c63a9c84603\"\u003e\u003ccode\u003e820b154\u003c/code\u003e\u003c/a\u003e Refactor \u003ca href=\"https://github.com/cachedmethod\"\u003e\u003ccode\u003e@​cachedmethod\u003c/code\u003e\u003c/a\u003e unit tests.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/tkem/cachetools/compare/v6.0.0...v6.1.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2025.6.15 to 2025.7.14\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/ddd90c6d726f174c1e5820379dac0f2a8fc723a1\"\u003e\u003ccode\u003eddd90c6\u003c/code\u003e\u003c/a\u003e 2025.07.14 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/359\"\u003e#359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/d905221c916d51077f5c8071a0f7aa2df2a37c52\"\u003e\u003ccode\u003ed905221\u003c/code\u003e\u003c/a\u003e 2025.07.09 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/358\"\u003e#358\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2025.06.15...2025.07.14\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.9.1 to 7.10.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nedbat/coveragepy/blob/master/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.10.1 — 2025-07-27\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the exclusion for \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e was wrong: it marked the branch\nas partial, but it should have been a line exclusion so the entire clause\nwould be excluded. Improves \u003ccode\u003eissue 831\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: changed where .pth files are written for \u003ccode\u003epatch = subprocess\u003c/code\u003e, closing\n\u003ccode\u003eissue 2006\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2006: \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2006\"\u003enedbat/coveragepy#2006\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-10-0:\u003c/p\u003e\n\u003ch2\u003eVersion 7.10.0 — 2025-07-24\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eA new configuration option: \u0026quot;:ref:\u003ccode\u003econfig_run_patch\u003c/code\u003e\u0026quot; specifies named patches\nto work around some limitations in coverage measurement.  These patches are\navailable:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epatch = _exit\u003c/code\u003e lets coverage save its data even when :func:\u003ccode\u003eos._exit() \u0026lt;python:os._exit\u0026gt;\u003c/code\u003e is used to abruptly end the process.  This closes\nlong-standing \u003ccode\u003eissue 310\u003c/code\u003e_ as well as its duplicates: \u003ccode\u003eissue 312\u003c/code\u003e\u003cem\u003e, \u003ccode\u003eissue 1673\u003c/code\u003e\u003c/em\u003e, \u003ccode\u003eissue 1845\u003c/code\u003e\u003cem\u003e, and \u003ccode\u003eissue 1941\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epatch = subprocess\u003c/code\u003e measures coverage in Python subprocesses created\nwith :mod:\u003ccode\u003esubprocess\u003c/code\u003e, :func:\u003ccode\u003eos.system\u003c/code\u003e, or one of the :func:\u003ccode\u003eexecv \u0026lt;python:os.execl\u0026gt;\u003c/code\u003e or :func:\u003ccode\u003espawnv \u0026lt;python:os.spawnl\u0026gt;\u003c/code\u003e family of\nfunctions. Closes old \u003ccode\u003eissue 367\u003c/code\u003e_ and duplicate \u003ccode\u003eissue 378\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003epatch = execv\u003c/code\u003e adjusts the :func:\u003ccode\u003eexecv \u0026lt;python:os.execl\u0026gt;\u003c/code\u003e family of\nfunctions to save coverage data before ending the current program and\nstarting the next. Not available on Windows. Closes \u003ccode\u003eissue 43\u003c/code\u003e_ after 15\nyears!\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eThe HTML report now dimly colors subsequent lines in multi-line statements.\nThey used to have no color.  This gives a better indication of the amount of\ncode missing in the report.  Closes \u003ccode\u003eissue 1308\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eTwo new exclusion patterns are part of the defaults: \u003ccode\u003e...\u003c/code\u003e is automatically\nexcluded as a line and \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e is excluded as a branch.  Closes\n\u003ccode\u003eissue 831\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eA new command-line option: \u003ccode\u003e--save-signal=USR1\u003c/code\u003e specifies a signal that\ncoverage.py will listen for.  When the signal is sent, the coverage data will\nbe saved.  This makes it possible to save data from within long-running\nprocesses.  Thanks, \u003ccode\u003eArkady Gilinsky \u0026lt;pull 1998_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/7fdcbeb70255447199fb4501707aac39840ffba4\"\u003e\u003ccode\u003e7fdcbeb\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/c9e962586e30bdcc7e862dc12b8b4b7790cd8372\"\u003e\u003ccode\u003ec9e9625\u003c/code\u003e\u003c/a\u003e docs: prep for 7.10.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/e8193ff919502be0a28d0922e4fd8e6eccc70e3c\"\u003e\u003ccode\u003ee8193ff\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/9aad22a57a7163bf7e8d593112715c409193c643\"\u003e\u003ccode\u003e9aad22a\u003c/code\u003e\u003c/a\u003e test: improve the \u003ccode\u003eif TYPE_CHECKING:\u003c/code\u003e exclusion test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/1e2f41a756191898d4f1936fa01165d52ec9e624\"\u003e\u003ccode\u003e1e2f41a\u003c/code\u003e\u003c/a\u003e fix: excluding TYPE_CHECKING should have been the line not the branch\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/2134e57af92b95b2ef883e756bb0d6b926b6eac1\"\u003e\u003ccode\u003e2134e57\u003c/code\u003e\u003c/a\u003e fix: use getsitepackages for writing .pth files.  \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2006\"\u003e#2006\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a4300a7e0f84683d92971ed0b8ac16e6c552f710\"\u003e\u003ccode\u003ea4300a7\u003c/code\u003e\u003c/a\u003e test: signal statuses are mysterious. \u003ca href=\"https://redirect.github.com/nedbat/coveragepy/issues/2008\"\u003e#2008\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/2fd496182f9043e8e8471e58ca26c81a44a7b9a7\"\u003e\u003ccode\u003e2fd4961\u003c/code\u003e\u003c/a\u003e docs: update the man page, for once\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/a13607f5da807a8ef5b483ce27c5e4779d1d4584\"\u003e\u003ccode\u003ea13607f\u003c/code\u003e\u003c/a\u003e build: comment_on_fixes should show html urls\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nedbat/coveragepy/commit/0f00d49a594c2dc3576714a0669fbdbcc4dd4c7e\"\u003e\u003ccode\u003e0f00d49\u003c/code\u003e\u003c/a\u003e build: bump version to 7.10.1\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nedbat/coveragepy/compare/7.9.1...7.10.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 45.0.4 to 45.0.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e45.0.5 - 2025-07-02\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.1.\n\u003cp\u003e.. _v45-0-4:\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/3e53a233b65123d2a836b58ccdc427ed5207f92b\"\u003e\u003ccode\u003e3e53a23\u003c/code\u003e\u003c/a\u003e Bump for 45.0.5 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/13135\"\u003e#13135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/45.0.4...45.0.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `distlib` from 0.3.9 to 0.4.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/distlib/blob/master/CHANGES.rst\"\u003edistlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e0.4.0\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nReleased: 2025-07-17\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003emarkers\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd the \u003ccode\u003einterpret_parsed\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003ewheel\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/238\"\u003e#238\u003c/a\u003e: Add build tag to wheel metadata if specified.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/243\"\u003e#243\u003c/a\u003e: Update to support free-threading version of Python (3.13t).\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e: Support subdirectories in the dist-info directory. Thanks to Pieter P for the patch.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e: Fix path normalisation issue caused by the fix for \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eMove import in script wrapper to \u0026quot;if \u003cstrong\u003ename\u003c/strong\u003e == 'main'\u0026quot; clause.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003etests\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/245\"\u003e#245\u003c/a\u003e: Skip test_package_data if a SKIP_EXT_PACKAGE_DATA environment variable is present.\n\u003c/code\u003e\u003c/pre\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/aff2cbbc4e8a87b9440cb93472789a213813dbd6\"\u003e\u003ccode\u003eaff2cbb\u003c/code\u003e\u003c/a\u003e Finalise version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/3716c4bcccac19d0c0f2ce0d1272dd33996381b5\"\u003e\u003ccode\u003e3716c4b\u003c/code\u003e\u003c/a\u003e Update change log, widen exception catching in test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/660bd337bf3217a7bd907c2ba8a2f8dd291ac793\"\u003e\u003ccode\u003e660bd33\u003c/code\u003e\u003c/a\u003e Changes for 0.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/56b4ad938455048fc79e599d369e02a1414e9946\"\u003e\u003ccode\u003e56b4ad9\u003c/code\u003e\u003c/a\u003e Guard script wrapper entrypoint import with if \u003cstrong\u003emain\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/242\"\u003e#242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/fe573669087cb1109fb0cc249bf0e06a5461324c\"\u003e\u003ccode\u003efe57366\u003c/code\u003e\u003c/a\u003e docs: update coverage results link (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/250\"\u003e#250\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/c3286e508bb60cd2337408d88eb614a93b612d8c\"\u003e\u003ccode\u003ec3286e5\u003c/code\u003e\u003c/a\u003e Temporarily exclude 3.13t on windows-latest.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/e6b83d3b0eeb11d8e7b053f11139d15aab89d196\"\u003e\u003ccode\u003ee6b83d3\u003c/code\u003e\u003c/a\u003e Normalize archive paths in dist-info (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/248\"\u003e#248\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/93baffeaa1773796d802bb761607a6466790dcba\"\u003e\u003ccode\u003e93baffe\u003c/code\u003e\u003c/a\u003e Skip no-longer-relevant test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/83f656836f4b6d8175172fcb8370fbee691f2bec\"\u003e\u003ccode\u003e83f6568\u003c/code\u003e\u003c/a\u003e Support subdirectories in .dist-info (fixes \u003ca href=\"https://redirect.github.com/pypa/distlib/issues/246\"\u003e#246\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/247\"\u003e#247\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/distlib/commit/f918abd5d20879041704f9d719533b213a55ad48\"\u003e\u003ccode\u003ef918abd\u003c/code\u003e\u003c/a\u003e Update \u003ccode\u003etest_wheel.WheelTestCase.test_abi\u003c/code\u003e for freethreading (\u003ca href=\"https://redirect.github.com/pypa/distlib/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/distlib/compare/0.3.9...0.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gitpython` from 3.1.44 to 3.1.45\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/gitpython-developers/GitPython/releases\"\u003egitpython's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.45\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix various version-related CI breakages by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1987\"\u003egitpython-developers/GitPython#1987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo some CI cleanup to make reports clearer and future changes easier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1989\"\u003egitpython-developers/GitPython#1989\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAffirm that gitdb and smmap advisories can also be created by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1991\"\u003egitpython-developers/GitPython#1991\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix links to gitdb and smmap \u003ccode\u003eSECURITY.md\u003c/code\u003e files by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1992\"\u003egitpython-developers/GitPython#1992\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest Python 3.13 regularly on Ubuntu and macOS on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1990\"\u003egitpython-developers/GitPython#1990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRepo.rev_parse: Handle \u003c!-- raw HTML omitted --\u003e^{commit} correctly by \u003ca href=\"https://github.com/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFuzzing: Fix Broken Fuzz Test for Git Submodule Handling by \u003ca href=\"https://github.com/DaveLak\"\u003e\u003ccode\u003e@​DaveLak\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1997\"\u003egitpython-developers/GitPython#1997\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWork around Cygwin CI failure \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2004\"\u003e#2004\u003c/a\u003e, except for \u003ccode\u003etest_installation\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2007\"\u003egitpython-developers/GitPython#2007\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMark \u003ccode\u003etest_installation\u003c/code\u003e xfail on Cygwin CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2009\"\u003egitpython-developers/GitPython#2009\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eIndexFile._to_relative_path\u003c/code\u003e - fix case where absolute path gets stripped of trailing slash by \u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse WSL1 on CI by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2010\"\u003egitpython-developers/GitPython#2010\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest free-threaded Python (but only on Linux) by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2011\"\u003egitpython-developers/GitPython#2011\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse property decorator to support typing by \u003ca href=\"https://github.com/Andrej730\"\u003e\u003ccode\u003e@​Andrej730\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2015\"\u003egitpython-developers/GitPython#2015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix some incorrect sphinx markups in the docstrings by \u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereplace quansight-labs/setup-python with actions/setup-python by \u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eremove type assertions from util.py by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecorrectly handle \u003ccode\u003euname-cmd\u003c/code\u003e that doesn't point to an executable file by \u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2026\"\u003egitpython-developers/GitPython#2026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse newer ruff style by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2031\"\u003egitpython-developers/GitPython#2031\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHave CodeQL scan GitHub Actions workflows as well as Python code by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2032\"\u003egitpython-developers/GitPython#2032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpecify explicit \u003ccode\u003econtents: read\u003c/code\u003e workflow permissions by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2033\"\u003egitpython-developers/GitPython#2033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GitConfigParser not removing quotes from values by \u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePreserve quoted leading and trailing single-line config var whitespace by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2036\"\u003egitpython-developers/GitPython#2036\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor Git.{AutoInterrupt,CatFileContentStream} nesting by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2037\"\u003egitpython-developers/GitPython#2037\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Git.{AutoInterrupt,CatFileContentStream} static typing by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2039\"\u003egitpython-developers/GitPython#2039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix CI \u003ccode\u003emypy\u003c/code\u003e command on free-threaded Python by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2040\"\u003egitpython-developers/GitPython#2040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSplit Cygwin CI into non-\u003ccode\u003eperformance\u003c/code\u003e and \u003ccode\u003eperformance\u003c/code\u003e test jobs by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2042\"\u003egitpython-developers/GitPython#2042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpress conditional \u003ccode\u003esetuptools\u003c/code\u003e requirement statically by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2043\"\u003egitpython-developers/GitPython#2043\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ambiguous \u003ccode\u003e_safer_popen_windows\u003c/code\u003e comment by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2044\"\u003egitpython-developers/GitPython#2044\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify \u003ccode\u003eUSE_SHELL\u003c/code\u003e warning helper signature by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2045\"\u003egitpython-developers/GitPython#2045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest \u003ccode\u003eConfigParser\u003c/code\u003e with whitespace outside the value by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2046\"\u003egitpython-developers/GitPython#2046\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove explicit empty \u003ccode\u003e\u0026quot;\u0026quot;\u003c/code\u003e handling in ConfigParser by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2047\"\u003egitpython-developers/GitPython#2047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVarious style improvements by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2049\"\u003egitpython-developers/GitPython#2049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't remove quotes if \u003ccode\u003e\\\u003c/code\u003e or \u003ccode\u003e\u0026quot;\u003c/code\u003e are present inside by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2048\"\u003egitpython-developers/GitPython#2048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix updating submodules with relative urls by \u003ca href=\"https://github.com/david0\"\u003e\u003ccode\u003e@​david0\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2051\"\u003egitpython-developers/GitPython#2051\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRun \u003ccode\u003ecat_file.py\u003c/code\u003e fixture without site customizations by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2052\"\u003egitpython-developers/GitPython#2052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Cygwin installation on CI for \u003ccode\u003epip\u003c/code\u003e by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2053\"\u003egitpython-developers/GitPython#2053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFail \u003ccode\u003etest_installation\u003c/code\u003e on warnings, and remove deprecated license classifier by \u003ca href=\"https://github.com/EliahKagan\"\u003e\u003ccode\u003e@​EliahKagan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2054\"\u003egitpython-developers/GitPython#2054\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd clearer error version for unsupported index error by \u003ca href=\"https://github.com/tombedor\"\u003e\u003ccode\u003e@​tombedor\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2055\"\u003egitpython-developers/GitPython#2055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix name collision by \u003ca href=\"https://github.com/NMertsch\"\u003e\u003ccode\u003e@​NMertsch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2060\"\u003egitpython-developers/GitPython#2060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow relative path url in submodules for submodule_update by \u003ca href=\"https://github.com/t-webber\"\u003e\u003ccode\u003e@​t-webber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2062\"\u003egitpython-developers/GitPython#2062\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/flichtenheld\"\u003e\u003ccode\u003e@​flichtenheld\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/1996\"\u003egitpython-developers/GitPython#1996\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kamilkozik7\"\u003e\u003ccode\u003e@​kamilkozik7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2012\"\u003egitpython-developers/GitPython#2012\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koyuki7w\"\u003e\u003ccode\u003e@​koyuki7w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2018\"\u003egitpython-developers/GitPython#2018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ngoldbaum\"\u003e\u003ccode\u003e@​ngoldbaum\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2019\"\u003egitpython-developers/GitPython#2019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gcmarx\"\u003e\u003ccode\u003e@​gcmarx\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2028\"\u003egitpython-developers/GitPython#2028\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/betaboon\"\u003e\u003ccode\u003e@​betaboon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/pull/2035\"\u003egitpython-developers/GitPython#2035\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/gitpython-developers/GitPython/commit/6ba2c0a2f9ee7feffd7e079621c4845820180c9a\"\u003e\u003ccode\u003e6ba2c0a\u003c/code\u003e\u003c/a\u003e Prepare a new release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/bbb3d00ac431dc7966f9715fb813792d234eca81\"\u003e\u003ccode\u003ebbb3d00\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2062\"\u003e#2062\u003c/a\u003e from t-webber/relative_path_submodules\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/1ee1e781929074afd66bff1eae007bbee41d117e\"\u003e\u003ccode\u003e1ee1e78\u003c/code\u003e\u003c/a\u003e Add test case for cloning submodules with relative path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/ec2e2c8b894512e7a2364774d77cdd9db73f0566\"\u003e\u003ccode\u003eec2e2c8\u003c/code\u003e\u003c/a\u003e Allow relative path url in submodules for submodule_update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4d529b71905edae12e4699170f7d9e0a665801b5\"\u003e\u003ccode\u003e4d529b7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2060\"\u003e#2060\u003c/a\u003e from NMertsch/2023-fix-gitconfigparser-autodoc\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/80fd2c16211738156e65258381a17cdc429ddd08\"\u003e\u003ccode\u003e80fd2c1\u003c/code\u003e\u003c/a\u003e Don't treat sphinx warnings as errors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/a4aadb0c04bd13af824c14dcc39f88345aa5c440\"\u003e\u003ccode\u003ea4aadb0\u003c/code\u003e\u003c/a\u003e Fix name collision\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/4c7778a93134364cfff7b1597f9eda00a88323af\"\u003e\u003ccode\u003e4c7778a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2057\"\u003e#2057\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/5033c3ffd8917d835658c22e84bd86103a2ae52d\"\u003e\u003ccode\u003e5033c3f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/gitpython-developers/GitPython/issues/2056\"\u003e#2056\u003c/a\u003e from gitpython-developers/dependabot/github_actions/...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gitpython-developers/GitPython/commit/496392b9bf781904421cbd171c0c5395a6fe330c\"\u003e\u003ccode\u003e496392b\u003c/code\u003e\u003c/a\u003e Bump cygwin/cygwin-install-action from 5 to 6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/gitpython-developers/GitPython/compare/3.1.44...3.1.45\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `griffe` from 1.7.3 to 1.8.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mkdocstrings/griffe/releases\"\u003egriffe's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.8.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.8.0\"\u003e1.8.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.7.3...1.8.0\"\u003eCompare with 1.7.3\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd method to functions and classes to build and return a stringified signature (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8ef1486e9b1f0872cca3b1cd2419144b702a0c1e\"\u003e8ef1486\u003c/a\u003e by ISOREX). \u003ca href=\"https://github.com/mkdocstrings/griffe/discussions/376\"\u003eDiscussion-376\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/381\"\u003ePR-381\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance Sphinx-style parameter parsing to handle invalid type info (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/cbce5a2c2429dc92e15ac3a8fe53db55825ebd6c\"\u003ecbce5a2\u003c/a\u003e by Edouard Choinière). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/396\"\u003ePR-396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParse Sphinx parameter types as expressions (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/70dda21d15dfdf5807dde370fb636d69eea6272b\"\u003e70dda21\u003c/a\u003e by Edouard Choinière). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/392\"\u003ePR-392\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid SyntaxError when loading modules encoded in UTF8 with BOM (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/b3461901ae08204ea6184025a006f5d34152d30d\"\u003eb346190\u003c/a\u003e by John Hennig). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/386\"\u003eIssue-386\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/387\"\u003ePR-387\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrectly parenthesize expressions (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/a8c5585c8a45a4d6b67bd5dc36d7054478d3873d\"\u003ea8c5585\u003c/a\u003e by Abraham Cheung). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/389\"\u003ePR-389\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBe more consistent regarding not overriding submodules with aliases (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/be1963cca6d7d49bcc41fdf05570b1bfba934330\"\u003ebe1963c\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eExprName.parent\u003c/code\u003e to be of type \u003ccode\u003egriffe.Function\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/acafbd8b6d97fe8370f3eb730e2154e19b2c1a54\"\u003eacafbd8\u003c/a\u003e by Edouard Choinière). \u003ca href=\"https://github.com/mkdocstrings/griffe/discussions/391\"\u003eIssue-391\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/395\"\u003ePR-395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize labels for attributes (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/1b376cd39ce99730910d8344abbfd5c53ce28300\"\u003e1b376cd\u003c/a\u003e by Timothée Mazzucotelli).\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/mkdocstrings/griffe/blob/main/CHANGELOG.md\"\u003egriffe's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/releases/tag/1.8.0\"\u003e1.8.0\u003c/a\u003e - 2025-07-23\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.7.3...1.8.0\"\u003eCompare with 1.7.3\u003c/a\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd method to functions and classes to build and return a stringified signature (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8ef1486e9b1f0872cca3b1cd2419144b702a0c1e\"\u003e8ef1486\u003c/a\u003e by ISOREX). \u003ca href=\"https://github.com/mkdocstrings/griffe/discussions/376\"\u003eDiscussion-376\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/381\"\u003ePR-381\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnhance Sphinx-style parameter parsing to handle invalid type info (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/cbce5a2c2429dc92e15ac3a8fe53db55825ebd6c\"\u003ecbce5a2\u003c/a\u003e by Edouard Choinière). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/396\"\u003ePR-396\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eParse Sphinx parameter types as expressions (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/70dda21d15dfdf5807dde370fb636d69eea6272b\"\u003e70dda21\u003c/a\u003e by Edouard Choinière). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/392\"\u003ePR-392\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid SyntaxError when loading modules encoded in UTF8 with BOM (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/b3461901ae08204ea6184025a006f5d34152d30d\"\u003eb346190\u003c/a\u003e by John Hennig). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/issues/386\"\u003eIssue-386\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/387\"\u003ePR-387\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrectly parenthesize expressions (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/a8c5585c8a45a4d6b67bd5dc36d7054478d3873d\"\u003ea8c5585\u003c/a\u003e by Abraham Cheung). \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/389\"\u003ePR-389\u003c/a\u003e, Co-authored-by: Timothée Mazzucotelli \u003ca href=\"mailto:dev@pawamoy.fr\"\u003edev@pawamoy.fr\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCode Refactoring\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBe more consistent regarding not overriding submodules with aliases (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/be1963cca6d7d49bcc41fdf05570b1bfba934330\"\u003ebe1963c\u003c/a\u003e by Timothée Mazzucotelli).\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eExprName.parent\u003c/code\u003e to be of type \u003ccode\u003egriffe.Function\u003c/code\u003e (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/acafbd8b6d97fe8370f3eb730e2154e19b2c1a54\"\u003eacafbd8\u003c/a\u003e by Edouard Choinière). \u003ca href=\"https://github.com/mkdocstrings/griffe/discussions/391\"\u003eIssue-391\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mkdocstrings/griffe/pull/395\"\u003ePR-395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize labels for attributes (\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/1b376cd39ce99730910d8344abbfd5c53ce28300\"\u003e1b376cd\u003c/a\u003e by Timothée Mazzucotelli).\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/mkdocstrings/griffe/commit/27a385b435d3c09eedeffe980416f7012e65ed6f\"\u003e\u003ccode\u003e27a385b\u003c/code\u003e\u003c/a\u003e chore: Prepare release 1.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8ef1486e9b1f0872cca3b1cd2419144b702a0c1e\"\u003e\u003ccode\u003e8ef1486\u003c/code\u003e\u003c/a\u003e feat: Add method to functions and classes to build and return a stringified s...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/b3461901ae08204ea6184025a006f5d34152d30d\"\u003e\u003ccode\u003eb346190\u003c/code\u003e\u003c/a\u003e fix: Avoid SyntaxError when loading modules encoded in UTF8 with BOM\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/a8c5585c8a45a4d6b67bd5dc36d7054478d3873d\"\u003e\u003ccode\u003ea8c5585\u003c/code\u003e\u003c/a\u003e fix: Correctly parenthesize expressions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/0a051861d4fc3e064f2d19d53e1abab112316771\"\u003e\u003ccode\u003e0a05186\u003c/code\u003e\u003c/a\u003e ci: Ignore Mypy warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/cbce5a2c2429dc92e15ac3a8fe53db55825ebd6c\"\u003e\u003ccode\u003ecbce5a2\u003c/code\u003e\u003c/a\u003e feat: Enhance Sphinx-style parameter parsing to handle invalid type info\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/2d77bf16a0b6f823e2bbe54a49f2c26e4cd1e290\"\u003e\u003ccode\u003e2d77bf1\u003c/code\u003e\u003c/a\u003e Merge branch 'main' of github.com:mkdocstrings/griffe\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/be1963cca6d7d49bcc41fdf05570b1bfba934330\"\u003e\u003ccode\u003ebe1963c\u003c/code\u003e\u003c/a\u003e refactor: Be more consistent regarding not overriding submodules with aliases\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/fbad6f5dd556b49f20a51a8ba6dc19fb13878bdc\"\u003e\u003ccode\u003efbad6f5\u003c/code\u003e\u003c/a\u003e tests: Fix annotation tests for 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mkdocstrings/griffe/commit/8489f11257c880adca76298bef7bca8a367585e4\"\u003e\u003ccode\u003e8489f11\u003c/code\u003e\u003c/a\u003e docs: Add link to function reference at the end of guide\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mkdocstrings/griffe/compare/1.7.3...1.8.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `importlib-resources` from 5.0.7 to 6.5.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/importlib_resources/blob/main/NEWS.rst\"\u003eimportlib-resources's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev6.5.2\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplaced reference to typing_extensions with stdlib Literal. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/323\"\u003e#323\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.5.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated \u003ccode\u003eTraversable.read_text()\u003c/code\u003e to reflect the \u003ccode\u003eerrors\u003c/code\u003e\u003ccode\u003epython/cpython#127012\u003c/code\u003e\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/321\"\u003e#321\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.5.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd type annotations for Traversable.open. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/317\"\u003e#317\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire Python 3.9 or later.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.4.5\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOmit sentinel values from a namespace path. (\u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/311\"\u003e#311\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev6.4.4\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch1\u003ev6.4.3\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eWhen inferring the caller in \u003ccode\u003efiles()\u003c/code\u003e\u003ccode\u003epython/cpython#123085\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/python/importlib_resources/commit/7d3b2bfa1d8c53ecb64246ba16d8c632f8fcb6bf\"\u003e\u003ccode\u003e7d3b2bf\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/14408098293bd6bc68eca7b5a53333729a567e57\"\u003e\u003ccode\u003e1440809\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/324\"\u003e#324\u003c/a\u003e from pstjohn/patch-1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/6569354ad2cf38b202fdeaf11b49e639b1a00fbc\"\u003e\u003ccode\u003e6569354\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/6c1bc3cdb8f8a7d29252becc201508712040facc\"\u003e\u003ccode\u003e6c1bc3c\u003c/code\u003e\u003c/a\u003e Rely on Literal from stdlib.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/883380a5fcc482b67014b90b9aa7250d868c795a\"\u003e\u003ccode\u003e883380a\u003c/code\u003e\u003c/a\u003e Update pyproject.toml\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/a61a948b6293ed46972909652909e2540242f197\"\u003e\u003ccode\u003ea61a948\u003c/code\u003e\u003c/a\u003e Add typing-extensions as a dependency\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/78c4bda73c5d671cbbcfdf1430b6f2da03aeb04f\"\u003e\u003ccode\u003e78c4bda\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/10d87bf85a404e9fb9271f8f353ad0452c0cc631\"\u003e\u003ccode\u003e10d87bf\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python/importlib_resources/issues/321\"\u003e#321\u003c/a\u003e from kurtmckee/add-readtext-errors-parameter-cpython-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/9a872e5dbceff32260e8ff19d039236304ee150c\"\u003e\u003ccode\u003e9a872e5\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/importlib_resources/commit/cf269ce50f496671f3b7fbc5e6292946ecc70e7d\"\u003e\u003ccode\u003ecf269ce\u003c/code\u003e\u003c/a\u003e Replace unreachable block with simple assertion. Fixes diffcov failure.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/importlib_resources/compare/v5.0.7...v6.5.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `jsonschema` from 4.24.0 to 4.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-jsonschema/jsonschema/releases\"\u003ejsonschema's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev4.25.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eiri\u003c/code\u003e and \u003ccode\u003eiri-reference\u003c/code\u003e formats to the \u003ccode\u003eformat-nongpl\u003c/code\u003e extra by \u003ca href=\"https://github.com/jkowalleck\"\u003e\u003ccode\u003e@​jkowalleck\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1388\"\u003epython-jsonschema/jsonschema#1388\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/jkowalleck\"\u003e\u003ccode\u003e@​jkowalleck\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1388\"\u003epython-jsonschema/jsonschema#1388\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-jsonschema/jsonschema/compare/v4.24.1...v4.25.0\"\u003ehttps://github.com/python-jsonschema/jsonschema/compare/v4.24.1...v4.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev4.24.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUnambiguously quote and escape properties in JSON path rendering by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1390\"\u003epython-jsonschema/jsonschema#1390\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop python\u0026lt;3.9 backports by \u003ca href=\"https://github.com/hackowitz-af\"\u003e\u003ccode\u003e@​hackowitz-af\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1367\"\u003epython-jsonschema/jsonschema#1367\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/hackowitz-af\"\u003e\u003ccode\u003e@​hackowitz-af\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1367\"\u003epython-jsonschema/jsonschema#1367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/pull/1390\"\u003epython-jsonschema/jsonschema#1390\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/python-jsonschema/jsonschema/compare/v4.24.0...v4.24.1\"\u003ehttps://github.com/python-jsonschema/jsonschema/compare/v4.24.0...v4.24.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/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst\"\u003ejsonschema's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev4.25.0\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for the \u003ccode\u003eiri\u003c/code\u003e and \u003ccode\u003eiri-reference\u003c/code\u003e formats to the \u003ccode\u003eformat-nongpl\u003c/code\u003e extra via the MIT-licensed \u003ccode\u003erfc3987-syntax\u003c/code\u003e.\nThey were alread supported by the \u003ccode\u003eformat\u003c/code\u003e extra. (\u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1388\"\u003e#1388\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev4.24.1\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eProperly escape segments in \u003ccode\u003eValidationError.json_path\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/139\"\u003e#139\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-jsonschema/jsonschema/commit/9889f69eb5ccb532e2147465697f30c82b2a8bb0\"\u003e\u003ccode\u003e9889f69\u003c/code\u003e\u003c/a\u003e Add the new functionality to the CHANGELOG.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/18855d01f7839083efc5bad1ca67688a7177be42\"\u003e\u003ccode\u003e18855d0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1388\"\u003e#1388\u003c/a\u003e from jkowalleck/feat/validate_rfc3987_non-gpl/rfc398...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/1a6067fc441177d1911446c7325eee7c776007ae\"\u003e\u003ccode\u003e1a6067f\u003c/code\u003e\u003c/a\u003e adjust rfc3987-syntax min-version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/6aadb8b7ad7f9d5eee58eed73df5a7d865dad34c\"\u003e\u003ccode\u003e6aadb8b\u003c/code\u003e\u003c/a\u003e Add the fix to the CHANGELOG.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/785741e73b63d97eda3973442b109df3f8aa5892\"\u003e\u003ccode\u003e785741e\u003c/code\u003e\u003c/a\u003e Add a dependency group for our new test dependency.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/dc547341f2a3304d73114b1d18da063be7fc43e0\"\u003e\u003ccode\u003edc54734\u003c/code\u003e\u003c/a\u003e Add a uv.lock.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/b5572c9971358be547bbcf614a304f85886c1627\"\u003e\u003ccode\u003eb5572c9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-jsonschema/jsonschema/issues/1390\"\u003e#1390\u003c/a\u003e from kurtmckee/fix-json_path-str-rendering\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/4cf45b95de90191b02396bd04d41760d9798ecd6\"\u003e\u003ccode\u003e4cf45b9\u003c/code\u003e\u003c/a\u003e Feedback: Use jsonpath-ng to re-parse the rendered JSON path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/2680f6ab44d6fe36d321fef6ee626608a5f0ec7a\"\u003e\u003ccode\u003e2680f6a\u003c/code\u003e\u003c/a\u003e Feedback: Make a compiled regex pattern private\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-jsonschema/jsonschema/commit/9a957d770d6e63646f4fc874bf8df6be4593f8c8\"\u003e\u003ccode\u003e9a957d7\u003c/code\u003e\u003c/a\u003e Unambiguously quote and escape properties in JSON path rendering\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-jsonschema/jsonschema/compare/v4.24.0...v4.25.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `markdown` from 3.8 to 3.8.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.8.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.8.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure incomplete markup declaration in raw HTML doesn't crash parser (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1534\"\u003e#1534\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed dropped content in \u003ccode\u003emd_in_html\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1526\"\u003e#1526\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed HTML handling corner case that prevented some content from not being rendered (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1528\"\u003e#1528\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/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.1] - 2025-06-18\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure incomplete markup declaration in raw HTML doesn't crash parser (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1534\"\u003e#1534\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed dropped content in \u003ccode\u003emd_in_html\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1526\"\u003e#1526\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed HTML handling corner case that prevented some content from not being rendered (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1528\"\u003e#1528\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.0] - 2025-04-09\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDRY fix in \u003ccode\u003eabbr\u003c/code\u003e extension by introducing method \u003ccode\u003ecreate_element\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1483\"\u003e#1483\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eClean up test directory by removing some redundant tests and port\nnon-redundant cases to the newer test framework.\u003c/li\u003e\n\u003cli\u003eImproved performance of the raw HTML post-processor (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1510\"\u003e#1510\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBackslash Unescape IDs set via \u003ccode\u003eattr_list\u003c/code\u003e on \u003ccode\u003etoc\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1493\"\u003e#1493\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003emd_in_html\u003c/code\u003e processes content inside \u0026quot;markdown\u0026quot; blocks as they are\nparsed outside of \u0026quot;markdown\u0026quot; blocks to keep things more consistent for\nthird-party extensions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1503\"\u003e#1503\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emd_in_html\u003c/code\u003e handle tags within inline code blocks better (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1075\"\u003e#1075\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emd_in_html\u003c/code\u003e fix handling of one-liner block HTML handling (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1074\"\u003e#1074\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e\u0026lt;center\u0026gt;\u003c/code\u003e is treated like a block-level element (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1481\"\u003e#1481\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eEnsure that \u003ccode\u003eabbr\u003c/code\u003e extension respects \u003ccode\u003eAtomicString\u003c/code\u003e and does not process\nperceived abbreviations in these strings (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1512\"\u003e#1512\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003esmarty\u003c/code\u003e extension correctly renders nested closing quotes (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1514\"\u003e#1514\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.7.0] - 2024-08-16\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor \u003ccode\u003eabbr\u003c/code\u003e Extension\u003c/p\u003e\n\u003cp\u003eA new \u003ccode\u003eAbbrTreeprocessor\u003c/code\u003e has been introduced, which replaces the now deprecated\n\u003ccode\u003eAbbrInlineProcessor\u003c/code\u003e. Abbreviation processing now happens after Attribute Lists,\navoiding a conflict between the two extensions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1460\"\u003e#1460\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eAbbrPreprocessor\u003c/code\u003e class has been renamed to \u003ccode\u003eAbbrBlockprocessor\u003c/code\u003e, which\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/d9c8431e404d614812e39a11109afbe9981bba13\"\u003e\u003ccode\u003ed9c8431\u003c/code\u003e\u003c/a\u003e Bump version to 3.8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/9980cb5b27b07ff48283178d98213e41543701ec\"\u003e\u003ccode\u003e9980cb5\u003c/code\u003e\u003c/a\u003e Fixes for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/3561310d30dac10c47f0b9fc404b167fc65331b0\"\u003e\u003ccode\u003e3561310\u003c/code\u003e\u003c/a\u003e Properly document version specification.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/3bb9d42b93dae519d4f5a6eea970a571232e05e2\"\u003e\u003ccode\u003e3bb9d42\u003c/code\u003e\u003c/a\u003e Update documentation for release process\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/3870f20ba1dd214609b380e921dffc5f115730f5\"\u003e\u003ccode\u003e3870f20\u003c/code\u003e\u003c/a\u003e Bump version to 3.8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/820721485c928c6f97f3d74f37afb6d2450aef9e\"\u003e\u003ccode\u003e8207214\u003c/code\u003e\u003c/a\u003e Ensure incomplete markup declaration in raw HTML doesn't crash parser.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/64a3c0fbc00327fbfee1fd6b44da0e5453287fe4\"\u003e\u003ccode\u003e64a3c0f\u003c/code\u003e\u003c/a\u003e Fix HTML handling of \u003ccode\u003e\\\u0026lt;/\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/f2b9fd10f1fc7b0683f226e6a82da8e8375bccf5\"\u003e\u003ccode\u003ef2b9fd1\u003c/code\u003e\u003c/a\u003e Ensure \u003ccode\u003emd_in_html\u003c/code\u003e does not drop content\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/513de8a0db81c840f917488af7078a45f74542bf\"\u003e\u003ccode\u003e513de8a\u003c/code\u003e\u003c/a\u003e Update pypa/gh-action-pypi-publish to v1.12.4\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.8...3.8.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-material` from 9.6.14 to 9.6.16\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/squidfunk/mkdocs-material/releases\"\u003emkdocs-material's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emkdocs-material-9.6.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8349\"\u003e#8349\u003c/a\u003e: Info plugin doesn't correctly detect virtualenv in some cases\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8334\"\u003e#8334\u003c/a\u003e: Find-in-page detects matches in hidden search result list\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003emkdocs-material-9.6.15\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Mongolian translations\u003c/li\u003e\n\u003cli\u003eImproved semantic markup of \u0026quot;edit this page\u0026quot; button\u003c/li\u003e\n\u003cli\u003eImproved info plugin virtual environment resolution\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8291\"\u003e#8291\u003c/a\u003e: Large font size setting throws of breakpoints in JavaScript\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/squidfunk/mkdocs-material/blob/master/CHANGELOG\"\u003emkdocs-material's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emkdocs-material-9.6.16 (2025-07-26)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8349\"\u003e#8349\u003c/a\u003e: Info plugin doesn't correctly detect virtualenv in some cases\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8334\"\u003e#8334\u003c/a\u003e: Find-in-page detects matches in hidden search result list\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.6.15 (2025-07-01)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Mongolian translations\u003c/li\u003e\n\u003cli\u003eImproved semantic markup of \u0026quot;edit this page\u0026quot; button\u003c/li\u003e\n\u003cli\u003eImproved info plugin virtual environment resolution\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8291\"\u003e#8291\u003c/a\u003e: Large font size setting throws of breakpoints in JavaScript\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.6.14 (2025-05-13)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8215\"\u003e#8215\u003c/a\u003e: Social plugin crashes when CairoSVG is updated to 2.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.6.13 (2025-05-10)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8204\"\u003e#8204\u003c/a\u003e: Annotations showing list markers in print view\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8153\"\u003e#8153\u003c/a\u003e: Improve style of cardinality symbols in Mermaid.js ER diagrams\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.6.12 (2025-04-17)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8158\"\u003e#8158\u003c/a\u003e: Flip footnote back reference icon for right-to-left languages\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.6.11 (2025-04-01)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated Docker image to latest Alpine Linux\u003c/li\u003e\n\u003cli\u003eBump required Jinja version to 3.1\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8133\"\u003e#8133\u003c/a\u003e: Jinja filter \u003ccode\u003eitems\u003c/code\u003e not available (9.6.10 regression)\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8128\"\u003e#8128\u003c/a\u003e: Search plugin not entirely disabled via enabled setting\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.6.10 (2025-03-30)\u003c/p\u003e\n\u003cp\u003eThis version is a pure refactoring release, and does not contain new features\nor bug fixes. It strives to improve the compatibility of our templates with\nalternative Jinja-like template engines that we're currently exploring,\nincluding minijinja.\u003c/p\u003e\n\u003cp\u003eAdditionally, it replaces several instances of Python function invocations\nwith idiomatic use of template filters. All instances where variables have\nbeen mutated inside templates have been replaced. Most changes have been made\nin partials, and only a few in blocks, and all of them are fully backward\ncompatible, so no changes to overrides are necessary.\u003c/p\u003e\n\u003cp\u003eNote that this release does not replace the Jinja template engine with\nminijinja. However, our templates are now 99% compatible with minijinja,\nwhich means we can explore alternative Jinja-compatible implementations.\nAdditionally, immutability and removal of almost all Python function\ninvocations means much more idiomatic templating.\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/squidfunk/mkdocs-material/commit/8b949816ba16ad46e7c4c72912e5bd8c6254dcfd\"\u003e\u003ccode\u003e8b94981\u003c/code\u003e\u003c/a\u003e Prepare 9.6.16 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/e5c7ab542745013397b7e7b284960ed57de306c1\"\u003e\u003ccode\u003ee5c7ab5\u003c/code\u003e\u003c/a\u003e Updated dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/53385529f0481e89ff6fba49f855fd0dbbd16cdb\"\u003e\u003ccode\u003e5338552\u003c/code\u003e\u003c/a\u003e Fixed handling of inconsistent drive letter case\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/6d4f756461dd556e459d4769d6e1ec7ce7bce4ae\"\u003e\u003ccode\u003e6d4f756\u003c/code\u003e\u003c/a\u003e Fixed dotpath venv guessing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/88bdcf5f16696eb540fcbf8bc24244dc1c5f965f\"\u003e\u003ccode\u003e88bdcf5\u003c/code\u003e\u003c/a\u003e Fixed empty username fallback\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/d0c4bd618fd01b849ba85aee5275c23481214eea\"\u003e\u003ccode\u003ed0c4bd6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8346\"\u003e#8346\u003c/a\u003e from squidfunk/dependabot/npm_and_yarn/form-data-3.0.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/9c1e4deb5c96c6baa076431f0cb4ede20ba35fab\"\u003e\u003ccode\u003e9c1e4de\u003c/code\u003e\u003c/a\u003e Bump form-data from 3.0.1 to 3.0.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/b2d235eb65d717202fedbe70c6856f2560e66c40\"\u003e\u003ccode\u003eb2d235e\u003c/code\u003e\u003c/a\u003e Updated Premium sponsors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/e54ff0632c46e811e6adc7a104c0bd567ed22fc0\"\u003e\u003ccode\u003ee54ff06\u003c/code\u003e\u003c/a\u003e Updated Premium sponsors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/212b7ab8f74a78a56e8f09b032633bc69289639a\"\u003e\u003ccode\u003e...\n\n_Description has been truncated_","html_url":"https://github.com/pycontribs/subprocess-tee/pull/184","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/pycontribs%2Fsubprocess-tee/issues/184","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/184/packages"}},{"old_version":"2.4.0","new_version":"2.5.0","update_type":"minor","path":"/.config","pr_created_at":"2025-06-22T17:22:20.000Z","version_change":"2.4.0 → 2.5.0","issue":{"uuid":"2609858757","node_id":"PR_kwDOJHFGx86bj0jF","number":223,"state":"open","title":"Bump the dependencies group in /.config with 5 updates","user":"dependabot[bot]","labels":["skip-changelog","dependabot","minor"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":null,"author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-06-22T17:22:20.000Z","updated_at":"2025-06-24T18:55:40.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"dependencies","update_count":5,"packages":[{"name":"markdown","old_version":"3.8","new_version":"3.8.2","repository_url":"https://github.com/Python-Markdown/markdown"},{"name":"pygments","old_version":"2.19.1","new_version":"2.19.2","repository_url":"https://github.com/pygments/pygments"},{"name":"pymdown-extensions","old_version":"10.15","new_version":"10.16","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"urllib3","old_version":"2.4.0","new_version":"2.5.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"pytest","old_version":"8.4.0","new_version":"8.4.1","repository_url":"https://github.com/pytest-dev/pytest"}],"path":"/.config","ecosystem":"conda"},"body":"Bumps the dependencies group in /.config with 5 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [markdown](https://github.com/Python-Markdown/markdown) | `3.8` | `3.8.2` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.1` | `2.19.2` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.15` | `10.16` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.4.0` | `2.5.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.4.0` | `8.4.1` |\n\nUpdates `markdown` from 3.8 to 3.8.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Python-Markdown/markdown/releases\"\u003emarkdown's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease 3.8.2\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 3.8.1\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure incomplete markup declaration in raw HTML doesn't crash parser (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1534\"\u003e#1534\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed dropped content in \u003ccode\u003emd_in_html\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1526\"\u003e#1526\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed HTML handling corner case that prevented some content from not being rendered (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1528\"\u003e#1528\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/Python-Markdown/markdown/blob/master/docs/changelog.md\"\u003emarkdown's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[3.8.2] - 2025-06-19\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003ecodecs\u003c/code\u003e deprecation in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed comment parsing in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed declarations in Python 3.14.\u003c/li\u003e\n\u003cli\u003eFix issue with unclosed HTML tag \u003ccode\u003e\u0026lt;foo\u003c/code\u003e and Python 3.14.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.1] - 2025-06-18\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure incomplete markup declaration in raw HTML doesn't crash parser (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1534\"\u003e#1534\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed dropped content in \u003ccode\u003emd_in_html\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1526\"\u003e#1526\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFixed HTML handling corner case that prevented some content from not being rendered (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1528\"\u003e#1528\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.8.0] - 2025-04-09\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDRY fix in \u003ccode\u003eabbr\u003c/code\u003e extension by introducing method \u003ccode\u003ecreate_element\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1483\"\u003e#1483\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eClean up test directory by removing some redundant tests and port\nnon-redundant cases to the newer test framework.\u003c/li\u003e\n\u003cli\u003eImproved performance of the raw HTML post-processor (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1510\"\u003e#1510\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBackslash Unescape IDs set via \u003ccode\u003eattr_list\u003c/code\u003e on \u003ccode\u003etoc\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1493\"\u003e#1493\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003emd_in_html\u003c/code\u003e processes content inside \u0026quot;markdown\u0026quot; blocks as they are\nparsed outside of \u0026quot;markdown\u0026quot; blocks to keep things more consistent for\nthird-party extensions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1503\"\u003e#1503\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emd_in_html\u003c/code\u003e handle tags within inline code blocks better (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1075\"\u003e#1075\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emd_in_html\u003c/code\u003e fix handling of one-liner block HTML handling (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1074\"\u003e#1074\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003e\u0026lt;center\u0026gt;\u003c/code\u003e is treated like a block-level element (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1481\"\u003e#1481\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eEnsure that \u003ccode\u003eabbr\u003c/code\u003e extension respects \u003ccode\u003eAtomicString\u003c/code\u003e and does not process\nperceived abbreviations in these strings (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1512\"\u003e#1512\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eEnsure \u003ccode\u003esmarty\u003c/code\u003e extension correctly renders nested closing quotes (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1514\"\u003e#1514\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e[3.7.0] - 2024-08-16\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRefactor \u003ccode\u003eabbr\u003c/code\u003e Extension\u003c/p\u003e\n\u003cp\u003eA new \u003ccode\u003eAbbrTreeprocessor\u003c/code\u003e has been introduced, which replaces the now deprecated\n\u003ccode\u003eAbbrInlineProcessor\u003c/code\u003e. Abbreviation processing now happens after Attribute Lists,\navoiding a conflict between the two extensions (\u003ca href=\"https://redirect.github.com/Python-Markdown/markdown/issues/1460\"\u003e#1460\u003c/a\u003e).\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003eAbbrPreprocessor\u003c/code\u003e class has been renamed to \u003ccode\u003eAbbrBlockprocessor\u003c/code\u003e, which\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/d9c8431e404d614812e39a11109afbe9981bba13\"\u003e\u003ccode\u003ed9c8431\u003c/code\u003e\u003c/a\u003e Bump version to 3.8.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/9980cb5b27b07ff48283178d98213e41543701ec\"\u003e\u003ccode\u003e9980cb5\u003c/code\u003e\u003c/a\u003e Fixes for Python 3.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/3561310d30dac10c47f0b9fc404b167fc65331b0\"\u003e\u003ccode\u003e3561310\u003c/code\u003e\u003c/a\u003e Properly document version specification.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/3bb9d42b93dae519d4f5a6eea970a571232e05e2\"\u003e\u003ccode\u003e3bb9d42\u003c/code\u003e\u003c/a\u003e Update documentation for release process\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/3870f20ba1dd214609b380e921dffc5f115730f5\"\u003e\u003ccode\u003e3870f20\u003c/code\u003e\u003c/a\u003e Bump version to 3.8.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/820721485c928c6f97f3d74f37afb6d2450aef9e\"\u003e\u003ccode\u003e8207214\u003c/code\u003e\u003c/a\u003e Ensure incomplete markup declaration in raw HTML doesn't crash parser.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/64a3c0fbc00327fbfee1fd6b44da0e5453287fe4\"\u003e\u003ccode\u003e64a3c0f\u003c/code\u003e\u003c/a\u003e Fix HTML handling of \u003ccode\u003e\\\u0026lt;/\u0026gt;\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/f2b9fd10f1fc7b0683f226e6a82da8e8375bccf5\"\u003e\u003ccode\u003ef2b9fd1\u003c/code\u003e\u003c/a\u003e Ensure \u003ccode\u003emd_in_html\u003c/code\u003e does not drop content\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Python-Markdown/markdown/commit/513de8a0db81c840f917488af7078a45f74542bf\"\u003e\u003ccode\u003e513de8a\u003c/code\u003e\u003c/a\u003e Update pypa/gh-action-pypi-publish to v1.12.4\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Python-Markdown/markdown/compare/3.8...3.8.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pygments` from 2.19.1 to 2.19.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pygments/pygments/releases\"\u003epygments's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.19.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLua: Fix regression introduced in 2.19.0 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2882\"\u003e#2882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2839\"\u003e#2839\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/pygments/pygments/blob/master/CHANGES\"\u003epygments's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.19.2\u003c/h2\u003e\n\u003cp\u003e(released June 21st, 2025)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLua: Fix regression introduced in 2.19.0 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2882\"\u003e#2882\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2839\"\u003e#2839\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/pygments/pygments/commit/cfca62e6e95136e48a255e8cbffb0bbe1d98456c\"\u003e\u003ccode\u003ecfca62e\u003c/code\u003e\u003c/a\u003e Prepare v2.19.2 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/6688300df2ea289a6137c7ee9c78d0bb95683b5c\"\u003e\u003ccode\u003e6688300\u003c/code\u003e\u003c/a\u003e Disable pyodide (currently broken.)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/66997c3e302226a95c22cdaebf827444327920fa\"\u003e\u003ccode\u003e66997c3\u003c/code\u003e\u003c/a\u003e Update ruff version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/94dda77d69a6d6c47c33f06ce2425e7f306154a2\"\u003e\u003ccode\u003e94dda77\u003c/code\u003e\u003c/a\u003e Update CHANGES.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/26634c856cefea620571123577d1f8cf09589ed8\"\u003e\u003ccode\u003e26634c8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2882\"\u003e#2882\u003c/a\u003e from thavelick/fix_lua_runaway_regex\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/b6a51ece09e31d3db2b732c8536a533b6de74768\"\u003e\u003ccode\u003eb6a51ec\u003c/code\u003e\u003c/a\u003e fix lua regex causing runaway backtracking.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/edef94d66c2d70f05a86ac6098a69ab253b8d946\"\u003e\u003ccode\u003eedef94d\u003c/code\u003e\u003c/a\u003e Investigation for \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2839\"\u003e#2839\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/fb6a00ef872e45a23212c214b8494ebedbd4709b\"\u003e\u003ccode\u003efb6a00e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2837\"\u003e#2837\u003c/a\u003e from dlazin/sql-cleanup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/bf7aa2368fe7e0f42d4543781f0b00b4565b3995\"\u003e\u003ccode\u003ebf7aa23\u003c/code\u003e\u003c/a\u003e Clean up sql.py\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pygments/pygments/compare/2.19.1...2.19.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pymdown-extensions` from 10.15 to 10.16\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/releases\"\u003epymdown-extensions's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e10.16\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Add early support for Python 3.14.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Drop support for Python 3.8.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Snippets: Added \u003ccode\u003emax_retries\u003c/code\u003e and \u003ccode\u003ebackoff_retries\u003c/code\u003e options to configure new retry logic for HTTP 429\nerrors (Too Many Requests client error).\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eNEW\u003c/strong\u003e: Caption: Prefix templates are now preserved exactly as specified allowing the insertion of HTML tags if\ndesired.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eFIX\u003c/strong\u003e: Caption: Fix issue where manual numbers in auto were not respected appropriately.\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/facelessuser/pymdown-extensions/commit/7d3d4f990463e50b1ba1e20830832285d92990c7\"\u003e\u003ccode\u003e7d3d4f9\u003c/code\u003e\u003c/a\u003e Add early support for Python 3.14 (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2697\"\u003e#2697\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/beb841e6f968b81403166d685b083fe2bde84bbc\"\u003e\u003ccode\u003ebeb841e\u003c/code\u003e\u003c/a\u003e Docs: Update JS deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/620d7fded457a0b5317019fa461a27f484a0d3d4\"\u003e\u003ccode\u003e620d7fd\u003c/code\u003e\u003c/a\u003e Docs: update JS deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/a49f32aa4ac91d97c7c10c9abe7f654b5ec802e5\"\u003e\u003ccode\u003ea49f32a\u003c/code\u003e\u003c/a\u003e Refactor for mypy issue\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/52a481b5591879f49baffecf4275f351d27a3759\"\u003e\u003ccode\u003e52a481b\u003c/code\u003e\u003c/a\u003e Docs: update JS dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/2a1828accdc2371d97610fbbb574dd878e090b54\"\u003e\u003ccode\u003e2a1828a\u003c/code\u003e\u003c/a\u003e Allow raw HTML in caption prefix (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2679\"\u003e#2679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/fbf4bf22da3bc864f24b4ee6a2c05b145fb6c304\"\u003e\u003ccode\u003efbf4bf2\u003c/code\u003e\u003c/a\u003e Fix issue where manual captions in auto were not respected properly (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2678\"\u003e#2678\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/70cf820aae36d57cf493ca9c8c2e24ab11c6c445\"\u003e\u003ccode\u003e70cf820\u003c/code\u003e\u003c/a\u003e Fix spelling of marketplace for GitHub (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2674\"\u003e#2674\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/553251d5a68999a95b71bd155fa83b3f9a4f7997\"\u003e\u003ccode\u003e553251d\u003c/code\u003e\u003c/a\u003e Add retry logic for rate limited HTTP errors (429) (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2669\"\u003e#2669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/facelessuser/pymdown-extensions/commit/bd2f267557e27d1482db5ad7c0a9db4c619a6004\"\u003e\u003ccode\u003ebd2f267\u003c/code\u003e\u003c/a\u003e Drop Python 3.8 (\u003ca href=\"https://redirect.github.com/facelessuser/pymdown-extensions/issues/2654\"\u003e#2654\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/facelessuser/pymdown-extensions/compare/10.15...10.16\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.4.0 to 2.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.5.0\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch1\u003eSecurity issues\u003c/h1\u003e\n\u003cp\u003eurllib3 2.5.0 fixes two moderate security issues:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePool managers now properly control redirects when \u003ccode\u003eretries\u003c/code\u003e is passed — CVE-2025-50181 reported by \u003ca href=\"https://github.com/sandumjacob\"\u003e\u003ccode\u003e@​sandumjacob\u003c/code\u003e\u003c/a\u003e (5.3 Medium, GHSA-pq67-6m6q-mj2v)\u003c/li\u003e\n\u003cli\u003eRedirects are now controlled by urllib3 in the Node.js runtime — CVE-2025-50182 (5.3 Medium, GHSA-48p4-8xcf-vxj5)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFeatures\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for the \u003ccode\u003ecompression.zstd\u003c/code\u003e module that is new in Python 3.14. See \u003ca href=\"https://peps.python.org/pep-0784/\"\u003ePEP 784\u003c/a\u003e for more information. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3610\"\u003e#3610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for version 0.5 of \u003ccode\u003ehatch-vcs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3612\"\u003e#3612\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eBugfixes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRaised exception for \u003ccode\u003eHTTPResponse.shutdown\u003c/code\u003e on a connection already released to the pool. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3581\"\u003e#3581\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed incorrect \u003ccode\u003eCONNECT\u003c/code\u003e statement when using an IPv6 proxy with \u003ccode\u003econnection_from_host\u003c/code\u003e. Previously would not be wrapped in \u003ccode\u003e[]\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3615\"\u003e#3615\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/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.5.0 (2025-06-18)\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for the \u003ccode\u003ecompression.zstd\u003c/code\u003e module that is new in Python 3.14.\nSee \u003ccode\u003ePEP 784 \u0026lt;https://peps.python.org/pep-0784/\u0026gt;\u003c/code\u003e_ for more information. (\u003ccode\u003e[#3610](https://github.com/urllib3/urllib3/issues/3610) \u0026lt;https://github.com/urllib3/urllib3/issues/3610\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded support for version 0.5 of \u003ccode\u003ehatch-vcs\u003c/code\u003e (\u003ccode\u003e[#3612](https://github.com/urllib3/urllib3/issues/3612) \u0026lt;https://github.com/urllib3/urllib3/issues/3612\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a security issue where restricting the maximum number of followed\nredirects at the \u003ccode\u003eurllib3.PoolManager\u003c/code\u003e level via the \u003ccode\u003eretries\u003c/code\u003e parameter\ndid not work.\u003c/li\u003e\n\u003cli\u003eMade the Node.js runtime respect redirect parameters such as \u003ccode\u003eretries\u003c/code\u003e\nand \u003ccode\u003eredirects\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised exception for \u003ccode\u003eHTTPResponse.shutdown\u003c/code\u003e on a connection already released to the pool. (\u003ccode\u003e[#3581](https://github.com/urllib3/urllib3/issues/3581) \u0026lt;https://github.com/urllib3/urllib3/issues/3581\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed incorrect \u003ccode\u003eCONNECT\u003c/code\u003e statement when using an IPv6 proxy with \u003ccode\u003econnection_from_host\u003c/code\u003e. Previously would not be wrapped in \u003ccode\u003e[]\u003c/code\u003e. (\u003ccode\u003e[#3615](https://github.com/urllib3/urllib3/issues/3615) \u0026lt;https://github.com/urllib3/urllib3/issues/3615\u0026gt;\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/urllib3/urllib3/commit/aaab4eccc10c965897540b21e15f11859d0b62e7\"\u003e\u003ccode\u003eaaab4ec\u003c/code\u003e\u003c/a\u003e Release 2.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/7eb4a2aafe49a279c29b6d1f0ed0f42e9736194f\"\u003e\u003ccode\u003e7eb4a2a\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/f05b1329126d5be6de501f9d1e3e36738bc08857\"\u003e\u003ccode\u003ef05b132\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/d03fe327a71d09728512217149f269763671f296\"\u003e\u003ccode\u003ed03fe32\u003c/code\u003e\u003c/a\u003e Fix HTTP tunneling with IPv6 in older Python versions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/11661e9bb4278e43d081f47a516e287a928c2206\"\u003e\u003ccode\u003e11661e9\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 3.28.0 to 3.29.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3624\"\u003e#3624\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/6a0ecc6b16fe30f721021b44a81d19615098c71e\"\u003e\u003ccode\u003e6a0ecc6\u003c/code\u003e\u003c/a\u003e Update v2 migration guide to 2.4.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3621\"\u003e#3621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/8e32e60d9024c05bc6f7adda08bdf6c539d0b0d4\"\u003e\u003ccode\u003e8e32e60\u003c/code\u003e\u003c/a\u003e Raise exception for shutdown on a connection already released to the pool (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3\"\u003e#3\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/9996e0fbf90b77083ad3c73737a6c6395703faa9\"\u003e\u003ccode\u003e9996e0f\u003c/code\u003e\u003c/a\u003e Fix emscripten CI for Chrome 137+ (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3599\"\u003e#3599\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/4fd1a99a59725faf0efc946ce3b6bc9a194420af\"\u003e\u003ccode\u003e4fd1a99\u003c/code\u003e\u003c/a\u003e Bump RECENT_DATE (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3617\"\u003e#3617\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/c4b5917e911a90c8bf279448df8952a682294135\"\u003e\u003ccode\u003ec4b5917\u003c/code\u003e\u003c/a\u003e Add support for the new \u003ccode\u003ecompression.zstd\u003c/code\u003e module in Python 3.14 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3611\"\u003e#3611\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.4.0...2.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.4.0 to 8.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.4.1\u003c/h2\u003e\n\u003ch1\u003epytest 8.4.1 (2025-06-17)\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/13461\"\u003e#13461\u003c/a\u003e: Corrected \u003ccode\u003e_pytest.terminal.TerminalReporter.isatty\u003c/code\u003e to support\nbeing called as a method. Before it was just a boolean which could\nbreak correct code when using \u003ccode\u003e-o log_cli=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/13477\"\u003e#13477\u003c/a\u003e: Reintroduced \u003ccode\u003epytest.PytestReturnNotNoneWarning\u003c/code\u003e{.interpreted-text role=\u0026quot;class\u0026quot;} which was removed by accident in pytest [8.4]{.title-ref}.\u003c/p\u003e\n\u003cp\u003eThis warning is raised when a test functions returns a value other than \u003ccode\u003eNone\u003c/code\u003e, which is often a mistake made by beginners.\u003c/p\u003e\n\u003cp\u003eSee \u003ccode\u003ereturn-not-none\u003c/code\u003e{.interpreted-text role=\u0026quot;ref\u0026quot;} for more information.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13497\"\u003e#13497\u003c/a\u003e: Fixed compatibility with \u003ccode\u003eTwisted 25+\u003c/code\u003e.\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/13492\"\u003e#13492\u003c/a\u003e: Fixed outdated warning about \u003ccode\u003efaulthandler\u003c/code\u003e not working on Windows.\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/8d99211f0ce3927eb7ee579f7b4f969da06dc787\"\u003e\u003ccode\u003e8d99211\u003c/code\u003e\u003c/a\u003e Prepare release version 8.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5dc5880715633c97310c0593f0ae356de27fa933\"\u003e\u003ccode\u003e5dc5880\u003c/code\u003e\u003c/a\u003e docs: update pytest.ini addopts example to use separate -p entries (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13529\"\u003e#13529\u003c/a\u003e) (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d0c7ed0bfae5a5f1f9153cd1e464a421d701e925\"\u003e\u003ccode\u003ed0c7ed0\u003c/code\u003e\u003c/a\u003e Reintroduce PytestReturnNotNoneWarning (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13495\"\u003e#13495\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13527\"\u003e#13527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a1b3a7879589eb437e4fd97c169b228c3ed58c63\"\u003e\u003ccode\u003ea1b3a78\u003c/code\u003e\u003c/a\u003e Fix compatibility with Twisted 25 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13502\"\u003e#13502\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13531\"\u003e#13531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/4c161aba8ecaab9940040702369025595d26564c\"\u003e\u003ccode\u003e4c161ab\u003c/code\u003e\u003c/a\u003e pytester: avoid unraisableexception gc collects in inline runs to speed up te...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a86ee09291f913b36fdeec14c42356515b91c979\"\u003e\u003ccode\u003ea86ee09\u003c/code\u003e\u003c/a\u003e Fix typo in parametrize.rst (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13514\"\u003e#13514\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13516\"\u003e#13516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/1a0581b0227fa07afd1f2c4c6215aec3862cf1ab\"\u003e\u003ccode\u003e1a0581b\u003c/code\u003e\u003c/a\u003e Remove outdated warning about faulthandler_timeout on Windows (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13492\"\u003e#13492\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13493\"\u003e#13493\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/4e631a71484c2fa49e3fd9f884546af411a4888d\"\u003e\u003ccode\u003e4e631a7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13486\"\u003e#13486\u003c/a\u003e from hosmir/fixtypo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13487\"\u003e#13487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b49745ec529f06edfbbe531b766839763b2be3c2\"\u003e\u003ccode\u003eb49745e\u003c/code\u003e\u003c/a\u003e fix: support TerminalReporter.isatty being called (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13462\"\u003e#13462\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13483\"\u003e#13483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/cc5ceed916d0c63696da33c67e035917194a4e87\"\u003e\u003ccode\u003ecc5ceed\u003c/code\u003e\u003c/a\u003e RELEASING: remove pytest mailing list (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13472\"\u003e#13472\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13473\"\u003e#13473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.4.0...8.4.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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/ansible/mkdocs-ansible/pull/223","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ansible%2Fmkdocs-ansible/issues/223","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/223/packages"}},{"old_version":"1.26.19","new_version":"2.4.0","update_type":"major","path":null,"pr_created_at":"2025-06-01T15:27:31.000Z","version_change":"1.26.19 → 2.4.0","issue":{"uuid":"2558290731","node_id":"PR_kwDOB845h86YfGsr","number":679,"state":"closed","title":"Bump the main-dependencies group with 20 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-06-01T15:44:38.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2025-06-01T15:27:31.000Z","updated_at":"2025-06-01T15:44:38.000Z","time_to_close":1027,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"main-dependencies","update_count":20,"packages":[{"name":"scipy","old_version":"1.14.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"astropy","old_version":"6.1.5","new_version":"6.1.7","repository_url":"https://github.com/astropy/astropy"},{"name":"lxml","old_version":"5.2.2","new_version":"5.4.0","repository_url":"https://github.com/lxml/lxml"},{"name":"more-itertools","old_version":"10.2.0","new_version":"10.7.0","repository_url":"https://github.com/more-itertools/more-itertools"},{"name":"tqdm","old_version":"4.66.5","new_version":"4.67.1","repository_url":"https://github.com/tqdm/tqdm"},{"name":"packaging","old_version":"23.2","new_version":"25.0","repository_url":"https://github.com/pypa/packaging"},{"name":"anyio","old_version":"3.7.1","new_version":"4.9.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"certifi","old_version":"2024.7.4","new_version":"2025.4.26","repository_url":"https://github.com/certifi/python-certifi"},{"name":"charset-normalizer","old_version":"3.3.2","new_version":"3.4.2","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"contourpy","old_version":"1.2.0","new_version":"1.3.2","repository_url":"https://github.com/contourpy/contourpy"},{"name":"exceptiongroup","old_version":"1.2.0","new_version":"1.3.0","repository_url":"https://github.com/agronholm/exceptiongroup"},{"name":"fonttools","old_version":"4.47.0","new_version":"4.58.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"idna","old_version":"3.7","new_version":"3.10","repository_url":"https://github.com/kjd/idna"},{"name":"pillow","old_version":"11.0.0","new_version":"11.2.1","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"platformdirs","old_version":"4.1.0","new_version":"4.3.8","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pyparsing","old_version":"3.0.9","new_version":"3.2.3","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"soupsieve","old_version":"2.5","new_version":"2.7","repository_url":"https://github.com/facelessuser/soupsieve"},{"name":"typing-extensions","old_version":"4.9.0","new_version":"4.13.2","repository_url":"https://github.com/python/typing_extensions"},{"name":"urllib3","old_version":"1.26.19","new_version":"2.4.0","repository_url":"https://github.com/urllib3/urllib3"}],"path":null,"ecosystem":"conda"},"body":"Bumps the main-dependencies group with 20 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [scipy](https://github.com/scipy/scipy) | `1.14.1` | `1.15.3` |\n| [astropy](https://github.com/astropy/astropy) | `6.1.5` | `6.1.7` |\n| [lxml](https://github.com/lxml/lxml) | `5.2.2` | `5.4.0` |\n| [more-itertools](https://github.com/more-itertools/more-itertools) | `10.2.0` | `10.7.0` |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.66.5` | `4.67.1` |\n| [packaging](https://github.com/pypa/packaging) | `23.2` | `25.0` |\n| [anyio](https://github.com/agronholm/anyio) | `3.7.1` | `4.9.0` |\n| [certifi](https://github.com/certifi/python-certifi) | `2024.7.4` | `2025.4.26` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.3.2` | `3.4.2` |\n| [contourpy](https://github.com/contourpy/contourpy) | `1.2.0` | `1.3.2` |\n| [exceptiongroup](https://github.com/agronholm/exceptiongroup) | `1.2.0` | `1.3.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.47.0` | `4.58.1` |\n| [idna](https://github.com/kjd/idna) | `3.7` | `3.10` |\n| [pillow](https://github.com/python-pillow/Pillow) | `11.0.0` | `11.2.1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.1.0` | `4.3.8` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.0.9` | `3.2.3` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [soupsieve](https://github.com/facelessuser/soupsieve) | `2.5` | `2.7` |\n| [typing-extensions](https://github.com/python/typing_extensions) | `4.9.0` | `4.13.2` |\n| [urllib3](https://github.com/urllib3/urllib3) | `1.26.19` | `2.4.0` |\n\nUpdates `scipy` from 1.14.1 to 1.15.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scipy/scipy/releases\"\u003escipy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eSciPy 1.15.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eSciPy \u003ccode\u003e1.15.3\u003c/code\u003e is a bug-fix release with no new features\ncompared to \u003ccode\u003e1.15.2\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eFor the complete issue and PR lists see the \u003ca href=\"https://github.com/scipy/scipy/releases/download/v1.15.3/README.txt\"\u003eraw release notes\u003c/a\u003e.\u003c/p\u003e\n\u003ch1\u003eAuthors\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eName (commits)\u003c/li\u003e\n\u003cli\u003eaiudirog (1) +\u003c/li\u003e\n\u003cli\u003eNickolai Belakovski (1)\u003c/li\u003e\n\u003cli\u003eFlorian Bourgey (1) +\u003c/li\u003e\n\u003cli\u003eRichard Strong Bowen (2) +\u003c/li\u003e\n\u003cli\u003eJake Bowhay (1)\u003c/li\u003e\n\u003cli\u003eDietrich Brunn (2)\u003c/li\u003e\n\u003cli\u003eEvgeni Burovski (1)\u003c/li\u003e\n\u003cli\u003eLucas Colley (1)\u003c/li\u003e\n\u003cli\u003eRalf Gommers (1)\u003c/li\u003e\n\u003cli\u003eSaarthak Gupta (1) +\u003c/li\u003e\n\u003cli\u003eMatt Haberland (4)\u003c/li\u003e\n\u003cli\u003eChengyu Han (1) +\u003c/li\u003e\n\u003cli\u003eLukas Huber (1) +\u003c/li\u003e\n\u003cli\u003eNick ODell (2)\u003c/li\u003e\n\u003cli\u003eIlhan Polat (4)\u003c/li\u003e\n\u003cli\u003eTyler Reddy (52)\u003c/li\u003e\n\u003cli\u003eNeil Schemenauer (1) +\u003c/li\u003e\n\u003cli\u003eDan Schult (1)\u003c/li\u003e\n\u003cli\u003esildater (1) +\u003c/li\u003e\n\u003cli\u003eGagandeep Singh (4)\u003c/li\u003e\n\u003cli\u003eAlbert Steppi (2)\u003c/li\u003e\n\u003cli\u003eMatthias Urlichs (1) +\u003c/li\u003e\n\u003cli\u003eDavid Varela (1) +\u003c/li\u003e\n\u003cli\u003eਗਗਨਦੀਪ ਸਿੰਘ (Gagandeep Singh) (3)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eA total of 24 people contributed to this release.\nPeople with a \u0026quot;+\u0026quot; by their names contributed a patch for the first time.\nThis list of names is automatically generated, and may not be fully complete.\u003c/p\u003e\n\u003ch1\u003eSciPy 1.15.2 Release Notes\u003c/h1\u003e\n\u003cp\u003eSciPy \u003ccode\u003e1.15.2\u003c/code\u003e is a bug-fix release with no new features\ncompared to \u003ccode\u003e1.15.1\u003c/code\u003e. Free-threaded Python \u003ccode\u003e3.13\u003c/code\u003e wheels\nfor Linux ARM platform are available on PyPI starting with\nthis release.\u003c/p\u003e\n\u003cp\u003eAuthors\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/scipy/scipy/commit/e29dcb65a2040f04819b426a04b60d44a8f69c04\"\u003e\u003ccode\u003ee29dcb6\u003c/code\u003e\u003c/a\u003e REL: 1.15.3 rel commit [wheel build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/61e6aa16d8868097256ac4413cad97ab7cd120fd\"\u003e\u003ccode\u003e61e6aa1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/scipy/scipy/issues/22840\"\u003e#22840\u003c/a\u003e from tylerjereddy/treddy_1.15.3_backports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/18c4ca8cb6b4e5335e460eca3128efe2e7e8b86b\"\u003e\u003ccode\u003e18c4ca8\u003c/code\u003e\u003c/a\u003e MAINT: PR 22840 wheel build [wheel build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/bd0f132b37f5eaab79b50eefbe2139c0f1bde443\"\u003e\u003ccode\u003ebd0f132\u003c/code\u003e\u003c/a\u003e MAINT: PR 22840 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/033b13880993f49e485f8ba763fbb3847ff4b801\"\u003e\u003ccode\u003e033b138\u003c/code\u003e\u003c/a\u003e MAINT: PR 22840 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/7a283ccc33378001f10a29fdece5d8f5f6c090d8\"\u003e\u003ccode\u003e7a283cc\u003c/code\u003e\u003c/a\u003e DOC: PR 22840 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/3d1ea405a3d45c438583740dd6391316d17d8bc6\"\u003e\u003ccode\u003e3d1ea40\u003c/code\u003e\u003c/a\u003e BUG: spatial.HalfspaceIntersection: raise on non-feasible half space (\u003ca href=\"https://redirect.github.com/scipy/scipy/issues/20035\"\u003e#20035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/d01b9843c01e55076b0426c5d5a3c1a439d1d7e5\"\u003e\u003ccode\u003ed01b984\u003c/code\u003e\u003c/a\u003e BUG: ndimage.median_filter: fix segfault when using \u003ccode\u003emode='mirror'\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/scipy/scipy/issues/22608\"\u003e#22608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/0879108c5f7e7f74d3b41ed1edcf8db85b5a8f02\"\u003e\u003ccode\u003e0879108\u003c/code\u003e\u003c/a\u003e MAINT: special.logsumexp: fix bug when weight of largest magnitude component ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/9b3b2d81374475495d9c6c550aaab96330dfa913\"\u003e\u003ccode\u003e9b3b2d8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/scipy/scipy/issues/22869\"\u003e#22869\u003c/a\u003e from smurfix/main\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scipy/scipy/compare/v1.14.1...v1.15.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `astropy` from 6.1.5 to 6.1.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astropy/astropy/releases\"\u003eastropy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev6.1.7\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href=\"https://docs.astropy.org/en/v6.1.7/changelog.html\"\u003ehttps://docs.astropy.org/en/v6.1.7/changelog.html\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/astropy/astropy/commit/5692198e18a6cef1a367979dba1d0214185a0be1\"\u003e\u003ccode\u003e5692198\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/astropy/astropy/issues/17431\"\u003e#17431\u003c/a\u003e from astrofrog/v6.1.7-changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy/commit/2106f39b7ee24654726d708e797bf3cf255e4b09\"\u003e\u003ccode\u003e2106f39\u003c/code\u003e\u003c/a\u003e Finalizing changelog for v6.1.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy/commit/044a150d8b278f59a2c8de60257ba50c5beffd88\"\u003e\u003ccode\u003e044a150\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/astropy/astropy/issues/17411\"\u003e#17411\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-17410-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy/commit/6d263f8b45b39e6bccb3b17eb9c6c04023ff05fa\"\u003e\u003ccode\u003e6d263f8\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/astropy/astropy/issues/17410\"\u003e#17410\u003c/a\u003e: Add sigma_clip tests for MaskedArray masks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy/commit/5328b704354f3c864dc9d66313cf3e026ffbb427\"\u003e\u003ccode\u003e5328b70\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/astropy/astropy/issues/17407\"\u003e#17407\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-17402-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy/commit/f5cb2dcea980e3d134ff051d0d26724484f6d72c\"\u003e\u003ccode\u003ef5cb2dc\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/astropy/astropy/issues/17402\"\u003e#17402\u003c/a\u003e: Fix loss of mask sigma clipping (issue \u003ca href=\"https://redirect.github.com/astropy/astropy/issues/17401\"\u003e#17401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy/commit/99241d3dc7323a506de99c1aebbba8ff0d472371\"\u003e\u003ccode\u003e99241d3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/astropy/astropy/issues/17396\"\u003e#17396\u003c/a\u003e from meeseeksmachine/auto-backport-of-pr-17394-on-v...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy/commit/9444181727e9fdea17d00028ac040d9f6dcd2965\"\u003e\u003ccode\u003e9444181\u003c/code\u003e\u003c/a\u003e Backport PR \u003ca href=\"https://redirect.github.com/astropy/astropy/issues/17394\"\u003e#17394\u003c/a\u003e: Fix typos in quantity tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy/commit/d4e571a7f2cde8103a3da0669a9f3d10cc18b571\"\u003e\u003ccode\u003ed4e571a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/astropy/astropy/issues/17370\"\u003e#17370\u003c/a\u003e from astrofrog/v6.1.6-changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astropy/astropy/commit/5d2ff642e5431782caa206630f121b79cdb8fa60\"\u003e\u003ccode\u003e5d2ff64\u003c/code\u003e\u003c/a\u003e Finalizing changelog for v6.1.6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astropy/astropy/compare/v6.1.5...v6.1.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `lxml` from 5.2.2 to 5.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/lxml/lxml/releases\"\u003elxml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003elxml-5.4.0\u003c/h2\u003e\n\u003ch1\u003e5.4.0 (2025-04-22)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLP#2107279: Binary wheels use libxml2 2.13.8 and libxslt 1.1.43 to resolve several CVEs.\n(Binary wheels for Windows continue to use a patched libxml2 2.11.9 and libxslt 1.1.39.)\nIssue found by Anatoly Katyushin, see \u003ca href=\"https://bugs.launchpad.net/lxml/+bug/2107279\"\u003ehttps://bugs.launchpad.net/lxml/+bug/2107279\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003elxml-5.3.2\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003elxml-5.3.1\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\u003c/p\u003e\n\u003ch2\u003elxml-5.3.0\u003c/h2\u003e\n\u003cp\u003eNo release notes provided.\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/lxml/lxml/blob/master/CHANGES.txt\"\u003elxml's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.4.0 (2025-04-22)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLP#2107279: Binary wheels use libxml2 2.13.8 and libxslt 1.1.43 to resolve several CVEs.\n(Binary wheels for Windows continue to use a patched libxml2 2.11.9 and libxslt 1.1.39.)\nIssue found by Anatoly Katyushin.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e5.3.2 (2025-04-05)\u003c/h1\u003e\n\u003cp\u003eThis release resolves CVE-2025-24928 as described in\n\u003ca href=\"https://gitlab.gnome.org/GNOME/libxml2/-/issues/847\"\u003ehttps://gitlab.gnome.org/GNOME/libxml2/-/issues/847\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eBinary wheels use libxml2 2.12.10 and libxslt 1.1.42.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eBinary wheels for Windows use a patched libxml2 2.11.9 and libxslt 1.1.39.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e5.3.1 (2025-02-09)\u003c/h1\u003e\n\u003ch2\u003eBugs fixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eGH#440: Some tests were adapted for libxml2 2.14.0.\nPatch by Nick Wellnhofer.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eLP#2097175: \u003ccode\u003eDTD(external_id=\u0026quot;…\u0026quot;)\u003c/code\u003e erroneously required a byte string as ID value.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eGH#450: \u003ccode\u003eiterparse()\u003c/code\u003e internally triggered the `DeprecationWarning`` added in lxml 5.3.0 when parsing HTML.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eGH#442: Binary wheels for macOS no longer use the linker flag \u003ccode\u003e-flat_namespace\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e5.3.0 (2024-08-10)\u003c/h1\u003e\n\u003ch2\u003eFeatures added\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/6e76d57af83d59d7a0456fd5889e392a7b366b43\"\u003e\u003ccode\u003e6e76d57\u003c/code\u003e\u003c/a\u003e Build: Exclude slow Py3.9 wheel builds for s390/ppc and Py3.7 for ARM64.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/ee10c02bb771be22e6e3c36a90f3b66e5ce87752\"\u003e\u003ccode\u003eee10c02\u003c/code\u003e\u003c/a\u003e Prepare release of lxml 5.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/0e4f3c33723bb2b4d9565046a24a896c36fb5602\"\u003e\u003ccode\u003e0e4f3c3\u003c/code\u003e\u003c/a\u003e Prepare release of lxml 5.3.3.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/b4703fc2e74296a1bcb44ba050d856ceab21d87f\"\u003e\u003ccode\u003eb4703fc\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/db723bb3b9140f9f313f4b638790a69e82eae2a3\"\u003e\u003ccode\u003edb723bb\u003c/code\u003e\u003c/a\u003e Build: Use libxslt 1.1.43 instead of 1.1.42 to resolve some CVEs.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/a664877bde77d4d649fb8475e8bfb2bc2693ac26\"\u003e\u003ccode\u003ea664877\u003c/code\u003e\u003c/a\u003e Build: Use libxml2 2.13.8 instead of 2.12.x to resolve some CVEs.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/df4633e7a919f0a4d42df310f17477b5ab51e403\"\u003e\u003ccode\u003edf4633e\u003c/code\u003e\u003c/a\u003e Remove appveyor usage.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/820db896be83f72f1cb653981362c682c8fc0d1f\"\u003e\u003ccode\u003e820db89\u003c/code\u003e\u003c/a\u003e CI: Allow Py3.14 jobs to fail.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/93ad02aad6caa1a7a4b2f595c2973644709cb5f9\"\u003e\u003ccode\u003e93ad02a\u003c/code\u003e\u003c/a\u003e docs: Add a note about C compiler installation to error message (\u003ca href=\"https://redirect.github.com/lxml/lxml/issues/454\"\u003eGH-454\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lxml/lxml/commit/16878dac7075903c7b6e412f5f770ce43e942509\"\u003e\u003ccode\u003e16878da\u003c/code\u003e\u003c/a\u003e Add some hints to the documentation on how to build lxml (\u003ca href=\"https://redirect.github.com/lxml/lxml/issues/453\"\u003eGH-453\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/lxml/lxml/compare/lxml-5.2.2...lxml-5.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `more-itertools` from 10.2.0 to 10.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/more-itertools/more-itertools/releases\"\u003emore-itertools's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 10.7.0\u003c/h2\u003e\n\u003cp\u003eSee the change log \u003ca href=\"https://github.com/more-itertools/more-itertools/blob/28ab73678adc39eacc2610bd67c1c4a37def6c28/docs/versions.rst#L8\"\u003ehere\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003eVersion 10.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNew functions:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eis_prime\u003c/code\u003e and \u003ccode\u003enth_prime\u003c/code\u003e were added (thanks to JamesParrott and rhettinger)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eloops\u003c/code\u003e was added (thanks to rhettinger)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanges to existing functions:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efactor\u003c/code\u003e was optimized to handle larger inputs and use less memory (thanks to rhettinger)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003espy\u003c/code\u003e was optimized to enable nested calls (thanks to rhettinger)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003epolynomial_from_roots\u003c/code\u003e was made non-recursive and able to handle larger numbers of roots (thanks to pochmann3 and rhettinger)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eis_sorted\u003c/code\u003e now only relies on less than comparisons (thanks to rhettinger)\u003c/li\u003e\n\u003cli\u003eThe docstring for \u003ccode\u003eouter_product\u003c/code\u003e was improved (thanks to rhettinger)\u003c/li\u003e\n\u003cli\u003eThe type annotations for \u003ccode\u003esample\u003c/code\u003e were improved (thanks to rhettinger)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eOther changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePython 3.13 is officially supported. Python 3.8 is no longer officially supported. (thanks to hugovk, JamesParrott, and stankudrow)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emypy\u003c/code\u003e checks were fixed (thanks to JamesParrott)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev10.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOptimize all_equal recipe by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/899\"\u003emore-itertools/more-itertools#899\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReduce groupby.\u003cstrong\u003enext\u003c/strong\u003e calls in all_equal by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/903\"\u003emore-itertools/more-itertools#903\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix types.UnionType by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/905\"\u003emore-itertools/more-itertools#905\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVersion 10.5.0 by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/906\"\u003emore-itertools/more-itertools#906\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/more-itertools/more-itertools/compare/v10.4.0...v10.5.0\"\u003ehttps://github.com/more-itertools/more-itertools/compare/v10.4.0...v10.5.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 10.4.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIssue 854: sample improvements by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/855\"\u003emore-itertools/more-itertools#855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 858: Use chain and starmap in run_length.decode by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/861\"\u003emore-itertools/more-itertools#861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 859: Update totient recipe by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/860\"\u003emore-itertools/more-itertools#860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDistinct permutations of incomparable items by \u003ca href=\"https://github.com/JamesParrott\"\u003e\u003ccode\u003e@​JamesParrott\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/834\"\u003emore-itertools/more-itertools#834\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eClarify seekable.relative_seek behavior by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/863\"\u003emore-itertools/more-itertools#863\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 864: Improve _sample_unweighted by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/865\"\u003emore-itertools/more-itertools#865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse log1p for _sample_unweighted by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/868\"\u003emore-itertools/more-itertools#868\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 862: change relative_seek() behaviour by \u003ca href=\"https://github.com/dkrikun\"\u003e\u003ccode\u003e@​dkrikun\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/866\"\u003emore-itertools/more-itertools#866\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 876: is_sorted clarifications by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/877\"\u003emore-itertools/more-itertools#877\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 870: counts parameter for sample by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/875\"\u003emore-itertools/more-itertools#875\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 869: Add a steps argument to circular_shifts by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/874\"\u003emore-itertools/more-itertools#874\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 871: Add a fast path for sliding_window by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/873\"\u003emore-itertools/more-itertools#873\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003etype annotation of \u003ccode\u003ewindowed_complete\u003c/code\u003e corrected by \u003ca href=\"https://github.com/m472\"\u003e\u003ccode\u003e@​m472\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/881\"\u003emore-itertools/more-itertools#881\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Docs] Fix strictly_n missing the n parameter by \u003ca href=\"https://github.com/fakuivan\"\u003e\u003ccode\u003e@​fakuivan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/886\"\u003emore-itertools/more-itertools#886\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStandardize type hints for isinstance's second argument by \u003ca href=\"https://github.com/jbosboom\"\u003e\u003ccode\u003e@​jbosboom\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/887\"\u003emore-itertools/more-itertools#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 883: change type hint by \u003ca href=\"https://github.com/akisatoon1\"\u003e\u003ccode\u003e@​akisatoon1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/884\"\u003emore-itertools/more-itertools#884\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd type overloads for \u003ccode\u003ezip_broadcast\u003c/code\u003e by \u003ca href=\"https://github.com/Pandede\"\u003e\u003ccode\u003e@​Pandede\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/888\"\u003emore-itertools/more-itertools#888\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue 889: Optimize triplewise by \u003ca href=\"https://github.com/bbayles\"\u003e\u003ccode\u003e@​bbayles\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/pull/891\"\u003emore-itertools/more-itertools#891\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/more-itertools/more-itertools/commit/28ab73678adc39eacc2610bd67c1c4a37def6c28\"\u003e\u003ccode\u003e28ab736\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/issues/977\"\u003e#977\u003c/a\u003e from more-itertools/version-10.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/4c1a0c7af1c433f67a5ba999d5ef019577c5bc31\"\u003e\u003ccode\u003e4c1a0c7\u003c/code\u003e\u003c/a\u003e Bump version: 10.6.0 → 10.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/f2d5c9fbb6c995132e820e001ff5591cfea99329\"\u003e\u003ccode\u003ef2d5c9f\u003c/code\u003e\u003c/a\u003e Late-breaking changes for 10.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/5d5a9e6190c5372625a3bba9ba9a1f5b1b54860d\"\u003e\u003ccode\u003e5d5a9e6\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'origin/master' into version-10.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/8988de66332ef26f0873ed80f2f466f525b46b0a\"\u003e\u003ccode\u003e8988de6\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/issues/975\"\u003e#975\u003c/a\u003e from rhettinger/groupby_transform_overloads\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/c925c2eb8ffc673544dca298bc3670e6c797c93a\"\u003e\u003ccode\u003ec925c2e\u003c/code\u003e\u003c/a\u003e Fix inner Iterable types as well\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/cc38c748465cc14362bea3daac54009dc892d364\"\u003e\u003ccode\u003ecc38c74\u003c/code\u003e\u003c/a\u003e Fix \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/issues/974\"\u003e#974\u003c/a\u003e: Inconsistent \u003ca href=\"https://github.com/overload\"\u003e\u003ccode\u003e@​overload\u003c/code\u003e\u003c/a\u003e signatures\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/3742de96f864666a0360dfcb20ee645491bb6494\"\u003e\u003ccode\u003e3742de9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/issues/972\"\u003e#972\u003c/a\u003e from ricbit/master\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/c904030580fe25ff430b5129900b5d622f9952e1\"\u003e\u003ccode\u003ec904030\u003c/code\u003e\u003c/a\u003e Fix some typos\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/more-itertools/more-itertools/commit/6d0fe022dc744e785026c63977190d6ba5d164e2\"\u003e\u003ccode\u003e6d0fe02\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/more-itertools/more-itertools/issues/971\"\u003e#971\u003c/a\u003e from rhettinger/small_doc_edits\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/more-itertools/more-itertools/compare/v10.2.0...v10.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tqdm` from 4.66.5 to 4.67.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.67.1 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix \u003ccode\u003egui\u003c/code\u003e (\u003ccode\u003ematplotlib\u003c/code\u003e syntax) (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1629\"\u003e#1629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc test \u0026amp; framework updates\n\u003cul\u003e\n\u003cli\u003ebump \u003ccode\u003epytest-asyncio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1630\"\u003e#1630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003ecodecov\u003c/code\u003e rate limit\u003c/li\u003e\n\u003cli\u003efix pybuild\u003c/li\u003e\n\u003cli\u003esync dependencies\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.67.0 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003econtrib.discord\u003c/code\u003e: replace \u003ccode\u003edisco-py\u003c/code\u003e with \u003ccode\u003erequests\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1536\"\u003e#1536\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.66.6 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ecli: zip-safe \u003ccode\u003e--manpath\u003c/code\u003e, \u003ccode\u003e--comppath\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1627\"\u003e#1627\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emisc framework updates (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1627\"\u003e#1627\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003efix \u003ccode\u003epytest\u003c/code\u003e \u003ccode\u003eDeprecationWarning\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003esnapcraft\u003c/code\u003e build\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003enbval\u003c/code\u003e \u003ccode\u003eDeprecationWarning\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eupdate \u0026amp; tidy workflows\u003c/li\u003e\n\u003cli\u003ebump pre-commit\u003c/li\u003e\n\u003cli\u003edocs: update URLs\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/0ed5d7f18fa3153834cbac0aa57e8092b217cc16\"\u003e\u003ccode\u003e0ed5d7f\u003c/code\u003e\u003c/a\u003e bump version, merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1629\"\u003e#1629\u003c/a\u003e from tqdm/fix-gui\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/a2d5f1c9d1cbdbcf56f52dc4365ea4124e3e33f7\"\u003e\u003ccode\u003ea2d5f1c\u003c/code\u003e\u003c/a\u003e tests: fix codecov rate limit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/cac7150d7c8a650c7e76004cd7f8643990932c7f\"\u003e\u003ccode\u003ecac7150\u003c/code\u003e\u003c/a\u003e tests: bump pytest-asyncio\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/6338f6216996918fdc9c9a73bf095acac54ce0bb\"\u003e\u003ccode\u003e6338f62\u003c/code\u003e\u003c/a\u003e deps: fix pybuild\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/342b15ed68ae7c5ec1082cadb1b563c7dfde610f\"\u003e\u003ccode\u003e342b15e\u003c/code\u003e\u003c/a\u003e tests: sync deps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/c66458d9ac2ad096937406f79d105af891cee6e7\"\u003e\u003ccode\u003ec66458d\u003c/code\u003e\u003c/a\u003e gui: fix matplotlib\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/35a6ee9a4527bab5c0c7234531269e0c7fd0f2fd\"\u003e\u003ccode\u003e35a6ee9\u003c/code\u003e\u003c/a\u003e bump version, merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1536\"\u003e#1536\u003c/a\u003e from guigoruiz1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/8aa9470e485a90679936d3781a4f953cf5afa8f4\"\u003e\u003ccode\u003e8aa9470\u003c/code\u003e\u003c/a\u003e add discord requests dep\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/1db24b4ff442c43752cf56a55b1782998c76801c\"\u003e\u003ccode\u003e1db24b4\u003c/code\u003e\u003c/a\u003e better user-agent\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/61365d8321ae4ca433d2c6cda770a73a8e0e62cb\"\u003e\u003ccode\u003e61365d8\u003c/code\u003e\u003c/a\u003e handle rate limit\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.66.5...v4.67.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 23.2 to 25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRe-add a test for Unicode file name parsing by \u003ca href=\"https://github.com/Siddhesh-Agarwal\"\u003e\u003ccode\u003e@​Siddhesh-Agarwal\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/863\"\u003epypa/packaging#863\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to ruff 0.9.1 by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/865\"\u003epypa/packaging#865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for PEP 738 Android tags by \u003ca href=\"https://github.com/mhsmith\"\u003e\u003ccode\u003e@​mhsmith\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/880\"\u003epypa/packaging#880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(markers): support 'extras' and 'dependency_groups' markers by \u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/888\"\u003epypa/packaging#888\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/Siddhesh-Agarwal\"\u003e\u003ccode\u003e@​Siddhesh-Agarwal\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/863\"\u003epypa/packaging#863\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mhsmith\"\u003e\u003ccode\u003e@​mhsmith\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/880\"\u003epypa/packaging#880\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/frostming\"\u003e\u003ccode\u003e@​frostming\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/888\"\u003epypa/packaging#888\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pypa/packaging/compare/24.2...25.0\"\u003ehttps://github.com/pypa/packaging/compare/24.2...25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e24.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe source is auto-formatted with ruff, not black by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/798\"\u003epypa/packaging#798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group across 1 directory with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/813\"\u003epypa/packaging#813\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApply ruff rules (RUF) by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/800\"\u003epypa/packaging#800\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo in Version \u003ccode\u003e__str__\u003c/code\u003e by \u003ca href=\"https://github.com/aryanpingle\"\u003e\u003ccode\u003e@​aryanpingle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/817\"\u003epypa/packaging#817\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group with 3 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/819\"\u003epypa/packaging#819\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eGet rid of duplicate test cases by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/821\"\u003epypa/packaging#821\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix doc for canonicalize_version and a typo in a docstring by \u003ca href=\"https://github.com/Laurent-Dx\"\u003e\u003ccode\u003e@​Laurent-Dx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/801\"\u003epypa/packaging#801\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: public/base_version comparison by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/818\"\u003epypa/packaging#818\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApply ruff/bugbear rules (B) by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/787\"\u003epypa/packaging#787\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApply ruff/pyupgrade rules (UP) by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/786\"\u003epypa/packaging#786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a changelog entry for dropping Python 3.7 support by \u003ca href=\"https://github.com/alexwlchan\"\u003e\u003ccode\u003e@​alexwlchan\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/824\"\u003epypa/packaging#824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePatch python_full_version unconditionally by \u003ca href=\"https://github.com/jaraco\"\u003e\u003ccode\u003e@​jaraco\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/825\"\u003epypa/packaging#825\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor canonicalize_version by \u003ca href=\"https://github.com/jaraco\"\u003e\u003ccode\u003e@​jaraco\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/793\"\u003epypa/packaging#793\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow creating a SpecifierSet from a list of specifiers by \u003ca href=\"https://github.com/pfmoore\"\u003e\u003ccode\u003e@​pfmoore\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/777\"\u003epypa/packaging#777\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix uninformative error message by \u003ca href=\"https://github.com/abravalheri\"\u003e\u003ccode\u003e@​abravalheri\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/830\"\u003epypa/packaging#830\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix prerelease detection for \u003ccode\u003e\u0026gt;\u003c/code\u003e and \u003ccode\u003e\u0026lt;\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/794\"\u003epypa/packaging#794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group across 1 directory with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/839\"\u003epypa/packaging#839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for PEP 730 iOS tags. by \u003ca href=\"https://github.com/freakboy3742\"\u003e\u003ccode\u003e@​freakboy3742\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/832\"\u003epypa/packaging#832\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate the changelog to reflect 24.1 changes by \u003ca href=\"https://github.com/pradyunsg\"\u003e\u003ccode\u003e@​pradyunsg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/840\"\u003epypa/packaging#840\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMention updating changelog in release process by \u003ca href=\"https://github.com/pradyunsg\"\u003e\u003ccode\u003e@​pradyunsg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/841\"\u003epypa/packaging#841\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd a comment as to why \u003ccode\u003eMetadata.name\u003c/code\u003e isn't normalized by \u003ca href=\"https://github.com/brettcannon\"\u003e\u003ccode\u003e@​brettcannon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/842\"\u003epypa/packaging#842\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse !r formatter for error messages with filenames. by \u003ca href=\"https://github.com/Carreau\"\u003e\u003ccode\u003e@​Carreau\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/844\"\u003epypa/packaging#844\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 639: Implement License-Expression and License-File by \u003ca href=\"https://github.com/ewdurbin\"\u003e\u003ccode\u003e@​ewdurbin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/828\"\u003epypa/packaging#828\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the github-actions group with 4 updates by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/852\"\u003epypa/packaging#852\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpgrade to latest mypy by \u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/853\"\u003epypa/packaging#853\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExtraneous quotes by \u003ca href=\"https://github.com/ewdurbin\"\u003e\u003ccode\u003e@​ewdurbin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/848\"\u003epypa/packaging#848\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aryanpingle\"\u003e\u003ccode\u003e@​aryanpingle\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/817\"\u003epypa/packaging#817\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Laurent-Dx\"\u003e\u003ccode\u003e@​Laurent-Dx\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/801\"\u003epypa/packaging#801\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/alexwlchan\"\u003e\u003ccode\u003e@​alexwlchan\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/824\"\u003epypa/packaging#824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco\"\u003e\u003ccode\u003e@​jaraco\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/825\"\u003epypa/packaging#825\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/794\"\u003epypa/packaging#794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/freakboy3742\"\u003e\u003ccode\u003e@​freakboy3742\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/832\"\u003epypa/packaging#832\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e25.0 - 2025-04-19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* PEP 751: Add support for ``extras`` and ``dependency_groups`` markers. (:issue:`885`)\n* PEP 738: Add support for Android platform tags. (:issue:`880`)\n\u003cp\u003e24.2 - 2024-11-08\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 639: Implement License-Expression and License-File (:issue:\u003ccode\u003e828\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e!r\u003c/code\u003e formatter for error messages with filenames (:issue:\u003ccode\u003e844\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for PEP 730 iOS tags (:issue:\u003ccode\u003e832\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix prerelease detection for \u003ccode\u003e\u0026gt;\u003c/code\u003e and \u003ccode\u003e\u0026lt;\u003c/code\u003e (:issue:\u003ccode\u003e794\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix uninformative error message (:issue:\u003ccode\u003e830\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003ecanonicalize_version\u003c/code\u003e (:issue:\u003ccode\u003e793\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePatch python_full_version unconditionally (:issue:\u003ccode\u003e825\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix doc for \u003ccode\u003ecanonicalize_version\u003c/code\u003e to mention \u003ccode\u003estrip_trailing_zero\u003c/code\u003e and a typo in a docstring (:issue:\u003ccode\u003e801\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix typo in Version \u003ccode\u003e__str__\u003c/code\u003e (:issue:\u003ccode\u003e817\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport creating a \u003ccode\u003eSpecifierSet\u003c/code\u003e from an iterable of \u003ccode\u003eSpecifier\u003c/code\u003e objects (:issue:\u003ccode\u003e775\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e24.1 - 2024-06-10\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* Document ``markers.default_environment()`` (:issue:`753`).\n* Add support for Python 3.13 (:issue:`783`).\n* Modernise type annotations (:issue:`785`).\n* Work around ``platform.python_version()`` returning non PEP 440 compliant version\n  for non-tagged CPython builds (:issue:`802`).\n\u003cp\u003e24.0 - 2024-03-10\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDo specifier matching correctly when the specifier contains an epoch number\nand has more components than the version (:issue:\u003ccode\u003e683\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport the experimental \u003ccode\u003e--disable-gil\u003c/code\u003e builds in packaging.tags\n(:issue:\u003ccode\u003e727\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eBREAKING: Make optional \u003ccode\u003emetadata.Metadata\u003c/code\u003e attributes default to \u003ccode\u003eNone\u003c/code\u003e (:issue:\u003ccode\u003e733\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix errors when trying to access the \u003ccode\u003edescription_content_type\u003c/code\u003e, \u003ccode\u003ekeywords\u003c/code\u003e,\nand \u003ccode\u003erequires_python\u003c/code\u003e attributes on \u003ccode\u003emetadata.Metadata\u003c/code\u003e when those values\nhave not been provided (:issue:\u003ccode\u003e733\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix a bug preventing the use of the built in \u003ccode\u003eExceptionGroup\u003c/code\u003e on versions of\nPython that support it (:issue:\u003ccode\u003e725\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/pypa/packaging/commit/f58537628042c7f29780b9d33f31597e7fc9d664\"\u003e\u003ccode\u003ef585376\u003c/code\u003e\u003c/a\u003e Bump for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/600ecea15b2388037b8dc94883504ca612947576\"\u003e\u003ccode\u003e600ecea\u003c/code\u003e\u003c/a\u003e Add changelog entries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/3910129009b25dd1aa1fe32e644bc891188c56fe\"\u003e\u003ccode\u003e3910129\u003c/code\u003e\u003c/a\u003e support 'extras' and 'dependency_groups' markers (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/888\"\u003e#888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/8e49b4373731bffb110c9583e64ad802cb67c7ea\"\u003e\u003ccode\u003e8e49b43\u003c/code\u003e\u003c/a\u003e Add support for PEP 738 Android tags (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/e624d8edfaa28865de7b5a7da8bd59fd410e5331\"\u003e\u003ccode\u003ee624d8e\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/886\"\u003e#886\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/71f38d872a6e88b28da9d1b270f8512475bc90d4\"\u003e\u003ccode\u003e71f38d8\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 2 updates (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/878\"\u003e#878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9b4922dd3c26c8522d716bec79d7e0ed408631c1\"\u003e\u003ccode\u003e9b4922d\u003c/code\u003e\u003c/a\u003e Bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/870\"\u003e#870\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/8510bd9d3bab5571974202ec85f6ef7b0359bfaf\"\u003e\u003ccode\u003e8510bd9\u003c/code\u003e\u003c/a\u003e Upgrade to ruff 0.9.1 (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/865\"\u003e#865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/9375ec2eff48257967c97d331b9a76019e95bdb0\"\u003e\u003ccode\u003e9375ec2\u003c/code\u003e\u003c/a\u003e Re-add tests for Unicode file name parsing (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/863\"\u003e#863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/packaging/commit/2256ed4ac261309a09daa04cc801abd7cff2e6f0\"\u003e\u003ccode\u003e2256ed4\u003c/code\u003e\u003c/a\u003e Bump the github-actions group across 1 directory with 2 updates (\u003ca href=\"https://redirect.github.com/pypa/packaging/issues/864\"\u003e#864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/packaging/compare/23.2...25.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 3.7.1 to 4.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.9.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded async support for temporary file handling (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/344\"\u003e#344\u003c/a\u003e; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded 4 new fixtures for the AnyIO \u003ccode\u003epytest\u003c/code\u003e plugin:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efree_tcp_port_factory\u003c/code\u003e: session scoped fixture returning a callable that generates unused TCP port numbers\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efree_udp_port_factory\u003c/code\u003e: session scoped fixture returning a callable that generates unused UDP port numbers\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efree_tcp_port\u003c/code\u003e: function scoped fixture that invokes the \u003ccode\u003efree_tcp_port_factory\u003c/code\u003e fixture to generate a free TCP port number\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efree_udp_port\u003c/code\u003e: function scoped fixture that invokes the \u003ccode\u003efree_udp_port_factory\u003c/code\u003e fixture to generate a free UDP port number\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003estdin\u003c/code\u003e argument to \u003ccode\u003eanyio.run_process()\u003c/code\u003e akin to what \u003ccode\u003eanyio.open_process()\u003c/code\u003e, \u003ccode\u003easyncio.create_subprocess()\u003c/code\u003e, \u003ccode\u003etrio.run_process()\u003c/code\u003e, and \u003ccode\u003esubprocess.run()\u003c/code\u003e already accept (PR by \u003ca href=\"https://github.com/jmehnle\"\u003e\u003ccode\u003e@​jmehnle\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003einfo\u003c/code\u003e property to \u003ccode\u003eanyio.Path\u003c/code\u003e on Python 3.14\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eanyio.getaddrinfo()\u003c/code\u003e to ignore (invalid) IPv6 name resolution results when IPv6 support is disabled in Python\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eEndOfStream\u003c/code\u003e raised from \u003ccode\u003eMemoryObjectReceiveStream.receive()\u003c/code\u003e to leave out the \u003ccode\u003eAttributeError\u003c/code\u003e from the exception chain which was merely an implementation detail and caused some confusion\u003c/li\u003e\n\u003cli\u003eFixed traceback formatting growing quadratically with level of \u003ccode\u003eTaskGroup\u003c/code\u003e nesting on asyncio due to exception chaining when raising \u003ccode\u003eExceptionGroups\u003c/code\u003e in \u003ccode\u003eTaskGroup.__aexit__\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/863\"\u003e#863\u003c/a\u003e; PR by \u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.Path.iterdir()\u003c/code\u003e making a blocking call in Python 3.13 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/873\"\u003e#873\u003c/a\u003e; PR by \u003ca href=\"https://github.com/cbornet\"\u003e\u003ccode\u003e@​cbornet\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003econnect_tcp()\u003c/code\u003e producing cyclic references in tracebacks when raising exceptions (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/809\"\u003e#809\u003c/a\u003e; PR by \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.to_thread.run_sync()\u003c/code\u003e needlessly holding on to references of the context, function, arguments and others until the next work item on asyncio (PR by \u003ca href=\"https://github.com/Wankupi\"\u003e\u003ccode\u003e@​Wankupi\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.8.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003cstrong\u003eexperimental\u003c/strong\u003e support for running functions in subinterpreters on Python 3.13 and later\u003c/li\u003e\n\u003cli\u003eAdded support for the \u003ccode\u003ecopy()\u003c/code\u003e, \u003ccode\u003ecopy_into()\u003c/code\u003e, \u003ccode\u003emove()\u003c/code\u003e and \u003ccode\u003emove_into()\u003c/code\u003e methods in \u003ccode\u003eanyio.Path\u003c/code\u003e, available in Python 3.14\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eTaskGroup\u003c/code\u003e on asyncio to always spawn tasks non-eagerly, even if using a task factory created via \u003ccode\u003easyncio.create_eager_task_factory()\u003c/code\u003e, to preserve expected Trio-like task scheduling semantics (PR by \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e and \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConfigure \u003ccode\u003eSO_RCVBUF\u003c/code\u003e, \u003ccode\u003eSO_SNDBUF\u003c/code\u003e and \u003ccode\u003eTCP_NODELAY\u003c/code\u003e on the selector thread waker socket pair (this should improve the performance of \u003ccode\u003ewait_readable()\u003c/code\u003e and \u003ccode\u003ewait_writable()\u003c/code\u003e when using the \u003ccode\u003eProactorEventLoop\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/836\"\u003e#836\u003c/a\u003e; PR by \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eAssertionError\u003c/code\u003e when using \u003ccode\u003enest-asyncio\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/840\"\u003e#840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed return type annotation of various context managers' \u003ccode\u003e__exit__\u003c/code\u003e method (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/847\"\u003e#847\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Enegg\"\u003e\u003ccode\u003e@​Enegg\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.7.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated \u003ccode\u003eTaskGroup\u003c/code\u003e to work with asyncio's eager task factories (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/764\"\u003e#764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the \u003ccode\u003ewait_readable()\u003c/code\u003e and \u003ccode\u003ewait_writable()\u003c/code\u003e functions which will accept an object with a \u003ccode\u003e.fileno()\u003c/code\u003e method or an integer handle, and deprecated their now obsolete versions (\u003ccode\u003ewait_socket_readable()\u003c/code\u003e and \u003ccode\u003ewait_socket_writable()\u003c/code\u003e) (PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eEventAdapter\u003c/code\u003e (an \u003ccode\u003eEvent\u003c/code\u003e with no bound async backend) to allow \u003ccode\u003eset()\u003c/code\u003e to work even before an async backend is bound to it (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/819\"\u003e#819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003ewait_readable()\u003c/code\u003e and \u003ccode\u003ewait_writable()\u003c/code\u003e on \u003ccode\u003eProactorEventLoop\u003c/code\u003e (used on asyncio + Windows by default)\u003c/li\u003e\n\u003cli\u003eFixed a misleading \u003ccode\u003eValueError\u003c/code\u003e in the context of DNS failures (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/815\"\u003e#815\u003c/a\u003e; PR by \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the return type annotations of \u003ccode\u003ereadinto()\u003c/code\u003e and \u003ccode\u003ereadinto1()\u003c/code\u003e methods in the \u003ccode\u003eanyio.AsyncFile\u003c/code\u003e class (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/825\"\u003e#825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eTaskInfo.has_pending_cancellation()\u003c/code\u003e on asyncio returning false positives in cleanup code on Python \u0026gt;= 3.11 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/832\"\u003e#832\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed cancelled cancel scopes on asyncio calling \u003ccode\u003easyncio.Task.uncancel\u003c/code\u003e when propagating a \u003ccode\u003eCancelledError\u003c/code\u003e on exit to a cancelled parent scope (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/790\"\u003e#790\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.6.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed regression caused by (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/807\"\u003e#807\u003c/a\u003e) that prevented the use of parametrized async fixtures\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.6.1\u003c/h2\u003e\n\u003cp\u003eThis release contains all the changes from both v4.5.1 and v4.6.0, plus:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed TaskGroup and CancelScope producing cyclic references in tracebacks when raising exceptions (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/806\"\u003e#806\u003c/a\u003e) (PR by \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.6.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.8 (as \u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/698\"\u003e#698\u003c/a\u003e cannot be resolved without cancel message support)\u003c/li\u003e\n\u003cli\u003eFixed 100% CPU use on asyncio while waiting for an exiting task group to finish while said task group is within a cancelled cancel scope (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/695\"\u003e#695\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed cancel scopes on asyncio not propagating \u003ccode\u003eCancelledError\u003c/code\u003e on exit when the enclosing cancel scope has been effectively cancelled (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/698\"\u003e#698\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed asyncio task groups not yielding control to the event loop at exit if there were no child tasks to wait on\u003c/li\u003e\n\u003cli\u003eFixed inconsistent task uncancellation with asyncio cancel scopes belonging to a task group when said task group has child tasks running\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.5.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/blob/master/docs/versionhistory.rst\"\u003eanyio's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eVersion history\u003c/h1\u003e\n\u003cp\u003eThis library adheres to \u003ccode\u003eSemantic Versioning 2.0 \u0026lt;http://semver.org/\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eUNRELEASED\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a hierarchy of connectable stream classes for transparently connecting to\nvarious remote or local endpoints for exchanging bytes or objects\u003c/li\u003e\n\u003cli\u003eAdded context manager mix-in classes (\u003ccode\u003eanyio.ContextManagerMixin\u003c/code\u003e and\n\u003ccode\u003eanyio.AsyncContextManagerMixin\u003c/code\u003e) to help write classes that embed other context\nmanagers, particularly cancel scopes or task groups\n(\u003ccode\u003e[#905](https://github.com/agronholm/anyio/issues/905) \u0026lt;https://github.com/agronholm/anyio/pull/905\u0026gt;\u003c/code\u003e_; PR by by \u003ca href=\"https://github.com/agronholm\"\u003e\u003ccode\u003e@​agronholm\u003c/code\u003e\u003c/a\u003e and\n\u003ca href=\"https://github.com/tapetersen\"\u003e\u003ccode\u003e@​tapetersen\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded the ability to specify the thread name in \u003ccode\u003estart_blocking_portal()\u003c/code\u003e\n(\u003ccode\u003e[#818](https://github.com/agronholm/anyio/issues/818) \u0026lt;https://github.com/agronholm/anyio/issues/818\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/davidbrochart\"\u003e\u003ccode\u003e@​davidbrochart\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eanyio.notify_closing\u003c/code\u003e to allow waking \u003ccode\u003eanyio.wait_readable\u003c/code\u003e\nand \u003ccode\u003eanyio.wait_writable\u003c/code\u003e before closing a socket. Among other things,\nthis prevents an OSError on the \u003ccode\u003eProactorEventLoop\u003c/code\u003e.\n(\u003ccode\u003e[#896](https://github.com/agronholm/anyio/issues/896) \u0026lt;https://github.com/agronholm/anyio/pull/896\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/graingert\"\u003e\u003ccode\u003e@​graingert\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.Path.copy()\u003c/code\u003e and \u003ccode\u003eanyio.Path.copy_into()\u003c/code\u003e failing on Python 3.14.0a7\u003c/li\u003e\n\u003cli\u003eFixed return annotation of \u003ccode\u003e__aexit__\u003c/code\u003e on async context managers. CMs which can\nsuppress exceptions should return \u003ccode\u003ebool\u003c/code\u003e, or \u003ccode\u003eNone\u003c/code\u003e otherwise.\n(\u003ccode\u003e[#913](https://github.com/agronholm/anyio/issues/913) \u0026lt;https://github.com/agronholm/anyio/pull/913\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/Enegg\"\u003e\u003ccode\u003e@​Enegg\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed rollover boundary check in \u003ccode\u003eSpooledTemporaryFile\u003c/code\u003e so that rollover\nonly occurs when the buffer size exceeds \u003ccode\u003emax_size\u003c/code\u003e\n(\u003ccode\u003e[#915](https://github.com/agronholm/anyio/issues/915) \u0026lt;https://github.com/agronholm/anyio/pull/915\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrated testing and documentation dependencies from extras to dependency groups\u003c/li\u003e\n\u003cli\u003eFixed compatibility of \u003ccode\u003eanyio.to_interpreter\u003c/code\u003e with Python 3.14.0b2\n(\u003ccode\u003e[#926](https://github.com/agronholm/anyio/issues/926) \u0026lt;https://github.com/agronholm/anyio/issues/926\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/hroncok\"\u003e\u003ccode\u003e@​hroncok\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e4.9.0\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded async support for temporary file handling\n(\u003ccode\u003e[#344](https://github.com/agronholm/anyio/issues/344) \u0026lt;https://github.com/agronholm/anyio/issues/344\u0026gt;\u003c/code\u003e_; PR by \u003ca href=\"https://github.com/11kkw\"\u003e\u003ccode\u003e@​11kkw\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded 4 new fixtures for the AnyIO \u003ccode\u003epytest\u003c/code\u003e plugin:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003efree_tcp_port_factory\u003c/code\u003e: session scoped fixture returning a callable that\ngenerates unused TCP port numbers\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efree_udp_port_factory\u003c/code\u003e: session scoped fixture returning a callable that\ngenerates unused UDP port numbers\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efree_tcp_port\u003c/code\u003e: function scoped fixture that invokes the\n\u003ccode\u003efree_tcp_port_factory\u003c/code\u003e fixture to generate a free TCP port number\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003efree_udp_port\u003c/code\u003e: function scoped fixture that invokes the\n\u003ccode\u003efree_udp_port_factory\u003c/code\u003e fixture to generate a free UDP port number\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded \u003ccode\u003estdin\u003c/code\u003e argument to \u003ccode\u003eanyio.run_process()\u003c/code\u003e akin to what\n\u003ccode\u003eanyio.open_process()\u003c/code\u003e, \u003ccode\u003easyncio.create_subprocess_…()\u003c/code\u003e, \u003ccode\u003etrio.run_process()\u003c/code\u003e,\nand \u003ccode\u003esubprocess.run()\u003c/code\u003e already accept (PR by \u003ca href=\"https://github.com/jmehnle\"\u003e\u003ccode\u003e@​jmehnle\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003einfo\u003c/code\u003e property to \u003ccode\u003eanyio.Path\u003c/code\u003e on Python 3.14\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eChanged \u003ccode\u003eanyio.getaddrinfo()\u003c/code\u003e to ignore (invalid) IPv6 name resolution results when\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/a6e9ebb75f0e1492ab5d0740b2ca76d0137f95e3\"\u003e\u003ccode\u003ea6e9ebb\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9b9520d9ab3b00c0438073278830eddb64ff7875\"\u003e\u003ccode\u003e9b9520d\u003c/code\u003e\u003c/a\u003e Fixed cyclic references in to_thread.run_sync() on asyncio (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/887\"\u003e#887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/1f04d6b1582f21bc199417ffcd46f78defbc0ec9\"\u003e\u003ccode\u003e1f04d6b\u003c/code\u003e\u003c/a\u003e Added a note about asyncio cancellation semantics\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/e14b17208982aaa90158038a66eb0696fe7bd548\"\u003e\u003ccode\u003ee14b172\u003c/code\u003e\u003c/a\u003e Upgraded to a newer Sphinx version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/7e13c49b34e908980a1198e9b05f43677dab833a\"\u003e\u003ccode\u003e7e13c49\u003c/code\u003e\u003c/a\u003e Avoid refcycles in tracebacks from happy eyeballs exceptions (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/809\"\u003e#809\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/d134da712b884efc19894966421894da4dab1c86\"\u003e\u003ccode\u003ed134da7\u003c/code\u003e\u003c/a\u003e Raise EndOfStream from None in MemoryObjectReceiveStream.receive() (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/889\"\u003e#889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/2840e06384d22f35935874043a753d04b0fad70c\"\u003e\u003ccode\u003e2840e06\u003c/code\u003e\u003c/a\u003e Added cheaper implementation for no_other_refs() on Python 3.14 (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/886\"\u003e#886\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/31ce0a5d7532b9148570194c2a934741bbed2cad\"\u003e\u003ccode\u003e31ce0a5\u003c/code\u003e\u003c/a\u003e Added fixtures for generating bindable TCP/UDP ports (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/856\"\u003e#856\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/cd85e47338a32e6eb813998c4b1c8dbf0b9f722b\"\u003e\u003ccode\u003ecd85e47\u003c/code\u003e\u003c/a\u003e Test on PyPy 3.11 on CI (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/876\"\u003e#876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/d228020e6ea3f3b0bb8eab3a75eb1df31389eddf\"\u003e\u003ccode\u003ed228020\u003c/code\u003e\u003c/a\u003e Detect blocking calls in coroutines using BlockBuster (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/875\"\u003e#875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/3.7.1...4.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2024.7.4 to 2025.4.26\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/275c9eb55733a464589c15fb4566fddd4598e5b2\"\u003e\u003ccode\u003e275c9eb\u003c/code\u003e\u003c/a\u003e 2025.04.26 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/347\"\u003e#347\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/37883310b51e56570919cdc2d44becc1c6940559\"\u003e\u003ccode\u003e3788331\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.4.0 to 5.5.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/346\"\u003e#346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/9d1f1b782000baedf57026de5b79e193bcb7ef7b\"\u003e\u003ccode\u003e9d1f1b7\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.1.9 to 4.2.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/344\"\u003e#344\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/96b97a5afe26bc1adef98cb0bfe68e34948a73b6\"\u003e\u003ccode\u003e96b97a5\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.1 to 4.6.2 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/343\"\u003e#343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c054ed3ac3d3505efc929b71cfd87a257bbdb6b3\"\u003e\u003ccode\u003ec054ed3\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.7 to 7.0.8 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/342\"\u003e#342\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/44547fc77121b12bb276b44b3b2b49cfcbeac06f\"\u003e\u003ccode\u003e44547fc\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.1.8 to 4.1.9 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/341\"\u003e#341\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/5ea51247afecf1bf4ebfa8f2db3082e89a8bfaed\"\u003e\u003ccode\u003e5ea5124\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 4.6.0 to 4.6.1 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/340\"\u003e#340\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/2f142b7ae0b2d13fee4ba4b9fbd73a9cd5069060\"\u003e\u003ccode\u003e2f142b7\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 7.0.6 to 7.0.7 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/339\"\u003e#339\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/80d2ebdc77d2d005f408f789fe2fb1fe5f4e0265\"\u003e\u003ccode\u003e80d2ebd\u003c/code\u003e\u003c/a\u003e Bump actions/setup-python from 5.3.0 to 5.4.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/337\"\u003e#337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/088f93122ea7c91cfdaeea7fa76ab2f850b8064d\"\u003e\u003ccode\u003e088f931\u003c/code\u003e\u003c/a\u003e 2025.01.31 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/336\"\u003e#336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2024.07.04...2025.04.26\"\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.3.2 to 3.4.2\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.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.9\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.1\u003c/h2\u003e\n\u003ch2\u003e🚀 We're still raising awareness around HTTP/2, and HTTP/3!\u003c/h2\u003e\n\u003cp\u003eDid you know that Internet Explorer 11 shipped with an optional HTTP/2 support back in 2013? also libcurl did ship it in 2014[...]\nUsing Requests today is the rough equivalent of using EOL Windows 8!  We promptly invite Python developers to look at the first drop-in replacement for Requests, \u003ca href=\"https://github.com/jawah/niquests\"\u003enamely Niquests\u003c/a\u003e. Ship with native WebSocket, SSE, Happy Eyeballs, DNS over HTTPS, and so on[...] All of this while remaining compatible with all Requests prior plug-ins / add-ons.\u003c/p\u003e\n\u003cp\u003eIt leverages charset-normalizer in a better way! Check it out, you will gain up to being 3X faster and get a real/respectable support with it.\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebuild-requirements.txt\u003c/code\u003e as per using \u003ccode\u003epyproject.toml\u003c/code\u003e native build configuration.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ebin/integration.py\u003c/code\u003e and \u003ccode\u003ebin/serve.py\u003c/code\u003e in favor of downstream integration test (see noxfile).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esetup.cfg\u003c/code\u003e in favor of \u003ccode\u003epyproject.toml\u003c/code\u003e metadata configuration.\u003c/li\u003e\n\u003cli\u003eUnused \u003ccode\u003eutils.range_scan\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConverting content to Unicode bytes may insert \u003ccode\u003eutf_8\u003c/code\u003e instead of preferred \u003ccode\u003eutf-8\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/572\"\u003e#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning \u0026quot;'count' is passed as positional argument\u0026quot; when converting to Unicode bytes on Python 3.13+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.0\u003c/h2\u003e\n\u003ch2\u003e🚀 charset-normalizer is raising awareness around HTTP/2, and HTTP/3!\u003c/h2\u003e\n\u003cp\u003eDid you know that Internet Explorer 11 shipped with an optional HTTP/2 support back in 2013? also libcurl did ship it in 2014[...]\nAll of this while our community is still struggling to make a firm advancement in HTTP clients. Now, many of you use Requests\nas the defacto http client, now, and for many years now, Requests has been frozen. Being left in a vegetative state and not evolving,\nthis blocked millions of developers from using more advanced features.\u003c/p\u003e\n\u003cp\u003eWe promptly invite Python developers to look at the drop-in replacement for Requests, \u003ca href=\"https://github.com/jawah/niquests\"\u003enamely Niquests\u003c/a\u003e.\nIt leverage charset-normalizer in a better way! Check it out, you will be positively surprised! Don't wait another decade.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/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.1...3.4.2\"\u003e3.4.2\u003c/a\u003e (2025-05-02)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAddressed the DeprecationWarning in our CLI regarding \u003ccode\u003eargparse.FileType\u003c/code\u003e by backporting the target class into the package. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the overall reliability of the detector with CJK Ideographs. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/605\"\u003e#605\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.15 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.0...3.4.1\"\u003e3.4.1\u003c/a\u003e (2024-12-24)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eProject metadata are now stored using \u003ccode\u003epyproject.toml\u003c/code\u003e instead of \u003ccode\u003esetup.cfg\u003c/code\u003e using setuptools as the build backend.\u003c/li\u003e\n\u003cli\u003eEnforce annotation delayed loading for a simpler and consistent types in the project.\u003c/li\u003e\n\u003cli\u003eOptional mypyc compilation upgraded to version 1.14 for Python \u0026gt;= 3.8\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003epre-commit configuration.\u003c/li\u003e\n\u003cli\u003enoxfile.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRemoved\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ebuild-requirements.txt\u003c/code\u003e as per using \u003ccode\u003epyproject.toml\u003c/code\u003e native build configuration.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ebin/integration.py\u003c/code\u003e and \u003ccode\u003ebin/serve.py\u003c/code\u003e in favor of downstream integration test (see noxfile).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003esetup.cfg\u003c/code\u003e in favor of \u003ccode\u003epyproject.toml\u003c/code\u003e metadata configuration.\u003c/li\u003e\n\u003cli\u003eUnused \u003ccode\u003eutils.range_scan\u003c/code\u003e function.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eConverting content to Unicode bytes may insert \u003ccode\u003eutf_8\u003c/code\u003e instead of preferred \u003ccode\u003eutf-8\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/572\"\u003e#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning \u0026quot;'count' is passed as positional argument\u0026quot; when converting to Unicode bytes on Python 3.13+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.3.2...3.4.0\"\u003e3.4.0\u003c/a\u003e (2024-10-08)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eArgument \u003ccode\u003e--no-preemptive\u003c/code\u003e in the CLI to prevent the detector to search for hints.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.13 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/512\"\u003e#512\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRelax the TypeError exception thrown when trying to compare a CharsetMatch with anything else than a CharsetMatch.\u003c/li\u003e\n\u003cli\u003eImproved the general reliability of the detector based on user feedbacks. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/520\"\u003e#520\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/509\"\u003e#509\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/498\"\u003e#498\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/407\"\u003e#407\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/537\"\u003e#537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeclared charset in content (preemptive detection) not changed when converting to utf-8 bytes. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/381\"\u003e#381\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/6422af1d50f1f46624deab585424e1ac4d08ba94\"\u003e\u003ccode\u003e6422af1\u003c/code\u003e\u003c/a\u003e ...\n\n_Description has been truncated_","html_url":"https://github.com/AstarVienna/ScopeSim/pull/679","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AstarVienna%2FScopeSim/issues/679","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/679/packages"}},{"old_version":"2.1.0","new_version":"2.2.2","update_type":"minor","path":null,"pr_created_at":"2024-07-15T19:22:41.000Z","version_change":"2.1.0 → 2.2.2","issue":{"uuid":"1970072801","node_id":"PR_kwDOGJylKs51bOzh","number":3,"state":"closed","title":"Bump the pip group across 1 directory with 7 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-08-31T03:44:47.000Z","author_association":"NONE","state_reason":null,"created_at":"2024-07-15T19:22:41.000Z","updated_at":"2025-08-31T03:44:47.000Z","time_to_close":35540526,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":7,"packages":[{"name":"tqdm","old_version":"4.66.1","new_version":"4.66.3","repository_url":"https://github.com/tqdm/tqdm"},{"name":"certifi","old_version":"2023.11.17","new_version":"2024.7.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"requests","old_version":"2.31.0","new_version":"2.32.2","repository_url":"https://github.com/psf/requests"},{"name":"setuptools","old_version":"69.0.3","new_version":"70.0.0","repository_url":"https://github.com/pypa/setuptools"},{"name":"tornado","old_version":"6.4","new_version":"6.4.1","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"urllib3","old_version":"2.1.0","new_version":"2.2.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"zipp","old_version":"3.17.0","new_version":"3.19.1","repository_url":"https://github.com/jaraco/zipp"}],"path":null,"ecosystem":"conda"},"body":"Bumps the pip group with 7 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.66.1` | `4.66.3` |\n| [certifi](https://github.com/certifi/python-certifi) | `2023.11.17` | `2024.7.4` |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.32.2` |\n| [setuptools](https://github.com/pypa/setuptools) | `69.0.3` | `70.0.0` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.4` | `6.4.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.1.0` | `2.2.2` |\n| [zipp](https://github.com/jaraco/zipp) | `3.17.0` | `3.19.1` |\n\n\nUpdates `tqdm` from 4.66.1 to 4.66.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.66.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecli\u003c/code\u003e: \u003ccode\u003eeval\u003c/code\u003e safety (fixes CVE-2024-34062, GHSA-g7vv-2v7x-gj9p)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.66.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epandas\u003c/code\u003e: add \u003ccode\u003eDataFrame.progress_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enotebook\u003c/code\u003e: fix HTML padding (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1506\"\u003e#1506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ekeras\u003c/code\u003e: fix resuming training when \u003ccode\u003everbose\u0026gt;=2\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1508\"\u003e#1508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003eformat_num\u003c/code\u003e negative fractions missing leading zero (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1548\"\u003e#1548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix Python 3.12 \u003ccode\u003eDeprecationWarning\u003c/code\u003e on \u003ccode\u003eimport\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1519\"\u003e#1519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elinting: use f-strings (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate tests (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003efix \u003ccode\u003epandas\u003c/code\u003e warnings\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003easv\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/airspeed-velocity/asv/issues/1323\"\u003eairspeed-velocity/asv#1323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix macos \u003ccode\u003enotebook\u003c/code\u003e docstring indentation\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eCI: bump actions (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\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/tqdm/tqdm/commit/4e613f84ed2ae029559f539464df83fa91feb316\"\u003e\u003ccode\u003e4e613f8\u003c/code\u003e\u003c/a\u003e Merge pull request from GHSA-g7vv-2v7x-gj9p\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b53348c73080b4edeb30b4823d1fa0d8d2c06721\"\u003e\u003ccode\u003eb53348c\u003c/code\u003e\u003c/a\u003e cli: eval safety\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/cc372d09dcd5a5eabdc6ed4cf365bdb0be004d44\"\u003e\u003ccode\u003ecc372d0\u003c/code\u003e\u003c/a\u003e bump version, merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\u003c/a\u003e from tqdm/devel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/e9f0c05097dc167031575391d83240d37556f098\"\u003e\u003ccode\u003ee9f0c05\u003c/code\u003e\u003c/a\u003e use PyPI trusted publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/7323d5bcc9b032d525f9d6468a9713f5be9c4174\"\u003e\u003ccode\u003e7323d5b\u003c/code\u003e\u003c/a\u003e slight makefile clean\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/5306125133d76e0f9326d747d29781fefe273c77\"\u003e\u003ccode\u003e5306125\u003c/code\u003e\u003c/a\u003e tests: bump pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4a6fd4f690a4add231f4bef601521ed9bee513fb\"\u003e\u003ccode\u003e4a6fd4f\u003c/code\u003e\u003c/a\u003e fix datetime.utcfromtimestamp py3.12 warning (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1519\"\u003e#1519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/6f13759f4a0e1047a09732e72f6d07e44d3e6855\"\u003e\u003ccode\u003e6f13759\u003c/code\u003e\u003c/a\u003e tests: fix macos notebook indentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/3abcd2ac90ecb01ac7f64071af600f803eab6a21\"\u003e\u003ccode\u003e3abcd2a\u003c/code\u003e\u003c/a\u003e tests: fix asv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/a4d15c8e2f6c7322c1a1cd1d845927f037281da1\"\u003e\u003ccode\u003ea4d15c8\u003c/code\u003e\u003c/a\u003e tests: fix pandas warnings\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.66.1...v4.66.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2023.11.17 to 2024.7.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/bd8153872e9c6fc98f4023df9c2deaffea2fa463\"\u003e\u003ccode\u003ebd81538\u003c/code\u003e\u003c/a\u003e 2024.07.04 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/295\"\u003e#295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/06a2cbf21f345563dde6c28b60e29d57e9b210b3\"\u003e\u003ccode\u003e06a2cbf\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 6.0.5 to 6.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/294\"\u003e#294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/13bba02b72bac97c432c277158bc04b4d2a6bc23\"\u003e\u003ccode\u003e13bba02\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.1.6 to 4.1.7 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/293\"\u003e#293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/e8abcd0e62b334c164b95d49fcabdc9ecbca0554\"\u003e\u003ccode\u003ee8abcd0\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.8.14 to 1.9.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/292\"\u003e#292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/124f4adf171e15cd9a91a8b6e0325ecc97be8fe1\"\u003e\u003ccode\u003e124f4ad\u003c/code\u003e\u003c/a\u003e 2024.06.02 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/291\"\u003e#291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c2196ce5d6ee675b27755a19948480a7823e2c6a\"\u003e\u003ccode\u003ec2196ce\u003c/code\u003e\u003c/a\u003e --- (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/290\"\u003e#290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/fefdeec7588ff1c05214b85a552afcad5fdb51b2\"\u003e\u003ccode\u003efefdeec\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.1.4 to 4.1.5 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/3c5fb1560b826a7f83f1f9750173ff766492c9cf\"\u003e\u003ccode\u003e3c5fb15\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.1.6 to 4.1.7 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/4a9569a3eb58db8548536fc16c5c5c7af946a5b1\"\u003e\u003ccode\u003e4a9569a\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.1.2 to 4.1.4 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/1fc808626a895a916b1e4c2b63abae6c5eafdbe3\"\u003e\u003ccode\u003e1fc8086\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 6.0.4 to 6.0.5 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2023.11.17...2024.07.04\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.31.0 to 2.32.2\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.32.2\u003c/h2\u003e\n\u003ch2\u003e2.32.2 (2024-05-21)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eTo provide a more stable migration for custom HTTPAdapters impacted\nby the CVE changes in 2.32.0, we've renamed \u003ccode\u003e_get_connection\u003c/code\u003e to\na new public API, \u003ccode\u003eget_connection_with_tls_context\u003c/code\u003e. Existing custom\nHTTPAdapters will need to migrate their code to use this new API.\n\u003ccode\u003eget_connection\u003c/code\u003e is considered deprecated in all versions of Requests\u0026gt;=2.32.0.\u003c/p\u003e\n\u003cp\u003eA minimal (2-line) example has been provided in the linked PR to ease\nmigration, but we strongly urge users to evaluate if their custom adapter\nis subject to the same issue described in CVE-2024-35195. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6710\"\u003e#6710\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.1\u003c/h2\u003e\n\u003ch2\u003e2.32.1 (2024-05-20)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing test certs to the sdist distributed on PyPI.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.0\u003c/h2\u003e\n\u003ch2\u003e2.32.0 (2024-05-20)\u003c/h2\u003e\n\u003ch2\u003e🐍 PYCON US 2024 EDITION 🐍\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where setting \u003ccode\u003everify=False\u003c/code\u003e on the first request from a\nSession will cause subsequent requests to the \u003cem\u003esame origin\u003c/em\u003e to also ignore\ncert verification, regardless of the value of \u003ccode\u003everify\u003c/code\u003e.\n(\u003ca href=\"https://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56\"\u003ehttps://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003everify=True\u003c/code\u003e now reuses a global SSLContext which should improve\nrequest time variance between first and subsequent requests. It should\nalso minimize certificate load time on Windows systems when using a Python\nversion built with OpenSSL 3.x. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6667\"\u003e#6667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests now supports optional use of character detection\n(\u003ccode\u003echardet\u003c/code\u003e or \u003ccode\u003echarset_normalizer\u003c/code\u003e) when repackaged or vendored.\nThis enables \u003ccode\u003epip\u003c/code\u003e and other projects to minimize their vendoring\nsurface area. The \u003ccode\u003eResponse.text()\u003c/code\u003e and \u003ccode\u003eapparent_encoding\u003c/code\u003e APIs\nwill default to \u003ccode\u003eutf-8\u003c/code\u003e if neither library is present. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6702\"\u003e#6702\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 bug in length detection where emoji length was incorrectly\ncalculated in the request content-length. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6589\"\u003e#6589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed deserialization bug in JSONDecodeError. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6629\"\u003e#6629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug where an extra leading \u003ccode\u003e/\u003c/code\u003e (path separator) could lead\nurllib3 to unnecessarily reparse the request URI. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6644\"\u003e#6644\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.2 (2024-05-21)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eTo provide a more stable migration for custom HTTPAdapters impacted\nby the CVE changes in 2.32.0, we've renamed \u003ccode\u003e_get_connection\u003c/code\u003e to\na new public API, \u003ccode\u003eget_connection_with_tls_context\u003c/code\u003e. Existing custom\nHTTPAdapters will need to migrate their code to use this new API.\n\u003ccode\u003eget_connection\u003c/code\u003e is considered deprecated in all versions of Requests\u0026gt;=2.32.0.\u003c/p\u003e\n\u003cp\u003eA minimal (2-line) example has been provided in the linked PR to ease\nmigration, but we strongly urge users to evaluate if their custom adapter\nis subject to the same issue described in CVE-2024-35195. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6710\"\u003e#6710\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.1 (2024-05-20)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing test certs to the sdist distributed on PyPI.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.0 (2024-05-20)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where setting \u003ccode\u003everify=False\u003c/code\u003e on the first request from a\nSession will cause subsequent requests to the \u003cem\u003esame origin\u003c/em\u003e to also ignore\ncert verification, regardless of the value of \u003ccode\u003everify\u003c/code\u003e.\n(\u003ca href=\"https://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56\"\u003ehttps://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003everify=True\u003c/code\u003e now reuses a global SSLContext which should improve\nrequest time variance between first and subsequent requests. It should\nalso minimize certificate load time on Windows systems when using a Python\nversion built with OpenSSL 3.x. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6667\"\u003e#6667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests now supports optional use of character detection\n(\u003ccode\u003echardet\u003c/code\u003e or \u003ccode\u003echarset_normalizer\u003c/code\u003e) when repackaged or vendored.\nThis enables \u003ccode\u003epip\u003c/code\u003e and other projects to minimize their vendoring\nsurface area. The \u003ccode\u003eResponse.text()\u003c/code\u003e and \u003ccode\u003eapparent_encoding\u003c/code\u003e APIs\nwill default to \u003ccode\u003eutf-8\u003c/code\u003e if neither library is present. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6702\"\u003e#6702\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 bug in length detection where emoji length was incorrectly\ncalculated in the request content-length. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6589\"\u003e#6589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed deserialization bug in JSONDecodeError. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6629\"\u003e#6629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug where an extra leading \u003ccode\u003e/\u003c/code\u003e (path separator) could lead\nurllib3 to unnecessarily reparse the request URI. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6644\"\u003e#6644\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\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/psf/requests/commit/88dce9d854797c05d0ff296b70e0430535ef8aaf\"\u003e\u003ccode\u003e88dce9d\u003c/code\u003e\u003c/a\u003e v2.32.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/c98e4d133ef29c46a9b68cd783087218a8075e05\"\u003e\u003ccode\u003ec98e4d1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6710\"\u003e#6710\u003c/a\u003e from nateprewitt/api_rename\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/92075b330a30b9883f466a43d3f7566ab849f91b\"\u003e\u003ccode\u003e92075b3\u003c/code\u003e\u003c/a\u003e Add deprecation warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/aa1461b68aa73e2f6ec0e78c8853b635c76fd099\"\u003e\u003ccode\u003eaa1461b\u003c/code\u003e\u003c/a\u003e Move _get_connection to get_connection_with_tls_context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/970e8cec988421bd43da57350723b05c8ce8dc7e\"\u003e\u003ccode\u003e970e8ce\u003c/code\u003e\u003c/a\u003e v2.32.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d6ebc4a2f1f68b7e355fb7e4dd5ffc0845547f9f\"\u003e\u003ccode\u003ed6ebc4a\u003c/code\u003e\u003c/a\u003e v2.32.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9a40d1277807f0a4f26c9a37eea8ec90faa8aadc\"\u003e\u003ccode\u003e9a40d12\u003c/code\u003e\u003c/a\u003e Avoid reloading root certificates to improve concurrent performance (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6667\"\u003e#6667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0c030f78d24f29a459dbf39b28b4cc765e2153d7\"\u003e\u003ccode\u003e0c030f7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6702\"\u003e#6702\u003c/a\u003e from nateprewitt/no_char_detection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/555b870eb19d497ddb67042645420083ec8efb02\"\u003e\u003ccode\u003e555b870\u003c/code\u003e\u003c/a\u003e Allow character detection dependencies to be optional in post-packaging steps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d6dded3f00afcf56a7e866cb0732799045301eb0\"\u003e\u003ccode\u003ed6dded3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6700\"\u003e#6700\u003c/a\u003e from franekmagiera/update-redirect-to-invalid-uri-test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.31.0...v2.32.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `setuptools` from 69.0.3 to 70.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/setuptools/blob/main/NEWS.rst\"\u003esetuptools's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev70.0.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEmit a warning when \u003ccode\u003e[tools.setuptools]\u003c/code\u003e is present in \u003ccode\u003epyproject.toml\u003c/code\u003e and will be ignored. -- by :user:\u003ccode\u003eSnoopJ\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4150\"\u003e#4150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved \u003ccode\u003eAttributeError\u003c/code\u003e error message if \u003ccode\u003epkg_resources.EntryPoint.require\u003c/code\u003e is called without extras or distribution\nGracefully \u0026quot;do nothing\u0026quot; when trying to activate a \u003ccode\u003epkg_resources.Distribution\u003c/code\u003e with a \u003ccode\u003eNone\u003c/code\u003e location, rather than raising a \u003ccode\u003eTypeError\u003c/code\u003e\n-- by :user:\u003ccode\u003eAvasam\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4262\"\u003e#4262\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTyped the dynamically defined variables from \u003ccode\u003epkg_resources\u003c/code\u003e -- by :user:\u003ccode\u003eAvasam\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4267\"\u003e#4267\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eModernized and refactored VCS handling in package_index. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4332\"\u003e#4332\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIn install command, use super to call the superclass methods. Avoids race conditions when monkeypatching from _distutils_system_mod occurs late. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4136\"\u003e#4136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix finder template for lenient editable installs of implicit nested namespaces\nconstructed by using \u003ccode\u003epackage_dir\u003c/code\u003e to reorganise directory structure. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4278\"\u003e#4278\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix an error with \u003ccode\u003eUnicodeDecodeError\u003c/code\u003e handling in \u003ccode\u003epkg_resources\u003c/code\u003e when trying to read files in UTF-8 with a fallback -- by :user:\u003ccode\u003eAvasam\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4348\"\u003e#4348\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved Documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUses RST substitution to put badges in 1 line. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4312\"\u003e#4312\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDeprecations and Removals\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFurther adoption of UTF-8 in \u003ccode\u003esetuptools\u003c/code\u003e.\nThis change regards mostly files produced and consumed during the build process\n(e.g. metadata files, script wrappers, automatically updated config files, etc..)\nAlthough precautions were taken to minimize disruptions, some edge cases might\nbe subject to backwards incompatibility.\u003c/p\u003e\n\u003cp\u003eSupport for \u003ccode\u003e\u0026quot;locale\u0026quot;\u003c/code\u003e encoding is now \u003cstrong\u003edeprecated\u003c/strong\u003e. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4309\"\u003e#4309\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove \u003ccode\u003esetuptools.convert_path\u003c/code\u003e after long deprecation period.\nThis function was never defined by \u003ccode\u003esetuptools\u003c/code\u003e itself, but rather a\nside-effect of an import for internal usage. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4322\"\u003e#4322\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove fallback for customisations of \u003ccode\u003edistutils\u003c/code\u003e' \u003ccode\u003ebuild.sub_command\u003c/code\u003e after long\ndeprecated period.\nUsers are advised to import \u003ccode\u003ebuild\u003c/code\u003e directly from \u003ccode\u003esetuptools.command.build\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4322\"\u003e#4322\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved \u003ccode\u003etyping_extensions\u003c/code\u003e from vendored dependencies -- by :user:\u003ccode\u003eAvasam\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4324\"\u003e#4324\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemove deprecated \u003ccode\u003esetuptools.dep_util\u003c/code\u003e.\nThe provided alternative is \u003ccode\u003esetuptools.modified\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4360\"\u003e#4360\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/5cbf12a9b63fd37985a4525617b46576b8ac3a7b\"\u003e\u003ccode\u003e5cbf12a\u003c/code\u003e\u003c/a\u003e Workaround for release error in v70\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/9c1bcc3417bd12668123f7e731e241d9e57bfc57\"\u003e\u003ccode\u003e9c1bcc3\u003c/code\u003e\u003c/a\u003e Bump version: 69.5.1 → 70.0.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/4dc0c31644b458ac43ce6148f6a9dc729a7e78b5\"\u003e\u003ccode\u003e4dc0c31\u003c/code\u003e\u003c/a\u003e Remove deprecated \u003ccode\u003esetuptools.dep_util\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4360\"\u003e#4360\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/6c1ef5748dbd70c8c5423e12680345766ee101d9\"\u003e\u003ccode\u003e6c1ef57\u003c/code\u003e\u003c/a\u003e Remove xfail now that test passes. Ref \u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4371\"\u003e#4371\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/d14fa0162c95450898c11534caf26a0f03553176\"\u003e\u003ccode\u003ed14fa01\u003c/code\u003e\u003c/a\u003e Add all site-packages dirs when creating simulated environment for test_edita...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/6b7f7a18afc90007544092c446dc0cd856d86b17\"\u003e\u003ccode\u003e6b7f7a1\u003c/code\u003e\u003c/a\u003e Prevent \u003ccode\u003ebin\u003c/code\u003e folders to be taken as extern packages when vendoring (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4370\"\u003e#4370\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/69141f69f8bf38da34cbea552d6fdaa9c8619c53\"\u003e\u003ccode\u003e69141f6\u003c/code\u003e\u003c/a\u003e Add doctest for vendorised bin folder\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/2a53cc1200ec4b14e08e84be3c042f8983dfb7d7\"\u003e\u003ccode\u003e2a53cc1\u003c/code\u003e\u003c/a\u003e Prevent 'bin' folders to be taken as extern packages\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/720862807dea012f3a0e7061880691025f736f11\"\u003e\u003ccode\u003e7208628\u003c/code\u003e\u003c/a\u003e Replace call to deprecated \u003ccode\u003evalidate_pyproject\u003c/code\u003e command (\u003ca href=\"https://redirect.github.com/pypa/setuptools/issues/4363\"\u003e#4363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/setuptools/commit/96d681aa405460f724c62c00ca125ae722ad810a\"\u003e\u003ccode\u003e96d681a\u003c/code\u003e\u003c/a\u003e Remove call to deprecated validate_pyproject command\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/setuptools/compare/v69.0.3...v70.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tornado` from 6.4 to 6.4.1\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.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\nreleases/v3.1.0\nreleases/v3.0.2\nreleases/v3.0.1\nreleases/v3.0.0\nreleases/v2.4.1\nreleases/v2.4.0\nreleases/v2.3.0\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/2a0e1d13b5222dca4388c0ec8a4bb74ea6fa4af2\"\u003e\u003ccode\u003e2a0e1d1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3388\"\u003e#3388\u003c/a\u003e from bdarnell/release-641\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/b7af4e8f5ee578b78e1be5ade43fdb1103659a0e\"\u003e\u003ccode\u003eb7af4e8\u003c/code\u003e\u003c/a\u003e Release notes and version bump for version 6.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/d65f6e71a77f53a1ff0a0dc55704be13f04eb572\"\u003e\u003ccode\u003ed65f6e7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3387\"\u003e#3387\u003c/a\u003e from bdarnell/chunked-parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/8d721a877dd5c2bc0693d9c4d3954eb11fbd404b\"\u003e\u003ccode\u003e8d721a8\u003c/code\u003e\u003c/a\u003e httputil: Only strip tabs and spaces from header values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/7786f09f84c9f3f2012c4cf3878417cb9f053669\"\u003e\u003ccode\u003e7786f09\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3386\"\u003e#3386\u003c/a\u003e from bdarnell/curl-crlf\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/fb119c767e9c43e71ea823311b0d53f566d86b73\"\u003e\u003ccode\u003efb119c7\u003c/code\u003e\u003c/a\u003e http1connection: Stricter handling of transfer-encoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/b0ffc58e02f33f6aa480f008b74495601d988ce1\"\u003e\u003ccode\u003eb0ffc58\u003c/code\u003e\u003c/a\u003e curl_httpclient,http1connection: Prohibit CR and LF in headers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/0efa9a42b4c94ee98549d86992c68227f83efd4e\"\u003e\u003ccode\u003e0efa9a4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3385\"\u003e#3385\u003c/a\u003e from bdarnell/update-black\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/2757c6e4874968dd2f74a4d08b450da795de5b6c\"\u003e\u003ccode\u003e2757c6e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3384\"\u003e#3384\u003c/a\u003e from tornadoweb/dependabot/pip/requests-2.32.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/291d1b661be273b86792e965ac65f9bced8d4ebe\"\u003e\u003ccode\u003e291d1b6\u003c/code\u003e\u003c/a\u003e *: Update black\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tornadoweb/tornado/compare/v6.4.0...v6.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.1.0 to 2.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003eProxy-Authorization\u003c/code\u003e header to the list of headers to strip from requests when redirecting to a different host. As before, different headers can be set via \u003ccode\u003eRetry.remove_headers_on_redirect\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAllowed passing negative integers as \u003ccode\u003eamt\u003c/code\u003e to read methods of \u003ccode\u003ehttp.client.HTTPResponse\u003c/code\u003e as an alternative to \u003ccode\u003eNone\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3122\"\u003e#3122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed return types representing copying actions to use \u003ccode\u003etyping.Self\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3363\"\u003e#3363\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.2.1...2.2.2\"\u003ehttps://github.com/urllib3/urllib3/compare/2.2.1...2.2.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.2.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed issue where \u003ccode\u003eInsecureRequestWarning\u003c/code\u003e was emitted for HTTPS connections when using Emscripten. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3331\"\u003e#3331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPConnectionPool.urlopen\u003c/code\u003e to stop automatically casting non-proxy headers to \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e. This change was premature as it did not apply to proxy headers and \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e does not handle byte header values correctly yet. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3343\"\u003e#3343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eProtocolError\u003c/code\u003e to \u003ccode\u003eInvalidChunkLength\u003c/code\u003e when response terminates before the chunk length is sent. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/2860\"\u003e#2860\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eProtocolError\u003c/code\u003e to be more verbose on incomplete reads with excess content. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3261\"\u003e#3261\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003ch2\u003e🖥️ urllib3 now works in the browser\u003c/h2\u003e\n\u003cp\u003e:tada: \u003cstrong\u003eThis release adds experimental support for \u003ca href=\"https://urllib3.readthedocs.io/en/stable/reference/contrib/emscripten.html\"\u003eusing urllib3 in the browser with Pyodide\u003c/a\u003e!\u003c/strong\u003e :tada:\u003c/p\u003e\n\u003cp\u003eThanks to Joe Marshall (\u003ca href=\"https://github.com/joemarshall\"\u003e\u003ccode\u003e@​joemarshall\u003c/code\u003e\u003c/a\u003e) for contributing this feature. This change was possible thanks to work done in urllib3 v2.0 to detach our API from \u003ccode\u003ehttp.client\u003c/code\u003e. Please report all bugs to the \u003ca href=\"https://github.com/urllib3/urllib3/issues\"\u003eurllib3 issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://urllib3.readthedocs.io/en/latest/reference/contrib/emscripten.html\"\u003eEmscripten and Pyodide\u003c/a\u003e, including streaming support in cross-origin isolated browser environments where threading is enabled. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/2951\"\u003e#2951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eHTTPResponse.read1()\u003c/code\u003e method. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3186\"\u003e#3186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded rudimentary support for HTTP/2. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3284\"\u003e#3284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed issue where requests against urls with trailing dots were failing due to SSL errors\nwhen using proxy. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/2244\"\u003e#2244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPConnection.proxy_is_verified\u003c/code\u003e and \u003ccode\u003eHTTPSConnection.proxy_is_verified\u003c/code\u003e to be always set to a boolean after connecting to a proxy. It could be \u003ccode\u003eNone\u003c/code\u003e in some cases previously. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3130\"\u003e#3130\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/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.2.2 (2024-06-17)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003eProxy-Authorization\u003c/code\u003e header to the list of headers to strip from requests when redirecting to a different host. As before, different headers can be set via \u003ccode\u003eRetry.remove_headers_on_redirect\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAllowed passing negative integers as \u003ccode\u003eamt\u003c/code\u003e to read methods of \u003ccode\u003ehttp.client.HTTPResponse\u003c/code\u003e as an alternative to \u003ccode\u003eNone\u003c/code\u003e. (\u003ccode\u003e[#3122](https://github.com/urllib3/urllib3/issues/3122) \u0026lt;https://github.com/urllib3/urllib3/issues/3122\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed return types representing copying actions to use \u003ccode\u003etyping.Self\u003c/code\u003e. (\u003ccode\u003e[#3363](https://github.com/urllib3/urllib3/issues/3363) \u0026lt;https://github.com/urllib3/urllib3/issues/3363\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.2.1 (2024-02-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed issue where \u003ccode\u003eInsecureRequestWarning\u003c/code\u003e was emitted for HTTPS connections when using Emscripten. (\u003ccode\u003e[#3331](https://github.com/urllib3/urllib3/issues/3331) \u0026lt;https://github.com/urllib3/urllib3/issues/3331\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPConnectionPool.urlopen\u003c/code\u003e to stop automatically casting non-proxy headers to \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e. This change was premature as it did not apply to proxy headers and \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e does not handle byte header values correctly yet. (\u003ccode\u003e[#3343](https://github.com/urllib3/urllib3/issues/3343) \u0026lt;https://github.com/urllib3/urllib3/issues/3343\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eInvalidChunkLength\u003c/code\u003e to \u003ccode\u003eProtocolError\u003c/code\u003e when response terminates before the chunk length is sent. (\u003ccode\u003e[#2860](https://github.com/urllib3/urllib3/issues/2860) \u0026lt;https://github.com/urllib3/urllib3/issues/2860\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eProtocolError\u003c/code\u003e to be more verbose on incomplete reads with excess content. (\u003ccode\u003e[#3261](https://github.com/urllib3/urllib3/issues/3261) \u0026lt;https://github.com/urllib3/urllib3/issues/3261\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.2.0 (2024-01-30)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eEmscripten and Pyodide \u0026lt;https://urllib3.readthedocs.io/en/latest/reference/contrib/emscripten.html\u0026gt;\u003c/code\u003e\u003cstrong\u003e, including streaming support in cross-origin isolated browser environments where threading is enabled. (\u003ccode\u003e[#2951](https://github.com/urllib3/urllib3/issues/2951) \u0026lt;https://github.com/urllib3/urllib3/issues/2951\u0026gt;\u003c/code\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eHTTPResponse.read1()\u003c/code\u003e method. (\u003ccode\u003e[#3186](https://github.com/urllib3/urllib3/issues/3186) \u0026lt;https://github.com/urllib3/urllib3/issues/3186\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded rudimentary support for HTTP/2. (\u003ccode\u003e[#3284](https://github.com/urllib3/urllib3/issues/3284) \u0026lt;https://github.com/urllib3/urllib3/issues/3284\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed issue where requests against urls with trailing dots were failing due to SSL errors\nwhen using proxy. (\u003ccode\u003e[#2244](https://github.com/urllib3/urllib3/issues/2244) \u0026lt;https://github.com/urllib3/urllib3/issues/2244\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPConnection.proxy_is_verified\u003c/code\u003e and \u003ccode\u003eHTTPSConnection.proxy_is_verified\u003c/code\u003e\nto be always set to a boolean after connecting to a proxy. It could be\n\u003ccode\u003eNone\u003c/code\u003e in some cases previously. (\u003ccode\u003e[#3130](https://github.com/urllib3/urllib3/issues/3130) \u0026lt;https://github.com/urllib3/urllib3/issues/3130\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed an issue where \u003ccode\u003eheaders\u003c/code\u003e passed in a request with \u003ccode\u003ejson=\u003c/code\u003e would be mutated (\u003ccode\u003e[#3203](https://github.com/urllib3/urllib3/issues/3203) \u0026lt;https://github.com/urllib3/urllib3/issues/3203\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPSConnection.is_verified\u003c/code\u003e to be set to \u003ccode\u003eFalse\u003c/code\u003e when connecting\nfrom a HTTPS proxy to an HTTP target. It was set to \u003ccode\u003eTrue\u003c/code\u003e previously. (\u003ccode\u003e[#3267](https://github.com/urllib3/urllib3/issues/3267) \u0026lt;https://github.com/urllib3/urllib3/issues/3267\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed handling of new error message from OpenSSL 3.2.0 when configuring an HTTP proxy as HTTPS (\u003ccode\u003e[#3268](https://github.com/urllib3/urllib3/issues/3268) \u0026lt;https://github.com/urllib3/urllib3/issues/3268\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed TLS 1.3 post-handshake auth when the server certificate validation is disabled (\u003ccode\u003e[#3325](https://github.com/urllib3/urllib3/issues/3325) \u0026lt;https://github.com/urllib3/urllib3/issues/3325\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eNote for downstream distributors: To run integration tests, you now need to run the tests a second\ntime with the \u003ccode\u003e--integration\u003c/code\u003e pytest flag. (\u003ccode\u003e[#3181](https://github.com/urllib3/urllib3/issues/3181) \u0026lt;https://github.com/urllib3/urllib3/issues/3181\u0026gt;\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/urllib3/urllib3/commit/27e2a5c5a7ab6a517252cc8dcef3ffa6ffb8f61a\"\u003e\u003ccode\u003e27e2a5c\u003c/code\u003e\u003c/a\u003e Release 2.2.2 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3406\"\u003e#3406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/accff72ecc2f6cf5a76d9570198a93ac7c90270e\"\u003e\u003ccode\u003eaccff72\u003c/code\u003e\u003c/a\u003e Merge pull request from GHSA-34jh-p97f-mpxf\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/34be4a57e59eb7365bcc37d52e9f8271b5b8d0d3\"\u003e\u003ccode\u003e34be4a5\u003c/code\u003e\u003c/a\u003e Pin CFFI to a new release candidate instead of a Git commit (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3398\"\u003e#3398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/da410581b6b3df73da976b5ce5eb20a4bd030437\"\u003e\u003ccode\u003eda41058\u003c/code\u003e\u003c/a\u003e Bump browser-actions/setup-chrome from 1.6.0 to 1.7.1 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3399\"\u003e#3399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/b07a669bd970d69847801148286b726f0570b625\"\u003e\u003ccode\u003eb07a669\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 2.13.4 to 3.25.6 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3396\"\u003e#3396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/b8589ec9f8c4da91511e601b632ac06af7e7c10e\"\u003e\u003ccode\u003eb8589ec\u003c/code\u003e\u003c/a\u003e Measure coverage with v4 of artifact actions (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3394\"\u003e#3394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/f3bdc5585111429e22c81b5fb26c3ec164d98b81\"\u003e\u003ccode\u003ef3bdc55\u003c/code\u003e\u003c/a\u003e Allow triggering CI manually (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3391\"\u003e#3391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/52392654b30183129cf3ec06010306f517d9c146\"\u003e\u003ccode\u003e5239265\u003c/code\u003e\u003c/a\u003e Fix HTTP version in debug log (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3316\"\u003e#3316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/b34619f94ece0c40e691a5aaf1304953d88089de\"\u003e\u003ccode\u003eb34619f\u003c/code\u003e\u003c/a\u003e Bump actions/checkout to 4.1.4 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3387\"\u003e#3387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/9961d14de7c920091d42d42ed76d5d479b80064d\"\u003e\u003ccode\u003e9961d14\u003c/code\u003e\u003c/a\u003e Bump browser-actions/setup-chrome from 1.5.0 to 1.6.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3386\"\u003e#3386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.1.0...2.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `zipp` from 3.17.0 to 3.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jaraco/zipp/blob/main/NEWS.rst\"\u003ezipp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev3.19.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved handling of malformed zip files. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/119\"\u003e#119\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev3.19.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement is_symlink. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/117\"\u003e#117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev3.18.2\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch1\u003ev3.18.1\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch1\u003ev3.18.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBypass ZipFile.namelist in glob for better performance. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/106\"\u003e#106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored glob functionality to support a more generalized solution with support for platform-specific path separators. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/108\"\u003e#108\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd special accounting for pypy when computing the stack level for text encoding warnings. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/114\"\u003e#114\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/jaraco/zipp/commit/6d1cb72aa55e0536f35d2af128994b5a61ca4c1a\"\u003e\u003ccode\u003e6d1cb72\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/fd604bd34f0343472521a36da1fbd22e793e14fd\"\u003e\u003ccode\u003efd604bd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/120\"\u003e#120\u003c/a\u003e from jaraco/bugfix/119-malformed-paths\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/c18417ed2953e181728a7dac07bff88a2190abf7\"\u003e\u003ccode\u003ec18417e\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/58115d2be968644ce71ce6bcc9b79826c82a1806\"\u003e\u003ccode\u003e58115d2\u003c/code\u003e\u003c/a\u003e Employ SanitizedNames in CompleteDirs. Fixes broken test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/564fcc10cdbfdaecdb33688e149827465931c9e0\"\u003e\u003ccode\u003e564fcc1\u003c/code\u003e\u003c/a\u003e Add SanitizedNames mixin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/79a309fe54dc6b7934fb72e9f31bcb58f2e9f547\"\u003e\u003ccode\u003e79a309f\u003c/code\u003e\u003c/a\u003e Add some assertions about malformed paths.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/2d015c22348fab46ca765339f55f84fe9d6e8115\"\u003e\u003ccode\u003e2d015c2\u003c/code\u003e\u003c/a\u003e Merge \u003ca href=\"https://github.com/jaraco/skeleton\"\u003ehttps://github.com/jaraco/skeleton\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/a595a0fad054cd20b69d3e954c99174e3a548938\"\u003e\u003ccode\u003ea595a0f\u003c/code\u003e\u003c/a\u003e Rename extras to align with core metadata spec.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/608f90a6e74919501577a1312dc5c7d8e1d391d7\"\u003e\u003ccode\u003e608f90a\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/3a22d724acf874111b43f87f7110225122ec3de5\"\u003e\u003ccode\u003e3a22d72\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/118\"\u003e#118\u003c/a\u003e from jaraco/feature/is-symlink\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jaraco/zipp/compare/v3.17.0...v3.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nYou can trigger a rebase of this PR by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \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\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/ycechungAI/manim/network/alerts).\n\n\u003c/details\u003e\n\n\u003e **Note**\n\u003e Automatic rebases have been disabled on this pull request as it has been open for over 30 days.\n","html_url":"https://github.com/ycechungAI/manim/pull/3","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ycechungAI%2Fmanim/issues/3","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3/packages"}},{"old_version":"2.0.7","new_version":"2.2.2","update_type":"minor","path":null,"pr_created_at":"2024-07-09T18:45:20.000Z","version_change":"2.0.7 → 2.2.2","issue":{"uuid":"1960775740","node_id":"PR_kwDOKJfJ0c503xA8","number":12,"state":"closed","title":"Bump the pip group across 1 directory with 7 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":0,"pull_request":true,"closed_at":"2025-06-01T05:59:43.000Z","author_association":"CONTRIBUTOR","state_reason":null,"created_at":"2024-07-09T18:45:20.000Z","updated_at":"2025-06-01T05:59:43.000Z","time_to_close":28206863,"merged_at":"2025-06-01T05:59:42.000Z","merged_by":"daeosqu","closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"pip","update_count":7,"packages":[{"name":"tqdm","old_version":"4.66.1","new_version":"4.66.3","repository_url":"https://github.com/tqdm/tqdm"},{"name":"requests","old_version":"2.31.0","new_version":"2.32.2","repository_url":"https://github.com/psf/requests"},{"name":"certifi","old_version":"2023.7.22","new_version":"2024.7.4","repository_url":"https://github.com/certifi/python-certifi"},{"name":"idna","old_version":"3.4","new_version":"3.7","repository_url":"https://github.com/kjd/idna"},{"name":"tornado","old_version":"6.3.3","new_version":"6.4.1","repository_url":"https://github.com/tornadoweb/tornado"},{"name":"urllib3","old_version":"2.0.7","new_version":"2.2.2","repository_url":"https://github.com/urllib3/urllib3"},{"name":"zipp","old_version":"3.16.2","new_version":"3.19.1","repository_url":"https://github.com/jaraco/zipp"}],"path":null,"ecosystem":"conda"},"body":"Bumps the pip group with 7 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [tqdm](https://github.com/tqdm/tqdm) | `4.66.1` | `4.66.3` |\n| [requests](https://github.com/psf/requests) | `2.31.0` | `2.32.2` |\n| [certifi](https://github.com/certifi/python-certifi) | `2023.7.22` | `2024.7.4` |\n| [idna](https://github.com/kjd/idna) | `3.4` | `3.7` |\n| [tornado](https://github.com/tornadoweb/tornado) | `6.3.3` | `6.4.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.0.7` | `2.2.2` |\n| [zipp](https://github.com/jaraco/zipp) | `3.16.2` | `3.19.1` |\n\n\nUpdates `tqdm` from 4.66.1 to 4.66.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/tqdm/tqdm/releases\"\u003etqdm's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003etqdm v4.66.3 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecli\u003c/code\u003e: \u003ccode\u003eeval\u003c/code\u003e safety (fixes CVE-2024-34062, GHSA-g7vv-2v7x-gj9p)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etqdm v4.66.2 stable\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003epandas\u003c/code\u003e: add \u003ccode\u003eDataFrame.progress_map\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003enotebook\u003c/code\u003e: fix HTML padding (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1506\"\u003e#1506\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ekeras\u003c/code\u003e: fix resuming training when \u003ccode\u003everbose\u0026gt;=2\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1508\"\u003e#1508\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003eformat_num\u003c/code\u003e negative fractions missing leading zero (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1548\"\u003e#1548\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix Python 3.12 \u003ccode\u003eDeprecationWarning\u003c/code\u003e on \u003ccode\u003eimport\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1519\"\u003e#1519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003elinting: use f-strings (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eupdate tests (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003efix \u003ccode\u003epandas\u003c/code\u003e warnings\u003c/li\u003e\n\u003cli\u003efix \u003ccode\u003easv\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/airspeed-velocity/asv/issues/1323\"\u003eairspeed-velocity/asv#1323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix macos \u003ccode\u003enotebook\u003c/code\u003e docstring indentation\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eCI: bump actions (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\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/tqdm/tqdm/commit/4e613f84ed2ae029559f539464df83fa91feb316\"\u003e\u003ccode\u003e4e613f8\u003c/code\u003e\u003c/a\u003e Merge pull request from GHSA-g7vv-2v7x-gj9p\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/b53348c73080b4edeb30b4823d1fa0d8d2c06721\"\u003e\u003ccode\u003eb53348c\u003c/code\u003e\u003c/a\u003e cli: eval safety\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/cc372d09dcd5a5eabdc6ed4cf365bdb0be004d44\"\u003e\u003ccode\u003ecc372d0\u003c/code\u003e\u003c/a\u003e bump version, merge pull request \u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1549\"\u003e#1549\u003c/a\u003e from tqdm/devel\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/e9f0c05097dc167031575391d83240d37556f098\"\u003e\u003ccode\u003ee9f0c05\u003c/code\u003e\u003c/a\u003e use PyPI trusted publishing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/7323d5bcc9b032d525f9d6468a9713f5be9c4174\"\u003e\u003ccode\u003e7323d5b\u003c/code\u003e\u003c/a\u003e slight makefile clean\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/5306125133d76e0f9326d747d29781fefe273c77\"\u003e\u003ccode\u003e5306125\u003c/code\u003e\u003c/a\u003e tests: bump pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/4a6fd4f690a4add231f4bef601521ed9bee513fb\"\u003e\u003ccode\u003e4a6fd4f\u003c/code\u003e\u003c/a\u003e fix datetime.utcfromtimestamp py3.12 warning (\u003ca href=\"https://redirect.github.com/tqdm/tqdm/issues/1519\"\u003e#1519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/6f13759f4a0e1047a09732e72f6d07e44d3e6855\"\u003e\u003ccode\u003e6f13759\u003c/code\u003e\u003c/a\u003e tests: fix macos notebook indentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/3abcd2ac90ecb01ac7f64071af600f803eab6a21\"\u003e\u003ccode\u003e3abcd2a\u003c/code\u003e\u003c/a\u003e tests: fix asv\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tqdm/tqdm/commit/a4d15c8e2f6c7322c1a1cd1d845927f037281da1\"\u003e\u003ccode\u003ea4d15c8\u003c/code\u003e\u003c/a\u003e tests: fix pandas warnings\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tqdm/tqdm/compare/v4.66.1...v4.66.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.31.0 to 2.32.2\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.32.2\u003c/h2\u003e\n\u003ch2\u003e2.32.2 (2024-05-21)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eTo provide a more stable migration for custom HTTPAdapters impacted\nby the CVE changes in 2.32.0, we've renamed \u003ccode\u003e_get_connection\u003c/code\u003e to\na new public API, \u003ccode\u003eget_connection_with_tls_context\u003c/code\u003e. Existing custom\nHTTPAdapters will need to migrate their code to use this new API.\n\u003ccode\u003eget_connection\u003c/code\u003e is considered deprecated in all versions of Requests\u0026gt;=2.32.0.\u003c/p\u003e\n\u003cp\u003eA minimal (2-line) example has been provided in the linked PR to ease\nmigration, but we strongly urge users to evaluate if their custom adapter\nis subject to the same issue described in CVE-2024-35195. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6710\"\u003e#6710\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.1\u003c/h2\u003e\n\u003ch2\u003e2.32.1 (2024-05-20)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing test certs to the sdist distributed on PyPI.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.32.0\u003c/h2\u003e\n\u003ch2\u003e2.32.0 (2024-05-20)\u003c/h2\u003e\n\u003ch2\u003e🐍 PYCON US 2024 EDITION 🐍\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where setting \u003ccode\u003everify=False\u003c/code\u003e on the first request from a\nSession will cause subsequent requests to the \u003cem\u003esame origin\u003c/em\u003e to also ignore\ncert verification, regardless of the value of \u003ccode\u003everify\u003c/code\u003e.\n(\u003ca href=\"https://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56\"\u003ehttps://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003everify=True\u003c/code\u003e now reuses a global SSLContext which should improve\nrequest time variance between first and subsequent requests. It should\nalso minimize certificate load time on Windows systems when using a Python\nversion built with OpenSSL 3.x. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6667\"\u003e#6667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests now supports optional use of character detection\n(\u003ccode\u003echardet\u003c/code\u003e or \u003ccode\u003echarset_normalizer\u003c/code\u003e) when repackaged or vendored.\nThis enables \u003ccode\u003epip\u003c/code\u003e and other projects to minimize their vendoring\nsurface area. The \u003ccode\u003eResponse.text()\u003c/code\u003e and \u003ccode\u003eapparent_encoding\u003c/code\u003e APIs\nwill default to \u003ccode\u003eutf-8\u003c/code\u003e if neither library is present. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6702\"\u003e#6702\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 bug in length detection where emoji length was incorrectly\ncalculated in the request content-length. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6589\"\u003e#6589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed deserialization bug in JSONDecodeError. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6629\"\u003e#6629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug where an extra leading \u003ccode\u003e/\u003c/code\u003e (path separator) could lead\nurllib3 to unnecessarily reparse the request URI. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6644\"\u003e#6644\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.32.2 (2024-05-21)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eTo provide a more stable migration for custom HTTPAdapters impacted\nby the CVE changes in 2.32.0, we've renamed \u003ccode\u003e_get_connection\u003c/code\u003e to\na new public API, \u003ccode\u003eget_connection_with_tls_context\u003c/code\u003e. Existing custom\nHTTPAdapters will need to migrate their code to use this new API.\n\u003ccode\u003eget_connection\u003c/code\u003e is considered deprecated in all versions of Requests\u0026gt;=2.32.0.\u003c/p\u003e\n\u003cp\u003eA minimal (2-line) example has been provided in the linked PR to ease\nmigration, but we strongly urge users to evaluate if their custom adapter\nis subject to the same issue described in CVE-2024-35195. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6710\"\u003e#6710\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.1 (2024-05-20)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd missing test certs to the sdist distributed on PyPI.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.0 (2024-05-20)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where setting \u003ccode\u003everify=False\u003c/code\u003e on the first request from a\nSession will cause subsequent requests to the \u003cem\u003esame origin\u003c/em\u003e to also ignore\ncert verification, regardless of the value of \u003ccode\u003everify\u003c/code\u003e.\n(\u003ca href=\"https://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56\"\u003ehttps://github.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003everify=True\u003c/code\u003e now reuses a global SSLContext which should improve\nrequest time variance between first and subsequent requests. It should\nalso minimize certificate load time on Windows systems when using a Python\nversion built with OpenSSL 3.x. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6667\"\u003e#6667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests now supports optional use of character detection\n(\u003ccode\u003echardet\u003c/code\u003e or \u003ccode\u003echarset_normalizer\u003c/code\u003e) when repackaged or vendored.\nThis enables \u003ccode\u003epip\u003c/code\u003e and other projects to minimize their vendoring\nsurface area. The \u003ccode\u003eResponse.text()\u003c/code\u003e and \u003ccode\u003eapparent_encoding\u003c/code\u003e APIs\nwill default to \u003ccode\u003eutf-8\u003c/code\u003e if neither library is present. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6702\"\u003e#6702\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 bug in length detection where emoji length was incorrectly\ncalculated in the request content-length. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6589\"\u003e#6589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed deserialization bug in JSONDecodeError. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6629\"\u003e#6629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed bug where an extra leading \u003ccode\u003e/\u003c/code\u003e (path separator) could lead\nurllib3 to unnecessarily reparse the request URI. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6644\"\u003e#6644\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\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/psf/requests/commit/88dce9d854797c05d0ff296b70e0430535ef8aaf\"\u003e\u003ccode\u003e88dce9d\u003c/code\u003e\u003c/a\u003e v2.32.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/c98e4d133ef29c46a9b68cd783087218a8075e05\"\u003e\u003ccode\u003ec98e4d1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6710\"\u003e#6710\u003c/a\u003e from nateprewitt/api_rename\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/92075b330a30b9883f466a43d3f7566ab849f91b\"\u003e\u003ccode\u003e92075b3\u003c/code\u003e\u003c/a\u003e Add deprecation warning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/aa1461b68aa73e2f6ec0e78c8853b635c76fd099\"\u003e\u003ccode\u003eaa1461b\u003c/code\u003e\u003c/a\u003e Move _get_connection to get_connection_with_tls_context\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/970e8cec988421bd43da57350723b05c8ce8dc7e\"\u003e\u003ccode\u003e970e8ce\u003c/code\u003e\u003c/a\u003e v2.32.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d6ebc4a2f1f68b7e355fb7e4dd5ffc0845547f9f\"\u003e\u003ccode\u003ed6ebc4a\u003c/code\u003e\u003c/a\u003e v2.32.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9a40d1277807f0a4f26c9a37eea8ec90faa8aadc\"\u003e\u003ccode\u003e9a40d12\u003c/code\u003e\u003c/a\u003e Avoid reloading root certificates to improve concurrent performance (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6667\"\u003e#6667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0c030f78d24f29a459dbf39b28b4cc765e2153d7\"\u003e\u003ccode\u003e0c030f7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6702\"\u003e#6702\u003c/a\u003e from nateprewitt/no_char_detection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/555b870eb19d497ddb67042645420083ec8efb02\"\u003e\u003ccode\u003e555b870\u003c/code\u003e\u003c/a\u003e Allow character detection dependencies to be optional in post-packaging steps\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d6dded3f00afcf56a7e866cb0732799045301eb0\"\u003e\u003ccode\u003ed6dded3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psf/requests/issues/6700\"\u003e#6700\u003c/a\u003e from franekmagiera/update-redirect-to-invalid-uri-test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.31.0...v2.32.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `certifi` from 2023.7.22 to 2024.7.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/bd8153872e9c6fc98f4023df9c2deaffea2fa463\"\u003e\u003ccode\u003ebd81538\u003c/code\u003e\u003c/a\u003e 2024.07.04 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/295\"\u003e#295\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/06a2cbf21f345563dde6c28b60e29d57e9b210b3\"\u003e\u003ccode\u003e06a2cbf\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 6.0.5 to 6.1.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/294\"\u003e#294\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/13bba02b72bac97c432c277158bc04b4d2a6bc23\"\u003e\u003ccode\u003e13bba02\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.1.6 to 4.1.7 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/293\"\u003e#293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/e8abcd0e62b334c164b95d49fcabdc9ecbca0554\"\u003e\u003ccode\u003ee8abcd0\u003c/code\u003e\u003c/a\u003e Bump pypa/gh-action-pypi-publish from 1.8.14 to 1.9.0 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/292\"\u003e#292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/124f4adf171e15cd9a91a8b6e0325ecc97be8fe1\"\u003e\u003ccode\u003e124f4ad\u003c/code\u003e\u003c/a\u003e 2024.06.02 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/291\"\u003e#291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/c2196ce5d6ee675b27755a19948480a7823e2c6a\"\u003e\u003ccode\u003ec2196ce\u003c/code\u003e\u003c/a\u003e --- (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/290\"\u003e#290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/fefdeec7588ff1c05214b85a552afcad5fdb51b2\"\u003e\u003ccode\u003efefdeec\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.1.4 to 4.1.5 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/289\"\u003e#289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/3c5fb1560b826a7f83f1f9750173ff766492c9cf\"\u003e\u003ccode\u003e3c5fb15\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 4.1.6 to 4.1.7 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/286\"\u003e#286\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/4a9569a3eb58db8548536fc16c5c5c7af946a5b1\"\u003e\u003ccode\u003e4a9569a\u003c/code\u003e\u003c/a\u003e Bump actions/checkout from 4.1.2 to 4.1.4 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/287\"\u003e#287\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/certifi/python-certifi/commit/1fc808626a895a916b1e4c2b63abae6c5eafdbe3\"\u003e\u003ccode\u003e1fc8086\u003c/code\u003e\u003c/a\u003e Bump peter-evans/create-pull-request from 6.0.4 to 6.0.5 (\u003ca href=\"https://redirect.github.com/certifi/python-certifi/issues/288\"\u003e#288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/certifi/python-certifi/compare/2023.07.22...2024.07.04\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `idna` from 3.4 to 3.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/releases\"\u003eidna's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.7\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix issue where specially crafted inputs to encode() could take exceptionally long amount of time to process. [CVE-2024-3651]\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Guido Vranken for reporting the issue.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/kjd/idna/compare/v3.6...v3.7\"\u003ehttps://github.com/kjd/idna/compare/v3.6...v3.7\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/kjd/idna/blob/master/HISTORY.rst\"\u003eidna's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e3.7 (2024-04-11)\n++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix issue where specially crafted inputs to encode() could\ntake exceptionally long amount of time to process. [CVE-2024-3651]\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to Guido Vranken for reporting the issue.\u003c/p\u003e\n\u003cp\u003e3.6 (2023-11-25)\n++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix regression to include tests in source distribution.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e3.5 (2023-11-24)\n++++++++++++++++\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate to Unicode 15.1.0\u003c/li\u003e\n\u003cli\u003eString codec name is now \u0026quot;idna2008\u0026quot; as overriding the system codec\n\u0026quot;idna\u0026quot; was not working.\u003c/li\u003e\n\u003cli\u003eFix typing error for codec encoding\u003c/li\u003e\n\u003cli\u003e\u0026quot;setup.cfg\u0026quot; has been added for this release due to some downstream\nlack of adherence to PEP 517. Should be removed in a future release\nso please prepare accordingly.\u003c/li\u003e\n\u003cli\u003eRemoved reliance on a symlink for the \u0026quot;idna-data\u0026quot; tool to comport\nwith PEP 517 and the Python Packaging User Guide for sdist archives.\u003c/li\u003e\n\u003cli\u003eAdded security reporting protocol for project\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks Jon Ribbens, Diogo Teles Sant'Anna, Wu Tingfeng for contributions\nto this release.\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/kjd/idna/commit/1d365e17e10d72d0b7876316fc7b9ca0eebdd38d\"\u003e\u003ccode\u003e1d365e1\u003c/code\u003e\u003c/a\u003e Release v3.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/c1b3154939907fab67c5754346afaebe165ce8e6\"\u003e\u003ccode\u003ec1b3154\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/172\"\u003e#172\u003c/a\u003e from kjd/optimize-contextj\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/0394ec76ff022813e770ba1fd89658790ea35623\"\u003e\u003ccode\u003e0394ec7\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into optimize-contextj\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/cd58a23173d2b0a40b95ee680baf3e59e8d33966\"\u003e\u003ccode\u003ecd58a23\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/kjd/idna/issues/152\"\u003e#152\u003c/a\u003e from elliotwutingfeng/dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/5beb28b9dd77912c0dd656d8b0fdba3eb80222e7\"\u003e\u003ccode\u003e5beb28b\u003c/code\u003e\u003c/a\u003e More efficient resolution of joiner contexts\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/1b121483ed04d9576a1291758f537e1318cddc8b\"\u003e\u003ccode\u003e1b12148\u003c/code\u003e\u003c/a\u003e Update ossf/scorecard-action to v2.3.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/d516b874c3388047934938a500c7488d52c4e067\"\u003e\u003ccode\u003ed516b87\u003c/code\u003e\u003c/a\u003e Update Github actions/checkout to v4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/c095c75943413c75ebf8ac74179757031b7f80b7\"\u003e\u003ccode\u003ec095c75\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into dev\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/60a0a4cb61ec6834d74306bd8a1fa46daac94c98\"\u003e\u003ccode\u003e60a0a4c\u003c/code\u003e\u003c/a\u003e Fix typo in GitHub Actions workflow key\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kjd/idna/commit/5918a0ef8034379c2e409ae93ee11d24295bb201\"\u003e\u003ccode\u003e5918a0e\u003c/code\u003e\u003c/a\u003e Merge branch 'master' into dev\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/kjd/idna/compare/v3.4...v3.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tornado` from 6.3.3 to 6.4.1\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.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\nreleases/v3.1.0\nreleases/v3.0.2\nreleases/v3.0.1\nreleases/v3.0.0\nreleases/v2.4.1\nreleases/v2.4.0\nreleases/v2.3.0\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/2a0e1d13b5222dca4388c0ec8a4bb74ea6fa4af2\"\u003e\u003ccode\u003e2a0e1d1\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3388\"\u003e#3388\u003c/a\u003e from bdarnell/release-641\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/b7af4e8f5ee578b78e1be5ade43fdb1103659a0e\"\u003e\u003ccode\u003eb7af4e8\u003c/code\u003e\u003c/a\u003e Release notes and version bump for version 6.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/d65f6e71a77f53a1ff0a0dc55704be13f04eb572\"\u003e\u003ccode\u003ed65f6e7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3387\"\u003e#3387\u003c/a\u003e from bdarnell/chunked-parsing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/8d721a877dd5c2bc0693d9c4d3954eb11fbd404b\"\u003e\u003ccode\u003e8d721a8\u003c/code\u003e\u003c/a\u003e httputil: Only strip tabs and spaces from header values\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/7786f09f84c9f3f2012c4cf3878417cb9f053669\"\u003e\u003ccode\u003e7786f09\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3386\"\u003e#3386\u003c/a\u003e from bdarnell/curl-crlf\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/fb119c767e9c43e71ea823311b0d53f566d86b73\"\u003e\u003ccode\u003efb119c7\u003c/code\u003e\u003c/a\u003e http1connection: Stricter handling of transfer-encoding\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/b0ffc58e02f33f6aa480f008b74495601d988ce1\"\u003e\u003ccode\u003eb0ffc58\u003c/code\u003e\u003c/a\u003e curl_httpclient,http1connection: Prohibit CR and LF in headers\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/0efa9a42b4c94ee98549d86992c68227f83efd4e\"\u003e\u003ccode\u003e0efa9a4\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3385\"\u003e#3385\u003c/a\u003e from bdarnell/update-black\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/2757c6e4874968dd2f74a4d08b450da795de5b6c\"\u003e\u003ccode\u003e2757c6e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/tornadoweb/tornado/issues/3384\"\u003e#3384\u003c/a\u003e from tornadoweb/dependabot/pip/requests-2.32.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tornadoweb/tornado/commit/291d1b661be273b86792e965ac65f9bced8d4ebe\"\u003e\u003ccode\u003e291d1b6\u003c/code\u003e\u003c/a\u003e *: Update black\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/tornadoweb/tornado/compare/v6.3.3...v6.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `urllib3` from 2.0.7 to 2.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/urllib3/urllib3/releases\"\u003eurllib3's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.2.2\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003eProxy-Authorization\u003c/code\u003e header to the list of headers to strip from requests when redirecting to a different host. As before, different headers can be set via \u003ccode\u003eRetry.remove_headers_on_redirect\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAllowed passing negative integers as \u003ccode\u003eamt\u003c/code\u003e to read methods of \u003ccode\u003ehttp.client.HTTPResponse\u003c/code\u003e as an alternative to \u003ccode\u003eNone\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3122\"\u003e#3122\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed return types representing copying actions to use \u003ccode\u003etyping.Self\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3363\"\u003e#3363\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.2.1...2.2.2\"\u003ehttps://github.com/urllib3/urllib3/compare/2.2.1...2.2.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.2.1\u003c/h2\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed issue where \u003ccode\u003eInsecureRequestWarning\u003c/code\u003e was emitted for HTTPS connections when using Emscripten. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3331\"\u003e#3331\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPConnectionPool.urlopen\u003c/code\u003e to stop automatically casting non-proxy headers to \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e. This change was premature as it did not apply to proxy headers and \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e does not handle byte header values correctly yet. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3343\"\u003e#3343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eProtocolError\u003c/code\u003e to \u003ccode\u003eInvalidChunkLength\u003c/code\u003e when response terminates before the chunk length is sent. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/2860\"\u003e#2860\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eProtocolError\u003c/code\u003e to be more verbose on incomplete reads with excess content. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3261\"\u003e#3261\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.2.0\u003c/h2\u003e\n\u003ch2\u003e🖥️ urllib3 now works in the browser\u003c/h2\u003e\n\u003cp\u003e:tada: \u003cstrong\u003eThis release adds experimental support for \u003ca href=\"https://urllib3.readthedocs.io/en/stable/reference/contrib/emscripten.html\"\u003eusing urllib3 in the browser with Pyodide\u003c/a\u003e!\u003c/strong\u003e :tada:\u003c/p\u003e\n\u003cp\u003eThanks to Joe Marshall (\u003ca href=\"https://github.com/joemarshall\"\u003e\u003ccode\u003e@​joemarshall\u003c/code\u003e\u003c/a\u003e) for contributing this feature. This change was possible thanks to work done in urllib3 v2.0 to detach our API from \u003ccode\u003ehttp.client\u003c/code\u003e. Please report all bugs to the \u003ca href=\"https://github.com/urllib3/urllib3/issues\"\u003eurllib3 issue tracker\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003e🚀 urllib3 is fundraising for HTTP/2 support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://sethmlarson.dev/urllib3-is-fundraising-for-http2-support\"\u003eurllib3 is raising ~$40,000 USD\u003c/a\u003e to release HTTP/2 support and ensure long-term sustainable maintenance of the project after a sharp decline in financial support for 2023. If your company or organization uses Python and would benefit from HTTP/2 support in Requests, pip, cloud SDKs, and thousands of other projects \u003ca href=\"https://opencollective.com/urllib3\"\u003eplease consider contributing financially\u003c/a\u003e to ensure HTTP/2 support is developed sustainably and maintained for the long-haul.\u003c/p\u003e\n\u003cp\u003eThank you for your support.\u003c/p\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ca href=\"https://urllib3.readthedocs.io/en/latest/reference/contrib/emscripten.html\"\u003eEmscripten and Pyodide\u003c/a\u003e, including streaming support in cross-origin isolated browser environments where threading is enabled. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/2951\"\u003e#2951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eHTTPResponse.read1()\u003c/code\u003e method. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3186\"\u003e#3186\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded rudimentary support for HTTP/2. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3284\"\u003e#3284\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed issue where requests against urls with trailing dots were failing due to SSL errors\nwhen using proxy. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/2244\"\u003e#2244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPConnection.proxy_is_verified\u003c/code\u003e and \u003ccode\u003eHTTPSConnection.proxy_is_verified\u003c/code\u003e to be always set to a boolean after connecting to a proxy. It could be \u003ccode\u003eNone\u003c/code\u003e in some cases previously. (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3130\"\u003e#3130\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/urllib3/urllib3/blob/main/CHANGES.rst\"\u003eurllib3's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.2.2 (2024-06-17)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded the \u003ccode\u003eProxy-Authorization\u003c/code\u003e header to the list of headers to strip from requests when redirecting to a different host. As before, different headers can be set via \u003ccode\u003eRetry.remove_headers_on_redirect\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eAllowed passing negative integers as \u003ccode\u003eamt\u003c/code\u003e to read methods of \u003ccode\u003ehttp.client.HTTPResponse\u003c/code\u003e as an alternative to \u003ccode\u003eNone\u003c/code\u003e. (\u003ccode\u003e[#3122](https://github.com/urllib3/urllib3/issues/3122) \u0026lt;https://github.com/urllib3/urllib3/issues/3122\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed return types representing copying actions to use \u003ccode\u003etyping.Self\u003c/code\u003e. (\u003ccode\u003e[#3363](https://github.com/urllib3/urllib3/issues/3363) \u0026lt;https://github.com/urllib3/urllib3/issues/3363\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.2.1 (2024-02-16)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFixed issue where \u003ccode\u003eInsecureRequestWarning\u003c/code\u003e was emitted for HTTPS connections when using Emscripten. (\u003ccode\u003e[#3331](https://github.com/urllib3/urllib3/issues/3331) \u0026lt;https://github.com/urllib3/urllib3/issues/3331\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPConnectionPool.urlopen\u003c/code\u003e to stop automatically casting non-proxy headers to \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e. This change was premature as it did not apply to proxy headers and \u003ccode\u003eHTTPHeaderDict\u003c/code\u003e does not handle byte header values correctly yet. (\u003ccode\u003e[#3343](https://github.com/urllib3/urllib3/issues/3343) \u0026lt;https://github.com/urllib3/urllib3/issues/3343\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eInvalidChunkLength\u003c/code\u003e to \u003ccode\u003eProtocolError\u003c/code\u003e when response terminates before the chunk length is sent. (\u003ccode\u003e[#2860](https://github.com/urllib3/urllib3/issues/2860) \u0026lt;https://github.com/urllib3/urllib3/issues/2860\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eProtocolError\u003c/code\u003e to be more verbose on incomplete reads with excess content. (\u003ccode\u003e[#3261](https://github.com/urllib3/urllib3/issues/3261) \u0026lt;https://github.com/urllib3/urllib3/issues/3261\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.2.0 (2024-01-30)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eEmscripten and Pyodide \u0026lt;https://urllib3.readthedocs.io/en/latest/reference/contrib/emscripten.html\u0026gt;\u003c/code\u003e\u003cstrong\u003e, including streaming support in cross-origin isolated browser environments where threading is enabled. (\u003ccode\u003e[#2951](https://github.com/urllib3/urllib3/issues/2951) \u0026lt;https://github.com/urllib3/urllib3/issues/2951\u0026gt;\u003c/code\u003e\u003c/strong\u003e)\u003c/li\u003e\n\u003cli\u003eAdded support for \u003ccode\u003eHTTPResponse.read1()\u003c/code\u003e method. (\u003ccode\u003e[#3186](https://github.com/urllib3/urllib3/issues/3186) \u0026lt;https://github.com/urllib3/urllib3/issues/3186\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAdded rudimentary support for HTTP/2. (\u003ccode\u003e[#3284](https://github.com/urllib3/urllib3/issues/3284) \u0026lt;https://github.com/urllib3/urllib3/issues/3284\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed issue where requests against urls with trailing dots were failing due to SSL errors\nwhen using proxy. (\u003ccode\u003e[#2244](https://github.com/urllib3/urllib3/issues/2244) \u0026lt;https://github.com/urllib3/urllib3/issues/2244\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPConnection.proxy_is_verified\u003c/code\u003e and \u003ccode\u003eHTTPSConnection.proxy_is_verified\u003c/code\u003e\nto be always set to a boolean after connecting to a proxy. It could be\n\u003ccode\u003eNone\u003c/code\u003e in some cases previously. (\u003ccode\u003e[#3130](https://github.com/urllib3/urllib3/issues/3130) \u0026lt;https://github.com/urllib3/urllib3/issues/3130\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed an issue where \u003ccode\u003eheaders\u003c/code\u003e passed in a request with \u003ccode\u003ejson=\u003c/code\u003e would be mutated (\u003ccode\u003e[#3203](https://github.com/urllib3/urllib3/issues/3203) \u0026lt;https://github.com/urllib3/urllib3/issues/3203\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eHTTPSConnection.is_verified\u003c/code\u003e to be set to \u003ccode\u003eFalse\u003c/code\u003e when connecting\nfrom a HTTPS proxy to an HTTP target. It was set to \u003ccode\u003eTrue\u003c/code\u003e previously. (\u003ccode\u003e[#3267](https://github.com/urllib3/urllib3/issues/3267) \u0026lt;https://github.com/urllib3/urllib3/issues/3267\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed handling of new error message from OpenSSL 3.2.0 when configuring an HTTP proxy as HTTPS (\u003ccode\u003e[#3268](https://github.com/urllib3/urllib3/issues/3268) \u0026lt;https://github.com/urllib3/urllib3/issues/3268\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed TLS 1.3 post-handshake auth when the server certificate validation is disabled (\u003ccode\u003e[#3325](https://github.com/urllib3/urllib3/issues/3325) \u0026lt;https://github.com/urllib3/urllib3/issues/3325\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eNote for downstream distributors: To run integration tests, you now need to run the tests a second\ntime with the \u003ccode\u003e--integration\u003c/code\u003e pytest flag. (\u003ccode\u003e[#3181](https://github.com/urllib3/urllib3/issues/3181) \u0026lt;https://github.com/urllib3/urllib3/issues/3181\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e2.1.0 (2023-11-13)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for the deprecated urllib3[secure] extra. (\u003ccode\u003e[#2680](https://github.com/urllib3/urllib3/issues/2680) \u0026lt;https://github.com/urllib3/urllib3/issues/2680\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eRemoved support for the deprecated SecureTransport TLS implementation. (\u003ccode\u003e[#2681](https://github.com/urllib3/urllib3/issues/2681) \u0026lt;https://github.com/urllib3/urllib3/issues/2681\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eRemoved support for the end-of-life Python 3.7. (\u003ccode\u003e[#3143](https://github.com/urllib3/urllib3/issues/3143) \u0026lt;https://github.com/urllib3/urllib3/issues/3143\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eAllowed loading CA certificates from memory for proxies. (\u003ccode\u003e[#3065](https://github.com/urllib3/urllib3/issues/3065) \u0026lt;https://github.com/urllib3/urllib3/issues/3065\u0026gt;\u003c/code\u003e__)\u003c/li\u003e\n\u003cli\u003eFixed decoding Gzip-encoded responses which specified \u003ccode\u003ex-gzip\u003c/code\u003e content-encoding. (\u003ccode\u003e[#3174](https://github.com/urllib3/urllib3/issues/3174) \u0026lt;https://github.com/urllib3/urllib3/issues/3174\u0026gt;\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/urllib3/urllib3/commit/27e2a5c5a7ab6a517252cc8dcef3ffa6ffb8f61a\"\u003e\u003ccode\u003e27e2a5c\u003c/code\u003e\u003c/a\u003e Release 2.2.2 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3406\"\u003e#3406\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/accff72ecc2f6cf5a76d9570198a93ac7c90270e\"\u003e\u003ccode\u003eaccff72\u003c/code\u003e\u003c/a\u003e Merge pull request from GHSA-34jh-p97f-mpxf\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/34be4a57e59eb7365bcc37d52e9f8271b5b8d0d3\"\u003e\u003ccode\u003e34be4a5\u003c/code\u003e\u003c/a\u003e Pin CFFI to a new release candidate instead of a Git commit (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3398\"\u003e#3398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/da410581b6b3df73da976b5ce5eb20a4bd030437\"\u003e\u003ccode\u003eda41058\u003c/code\u003e\u003c/a\u003e Bump browser-actions/setup-chrome from 1.6.0 to 1.7.1 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3399\"\u003e#3399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/b07a669bd970d69847801148286b726f0570b625\"\u003e\u003ccode\u003eb07a669\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 2.13.4 to 3.25.6 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3396\"\u003e#3396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/b8589ec9f8c4da91511e601b632ac06af7e7c10e\"\u003e\u003ccode\u003eb8589ec\u003c/code\u003e\u003c/a\u003e Measure coverage with v4 of artifact actions (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3394\"\u003e#3394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/f3bdc5585111429e22c81b5fb26c3ec164d98b81\"\u003e\u003ccode\u003ef3bdc55\u003c/code\u003e\u003c/a\u003e Allow triggering CI manually (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3391\"\u003e#3391\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/52392654b30183129cf3ec06010306f517d9c146\"\u003e\u003ccode\u003e5239265\u003c/code\u003e\u003c/a\u003e Fix HTTP version in debug log (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3316\"\u003e#3316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/b34619f94ece0c40e691a5aaf1304953d88089de\"\u003e\u003ccode\u003eb34619f\u003c/code\u003e\u003c/a\u003e Bump actions/checkout to 4.1.4 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3387\"\u003e#3387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/urllib3/urllib3/commit/9961d14de7c920091d42d42ed76d5d479b80064d\"\u003e\u003ccode\u003e9961d14\u003c/code\u003e\u003c/a\u003e Bump browser-actions/setup-chrome from 1.5.0 to 1.6.0 (\u003ca href=\"https://redirect.github.com/urllib3/urllib3/issues/3386\"\u003e#3386\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/urllib3/urllib3/compare/2.0.7...2.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `zipp` from 3.16.2 to 3.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jaraco/zipp/blob/main/NEWS.rst\"\u003ezipp's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ev3.19.1\u003c/h1\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved handling of malformed zip files. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/119\"\u003e#119\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev3.19.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement is_symlink. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/117\"\u003e#117\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev3.18.2\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch1\u003ev3.18.1\u003c/h1\u003e\n\u003cp\u003eNo significant changes.\u003c/p\u003e\n\u003ch1\u003ev3.18.0\u003c/h1\u003e\n\u003ch2\u003eFeatures\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBypass ZipFile.namelist in glob for better performance. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/106\"\u003e#106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored glob functionality to support a more generalized solution with support for platform-specific path separators. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/108\"\u003e#108\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBugfixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd special accounting for pypy when computing the stack level for text encoding warnings. (\u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/114\"\u003e#114\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ev3.17.0\u003c/h1\u003e\n\u003cp\u003eFeatures\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/jaraco/zipp/commit/6d1cb72aa55e0536f35d2af128994b5a61ca4c1a\"\u003e\u003ccode\u003e6d1cb72\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/fd604bd34f0343472521a36da1fbd22e793e14fd\"\u003e\u003ccode\u003efd604bd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/120\"\u003e#120\u003c/a\u003e from jaraco/bugfix/119-malformed-paths\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/c18417ed2953e181728a7dac07bff88a2190abf7\"\u003e\u003ccode\u003ec18417e\u003c/code\u003e\u003c/a\u003e Add news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/58115d2be968644ce71ce6bcc9b79826c82a1806\"\u003e\u003ccode\u003e58115d2\u003c/code\u003e\u003c/a\u003e Employ SanitizedNames in CompleteDirs. Fixes broken test.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/564fcc10cdbfdaecdb33688e149827465931c9e0\"\u003e\u003ccode\u003e564fcc1\u003c/code\u003e\u003c/a\u003e Add SanitizedNames mixin.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/79a309fe54dc6b7934fb72e9f31bcb58f2e9f547\"\u003e\u003ccode\u003e79a309f\u003c/code\u003e\u003c/a\u003e Add some assertions about malformed paths.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/2d015c22348fab46ca765339f55f84fe9d6e8115\"\u003e\u003ccode\u003e2d015c2\u003c/code\u003e\u003c/a\u003e Merge \u003ca href=\"https://github.com/jaraco/skeleton\"\u003ehttps://github.com/jaraco/skeleton\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/a595a0fad054cd20b69d3e954c99174e3a548938\"\u003e\u003ccode\u003ea595a0f\u003c/code\u003e\u003c/a\u003e Rename extras to align with core metadata spec.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/608f90a6e74919501577a1312dc5c7d8e1d391d7\"\u003e\u003ccode\u003e608f90a\u003c/code\u003e\u003c/a\u003e Finalize\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jaraco/zipp/commit/3a22d724acf874111b43f87f7110225122ec3de5\"\u003e\u003ccode\u003e3a22d72\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jaraco/zipp/issues/118\"\u003e#118\u003c/a\u003e from jaraco/feature/is-symlink\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jaraco/zipp/compare/v3.16.2...v3.19.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 merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\nYou can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/fb8works/bl-notebook/network/alerts).\n\n\u003c/details\u003e","html_url":"https://github.com/fb8works/bl-notebook/pull/12","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/fb8works%2Fbl-notebook/issues/12","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12/packages"}}]}